تبليغاتX
.::VB & VIRUS PROGRAMMING::.
 
برنامه نویسی
 
رجيستري چيست ؟
سيستم عامل ويندوز تنظيمات سخت افزاري و نرم افزاري خود را بطور مرکزي در يک بانک اطلاعاتي با ساختار سلسله مراتبي ذخيره مي کند که رجيستري نام دارد . رجيستري جايگزيني براي بسياري از فايلهاي پيکربندي INI ، SYS و COM است که در نسخه هاي اوليه ويندوز موجود بود . رجيستري ، سيستم عامل را با مهيا کردن اطلاعات موردنيز براي اجراي برنامه ها و load شدن component ها ، کنترل مي کند .
رجيستري شامل انواع مختلفي از اطلاعات مي باشد مثل :
- اطلاعات سخت افزارهاي نصب شده روي سيستم
- اطلاعات درايورهاي نصب شده روي سيستم
- اطلاعات برنامه هاي نصب شده روي سيستم
- اطلاعات پروتکلهاي شبکه اي مورد استفاده در سيستم
ساختار رجيستري شامل چندين مجموعه رکورد است که داده هاي اين رکوردها توسط بسياري از برنامه ها و اجزاي سيستم عامل خوانده و يا نوشته مي شود .
اجزاي رجيستري
اجزاي تشکيل دهنده رجيستري عبارتند از :
1 – subtree : Subtree ها همانند folder هاي موجود در ريشه يک درايو هارد هستند . رجستری ويندوز داراي پنج subtree مي باشد :
- HKEY_LOCAL_MACHINE : شامل تمام داده هاي پيکربندي براي کامپيوتر مي باشد و شامل 5 key است :Hardware ، SAM ، Security ، Software و System
- HKEY_USERS : شامل داده هاي مربوط به تنظيمات سيستم عامل براي هر user است مثل تنظيمات desktop و محيط ويندوز
- HKEY_CURRENT_USER : شامل داده هاي کاربر فعلي سيستم
- HKEY_CLASSES_ROOT : شامل اطلاعات پيکربندي نرم افزار است مثل داده هاي OLE و داده هاي کلاسهاي متناظر با فايل
- HKEY_CURRENT_CONFIG : شامل اطلاعات مورد نياز براي تنظيمات داريورهاي سخت افزاري و غيره
2 – Key : key ها همانند folder ها و subfolder هاي روي هارد هستند . هر key متناظر با object هاي نرم افزاري يا سخت افزاري مي باشد . subkey ها key هايي هستند که درون يکسري key قراردارند .
3 – Entry : هر key داراي يک يا چند entry است . هر entry داراي سه بخش مي باشد :
- نام Name
- نوع داده اي Data Type : مقدار هر entry يکي از انواع داده هاي زير است :
REG_DWORD ، REG_SZ ، REG_EXPAND_SZ ، REG_BINARY ،
REG_MULTI_SZ ، REG_FULL_RESOURCE_DESCRIPTOT
- مقدار Value

 


نکته 1 : براي مشاهده رجيستري و اعمال تغييرات در آن ( لطفاً اگر هيچ تجربه اي در تنظيم کردن رجيستري نداريد اطلاعات آنرا تغيير ندهيد ) ، مي توانيد از برنامه regedit.exe و يا regedt32.exe موجود در ويندوز استفاده کنيد . براي اينکار کافيست نام برنامه را در کادر Run وارد کنيد .

نکته 2 : در قسمت دوم اين مقاله کلاسي براي خواندن و نوشتن از/به رجيستري در ويژوال بيسيک خواهم نوشت و سپس نمونه اي از کاربردهاي نوشتن يکسري اطلاعات خاص در رجيستري را خواهيم ديد .

 
   
 |    نوشته شده توسط NEMESIS
   
 
مقدمه :
کنترل WinSock نسبت به تمام کنترلهاي اينترنت در سطح پايينتري قرار دارد . اين کنترل امکان ايجاد سرويسهاي شبکه اي مبتني بر پروتکلهاي TCP و UDP را مهيا مي کند . بعبارت ديگر توسط اين کنترل مي توان برنامه هاي کاربردي Client/Server ( سرويس گيرنده / سرويس دهنده ) ايجاد و با استفاده از پروتکل TCP و يا UDP بين آنها ارتباط برقرار نمود .
با تنظيم خصوصيات و فراخواني متدهاي اين کنترل مي توانيد به راحتي به يک کامپيوتر راه دور متصل شويد و داده ها را در هر دو جهت جابجا نمائيد . نمونه کاربرهايي که مي توان با اين کنترل ايجاد نمود :
Client-server chat ، Mail client ، Mail server ، Proxy Server ، Network Game ، Port Scanner ، پياده سازي الگوريتم هاي موازي و …
مباني TCP :
پروتکل کنترل اينترنت ( Transfer Control Protocol ) اجازه مي دهد يک اتصال ( Connection ) را از طريق سوکت ( socket ) به يک کامپيوتر راه دور ( Remote Computer ) ساخته و استفاده کنيد . با استفاده از اين اتصال ، هر دو کامپيوتر مي توانند داده ها را بين خودشان انتقال دهند . برقراري ارتباط از طريق TCP همانند صحبت کردن با تلفن است که بايد حتماً اتصالي بين دو کامپيوتر صورت گيرد تا بتوانند با هم ارتباط برقرار کنند .
اگر يک برنامه Client مي سازيد بايستي بدانيد که نام يا آدرس IP کامپيوتر Server چيست ( Remote Host IP ) و همچنين از طريق چه پورتي مي توانيد به آن متصل شويد ( Remote Port ) . حال بايستي به آن پورت Connect کنيد .
همچنين اگر يک برنامه Server مي سازيد بايستي پورتي را که روي آن به درخواستها گوش مي دهيد مشخص کنيد ( LocalPort ) و سپس به پورت گوش دهيد ( Listen ) .
زمانيکه يک کامپيوتر Client تقاضاي يک اتصال را مي دهد Server اين درخواست را Accept مي کند .
زمانيکه يک اتصال ساخته مي شود ، هر دو کامپيوتر مي توانند داده را فرستاده و دريافت کنند .

 


مباني UDP :
پروتکل ديتاگرام کاربر ( User Datagram Protocol ) پروتکلي بدون اتصال ( Connectionless ) است . برخلاف TCP ، کامپيوترها نياز به برپا کردن يک اتصال ندارند بنابراين يک برنامه مي تواند يک client و يا يک server باشد . برقراري ارتباط در UDP شبيه ارسال نامه از طريق پست است .
براي انتقال داده توسط UDP ابتدا بايد Local Port کامپيوتر Client تنظيم گردد . کامپيوتر Server تنها بايستي RemoteHost را برابر آدرس کامپيوتر Client قرار دهد و همچنين Remote Port را همان Local Port کامپيوتر Client قرار دهد . سپس دو کامپيوتر مي توانند داده ها را بين خود جابجا کنند .
استفاده از کنترل WinSock :

 


1 – انتخاب پروتکل: در زمان استفاده از کنترل WinSock اولين کاري که بايد انجام دهيد انتخاب يکي از پروتکلهاي TCP يا UDP است . طبيعت برنامه اي که شما مي سازيد نوع پروتکلي را که بايد استفاده کنيد مشخص مي کند . چند سوال زير به شما کمک مي کند که پروتکل مورد نيازتان را انتخاب کنيد :
- آيا برنامه شما در زمانيکه داده فرستاده مي شود يا دريافت مي شود نياز به اطلاعاتي از طرف Server يا Client دارد ؟ اگر چنين است بايستي يک اتصال TCP قبل از ارسال يا دريافت داده ايجاد شود .
- آيا داده بسيار بزرگ است ( مثل تصوير يا فايلهاي صوتي ) ؟ زمانيکه يک اتصال TCP ساخته مي شود پروتکل TCP اتصال را باقي نگه مي دارد و درستي ارسال داده تضمين شده است . اين اتصال در هر حال به منابع محاسباتي بيشتري نياز دارد و بنابراين پرهزينه تر است .
- آيا داده متناوب ارسال مي شود يا در يک نشست ( Session ) ارسال خواهد شد ؟ براي مثال اگر شما يک برنامه مي سازيد که کامپترهاي مشخصي را در يک زمان خاص از انجام شدن عملياتي مطلع مي کند پروتکل UDP مناسب تر است . پروتکل UDP همچنين براي ارسال مقادير کوچک داده اي مناست تر مي باشد .
2 – تنظيم پروتکل : براي تنظيم پروتکلي که مي خواهيد در برنامه تان از آن استفاده کنيد در زمان طراحي برنامه خاصيت Protocol کنترل WinSock را برابر sckTCPProtocol و يا sckUDPProtocol قرار دهيد . همچنين مي توانيد پروتکل خود را توسط کد زير تنظيم کنيد :

WinSock.Protocol=sckTCPProtocol

3 – مشخص کردن نام کامپيوتان : براي اتصال به کامپيوتر راه دور بايستي آدرس IP و يا نام کامپوتر را بدانيد .
نام کامپيوتر در Control Panel/Network/Identification موجود است . در صورتيکه مي خواهيد دو برنامه Client و Server خود را روي يک کامپيوتر تست کنيد از آدرس IP 127.0.0.1 براي هر دو استفاده کنيد اما اگر دو برنامه را روي دو کامپيوتر مجزا در شبکه قرار داده ايد با اجراي دستور ipconfig در DOS Prompt مي توانيد آدرس IP کامپيوتر ها را بدست آوريد .
4 – ايجاد اتصال TCP : در زمان ساخت برنامه اي که از پروتکل TCP استفاده مي کند ابتدا بايد تصميم بگيريد که اين برنامه Client است يا Server . براي ساخت يک برنامه Server بايستي روي يک پورت خاص Listen کنيد . زمانيکه Client تقاضاي يک اتصال را مي دهد ، برنامه Server مي تواند آنرا Accept کند و بنابراين اتصال کامل شده است . حال Client و Server مي توانند با هم ارتباط داشته باشند .
مراحل زير ساخت يک سرور چت ساده بر مبناي TCP را نشان مي دهد :
- از منوي Project گزينه Components را انتخاب کنيد و در ليست Component ها مورد Microsoft WinSock 6.0 را انتخاب کنيد .
- يک کنترل WinSock در فرم خود قرار دهيد و نام آنرا tcpserver بگذاريد
- دو textbox با نامهاي txtSendData و txtReceiveData و نيز يک دکمه در فرم قرار دهيد .
- کد زير را در رويداد Form_Load بنويسيد :

Tcpserver.LocalPort=1000
tcpserver.Listen


- زمانيکه درخواستي از طرف Client مي آيد رويداد ConnectionRequest اجرا مي شود . در اين رويداد ابتدا بايد چک کنيد که حالت کنترل بسته باشد . اگر چنين نيست اتصال را قبل از پذيرفتن اتصال جديد ببنديد . سپس تقاضا را بر اساس پارامتر requestID مي پذيريم :

Private Sub tcpserver_ConnectionRequest(ByVal requestID As Long)
If tcpserver.State <> sckClosed Then tcpserver.Close
tcpserver.Accept requestID
End Sub


- حال اتصال بين Client و Server برقرار شده است . کد زير را براي event مربوط به کليک دکمه Send بنويسيد :

Tcpserver.SendData txtSendData.text

- اگر داده اي از طرف Client بيايد رويداد DataArrival اجرا مي شود . کد زير را براي اين رويداد بنويسيد :

Private Sub tcpserver_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpserver.GetData strData
txtReceiveData.Text = strData
End Sub


- کد زير را براي رويداد Form_Unload بنويسيد :

Tcpserver.Close

مراحل ساخت يک TCP Client بصورت زير است :
- يک کنترل WinSock در فرم قرار دهيد و نام آنرا tcpclient بگذاريد .
- دو textbox با نامهاي txtsend و txtreceive و نيز يک دکمه با نام sendدر فرم قرار دهيد .
- يک دکمه با نام connect در فرم قرار دهيد .
- کد زير را براي متد Form_Load بنويسيد :

tcpclient.RemoteHost=”yourservername”x
tcpclient.RemotePort=1000


- کد زير را براي رويداد کليک شدن دکمه connect بنويسيد :

tcpclient.Connect

- کد زير را براي رويداد کليک شدن دکمه send بنويسيد :

tctclient.SendData txtsend.Text

- کد زير را براي رويداد DataArrival بنويسيد :

Private Sub tcpclient_DataArrival(ByVal bytesTotal As Long)
Dim strData As String
tcpclient.GetData strData
txtreceive.Text = strData
End Sub


- کد زير را باري رويداد Form_Unload بنويسيد :

Tcpclient.Close

کدهاي فوق يک سيستم Client-Server ساده را نشان مي دهد . فايل exe هر دو برنامه را بسازيد و آنها را اجرا کنيد تا بتوانيد سيستم خود را تست کنيد .
5 – پذيرفتن بيش از يک تقاضاي اتصال : Server اي که در بالا ساخته شد تنها مي تواند تقاضاي يک اتصال را بپذيرد . با استفاده از ايجاد يک آرايه از کنترل WinSock مي توان چندين تقاضاي اتصال را پذيرفت . براي اينکار کافي است يک کپي ( instance ) از کنترل بسازيم ( با تنظيم خاصيت Index ) و متد Accept را براي instance جديد بکار ببريم . فرض کنيد يک کنترل WinSock با نام sckServer در فرم داريم که خاصيت Index آنرا صفر قرار داده ايم . همچنين يک متغير intMax از نوع Long تعريف مي کنيم که تعداد اتصالات همزمان به Server را نگه مي دارد . در event مربوط به Form_Load کد زير را بنويسيد :

intMax=0
sckServer(0).LocalPort=1000
sckServer(0).Listen


هر بار که تقاضاي يک اتصال مي رسد کد ابتدا تست مي کند که مقدار Index چقدر است . اگر مقدار Index صفر باشد متغير intMax يکي افزايش مي يابد و از intMax براي ساخت يک instance جديد از کنترل استفاده مي شود . حال از اين instance براي پذيرفتن تقاضاي اتصال استفاده مي گردد . براي اينکار کد زير را براي رويداد ConnectionRequest بنويسيد :

Private Sub sckServer_ConnectionRequest(Index As Integer, ByVal requestID As Long)
If Index = 0 Then
intmax = intmax + 1
Load sckServer(intmax)x
sckServer(intmax).LocalPort = 0
sckServer(Index).Accept requestID
End If
End Sub

6 – ايجاد اتصال UDP : ساخت يک برنامه UDP ساده تر از برنامه هاي TCP است زيرا پروتکل UDP به اتصال نياز ندارد . در برنامه TCP بالا يک کنترل WinSock بايستي حتماً Listen مي کرد و يک کنترل ديگر يک اتصال را توسط متد Connect ايجاد نمود . در عوض پروتکل UDP نيازي به اتصال ندارد . براي ارسال داده بين دو کنترل WinSock سه مرحله بايستي انجام شود :
- پارامتر RemoteHost برابر نام کامپيوتر مقابل است .
- پارامتر RemotePort برابر پارامتر LocalPort کامپيوتر مقابل
- استفاده از متد Bind براي مشخص کردن LocalPort
چون هر دو کامپيوتر از نظر ارتباط مساوي هستند ، اين نوع برنامه ها را Peer-to-Peer گويند . براي نمونه از کد زير براي ساخت يک برنامه chat استفاده مي کنيم :
- يک کنترل WinSock در فرم قرار دهيد و نام آنرا udppeerA بگذاريد .
- خاصيت Protocol آنرا UDPProtocol قرار دهيد .
- دو textbox با نامهاي txtsend و txtreceive و نيز يک دکمه در فرم قرار دهيد .
- کد زير را براي متد Form_Load بنويسيد :

udppeerA.RemoteHost=”nameofpeerB”x
udppeerA.RemotePort=1001
udppeerA.Bind 1002


- کد زير را براي event مربوط به کليک دکمه بنويسيد :

udppeerA.SendData txtsend.text

- کد زير را براي رويداد DataArrival بنويسيد :

Dim strData as String
udppeerA.GetData strData
txtreceive.Text=strData


براي ساخت UDP peerB مشابه مراحل بالا عمل کنيد فقط خاصيت RemoteHost آنرا نام کامپيوتر PeerA و خاصيت RemotePort آنرا 1002 و خاصيت Bind آنرا 1001 قرار دهيد

 
   
 |    نوشته شده توسط NEMESIS
   
 
برنامه Internet Explorer يا iexplore.exe در واقع برنامه کوچکي است که وظيفه اصلي آن ايجاد چارچوبي براي بهم پيوستن عناصر مختلف است و اين عناصر هستند که وظايف اصلي مثل load کردن صفحات وب ، اجراي کدهاي Html و غيره را انجام مي دهند . اصلي ترين عنصري که مستقيماً توسط iexplore.exe استفاده مي شود کنترل Webbrowser ( موجود در فايل shdocrw.dll ) مي باشد . وظيفه اين فايل dll ، عبارت است از حرکت بين صفحات وب ، مديريت تاريخچه صفحات ديده شده و غيره . اين فايل خود از فايل ديگري بنام Mshtml.dll استفاده مي کند که وظيفه آن بررسي و اجراي فايلهاي html است . مايکروسافت به برنامه نويسان اين امکان را داده که بتوانند در برنامه هايشان از کنترل webbrowser استفاده کنند . با استفاده از اين کنترل مي توان به سادگي يک مرورگر وب تقريباً کامل ساخت .

خصوصيات کنترل Webbrowser :
Webbrowser علاوه بر خواص استانداردي مثل width ، height و … خواص زير را دارد :
1 – Busy : اگر در حال load کردن يک صفحه يا در حال جستجو در وب باشد اين خاصيت True است . توسط متد Stop مي توان عمليات جاري را متوقف کرد .
2 – Container : ارجاع به شي نگهدارنده کنترل webbrowser
3 – Document : ارجاع به صفحه html فعلي . براي کار با اين صفحه html مي توان از خواص و متدهابي شي Document استفاده کرد .
4 – LocationName : حاوي آدرس محلي است که اکنون در کنترل webbrowser ، load شده است . اگر اين محل يک صفحه html باشد عنوان آن صفحه خواهد بود و اگر اين محل يک فايل در شبکه باشد مسير کامل آن فايل خواهد بود .
5 – LocationURL : حاوي url محلي است که فعلاً در کنترل webbrowser ، load شده است .
6 – Offline : اگر کنترل webbrowser در حالت عدم اتصال باشد مقدار آن True و در غيراينصورت False است .
7 – Parent : فرمي را نشان مي دهد که کنترل webbrowser در آن قرار دارد .
8 – ReadyState : وضعيت کنترل webbrowser را برمي گرداند .

متدهاي کنترل webbrowser : اين متدها مربوط به مرور در صفحات وب هستند :
1- GoBack : در ليست تاريخچه url ها ، يکي به عقب برمي گردد .
2 – GoForward : در ليست تاريخچه url ها ، يکي به جلو مي رود .
3 – GoHome : به homepage مرورگر مي رود .
4 – Navigate : به يک url يا فايل مي رود . ساختار اين متد بصورت زير است :

Navigate URL [Flags,][TargetFrameName,][PostData,][Headers]x

URL آدرس مقصد مي باشد . Flags نحوه باز شدن آدرس مقصد را تعيين مي کند . اگر اين پارامتر ذکر نشود آدرس جديد در پنجره فعلي باز خواهد شد و به ليست تاريخچه اضافه شده و اگر کپي آن در temperory cache موجود باشد از آنجا خوانده مي شود . مقادير پارامتر Flags عبارتند از :
- NavOpenInNewWindow : آدرس جديد را در پنجره جديدي باز مي کند .
- NavNoHistory : به ليست تاريخچه اضافه نمي شود بلکه جايگزين صفحه فعلي مي شود .
- NavNoReadFromCache : صفحه جديد از cache خوانده نمي شود .
- NavNoWriteToCache : صفحه جديد روي cache نوشته نمي شود

Event هاي کنترل webbrowser : اين event ها مربوط به مرور در وب و تغيير حالت آن هستند :
1 – CommandStateChange : براي فعال يا غيرفعال کردن دکمه هاي Forward و Back در مرورگر استفاده مي شود . شکل کلي فراخواني اين event بصورت زير است :

Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)


که command فرماني است که حالت فعال آن تغيير کرده است و دو مقدار مي گيرد : 1 و 3 که بترتيب معادل فرمانهاي GoForward و GoBack هستند .
Enable فعال يا غيرفعال بودن فرمان را تعيين مي کند .
2 – DocumentComplete : اين event زماني فعال مي شود که صفحه در حال load شدن به حالت ReadyState_Complete برود . شکل کلي فراخواني اين event بصورت زير است :
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
که pDisp ارجاعي به کنترل webbrowser است که event در آن رخ داده است و URL آدرس صفحه در حال load شدن است .
3 – DownloadBegin : اين event در آغاز حرکت به صفحه جديد روي مي دهد و هيچ پارامتري نمي گيرد . مرورگر مي تواند در اين event پيغامي براي شروع عمليات جديد نشان مي دهد .
4 – DownloadComplete : اين event در پايان عمليات يا در صورت انصراف کاربر يا بروز خطا روي مي دهد .
5 – ProgressChange : با بروز هر تغييري در وضعيت load ، اين event روي مي دهد . شکل کلي فراخواني آن بصورت زير است :

Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long, ByVal ProgressMax As Long)


که Progress نشان دهنده پيشرفت عمليات ( بايتهاي load شده ) است . پارامتر ProgressMax تعداد کل بايتهايي که بايد load شوند را نشان مي دهد بنابر اين :

(Progress/ProgressMax)*100=درصد پيشرفت عمليات load

 
   
 |    نوشته شده توسط NEMESIS
   
 
پروتکل FTP علاوه بر نقل و انتقال فايل بين دو کامپيوتر ، مي تواند نوعي مديريت فايل ( مثل حذف فايل يا ايجاد پوشه ) روي کامپيوتر مقصد را انجام دهد . FTP در انتقال فايل بسيار قويتر از HTTP است ولي به مراتب پيچيده تر از HTTP مي باشد اما کنترل IT اين پيچيدگيها را از ديد برنامه نويس مخفي کرده است .
براي کار با سرورهاي FTP بايد به آنها Login نمود . نوع خاصي از Login به نام Anonymous Login ( ورود ناشناس ) وجود دارد که با آن کاربران مي توانند بدون محدوديت از سايت FTP استفاده کنند . توجه کنيد که حتي براي ورود ناشناس هم نياز به نام کاربر و کلمه عبور است . براي ارسال نام کاربر و کلمه عبور از خواص username و password کنترل IT استفاده مي شود . اگر خاصيت username خالي باشد ( blank ) ، کنترل IT بطور خودکار از anonymous استفاده مي کند و آدرس email کاربر بعنوان passowrd استفاده مي شود .
استفاده از متد OpenURL : متد OpenURL ساده ترين راه انجام عمليات FTP است . دستور زير از يک سايت FTP ليست مي گيرد :

Text.text=Inet.OpenURL("ftp://ftp.microsoft.com",icString)x

براي خواندن فايل از يک سايت FTP بايد در حالت باينري کار کرد :

b()=Inet.OpenURL("ftp://ftp.microsft.com/test.zip",icByteArray)x


استفاده از متد Execute : متد Execute قابليتهاي بيشتري دارد و اجرای آن در FTP نياز به دو پارامتر دارد :

Inet.Execute(url,operation)x


که url آدرس سايت FTP بهمراه نام و مسير فايل و پارامتر operation يک فرمان FTP است . کنترل IT با داده هاي خوانده شده FTP به دو طريق رفتار مي کند :
برخي از داده ها مثل پاسخ فرمان DIR در بافر کنترل IT قرار مي گيرد و بايد آنها را با متد GetChunk خواند .
برخي ديگر از داده ها مثل فايل خوانده شده با فرمان GET مستقيماً روي ديسک نوشته مي شوند و ديگر نيازي به استفاده از متد GetChunk نيست .
فرامين FTP بسيار قوي هستند و حتي به شما اين امکان را مي دهند که فايلها را به روي کامپيوتر مقصد کپي کنيد ، به پوشه هاي کامپيوتر مقصد برويد ، فايلها را حذف کنيد و يا تغيير نام دهيد . البته بايد توجه داشت که فرامين قابل اجرا به نوع ورود به سيستم FTP بستگي دارد . اگر با کاربر anonymous به يک سايت FTP وارد شويد تنها مي تواند فايلها را ببيند و آنها را download کنيد .
مهمترين فرامين FTP عبارتند از :
CD path : به دايرکتوري path مي رويد .
CDUP : به يک دايرکتوري بالاتر مي رود .
CLOSE : بستن اتصال FTP
DELETE file1 : حذف فايل file1
DIR file1 : جستجوي فايل file1 روي دايرکتوري جاري
MKDIR path : ايجاد يک دايرکتوري با نام path
PUT file1 file2 : فايل file1 را از کامپيوتر مبدا روي فايل file2 در کامپيوتر مقصد کپي مي کند .
PWD : نام دايرکتوري جاري در کامپيوتر مقصد را برمي گرداند .
QUIT : قطع اتصال FTP
GET file1 file2 : فايل file1 را از کامپيوتر مقصد روي فايل file2 در کامپيوتر مبدا کپي مي کند .
RENAME file1 file2 : تغيير نام فايل file1 به file2
RMDIR path : حذف دايرکتوري path در کامپيوتر مقصد
SIZE file1 : بدست آوردن تعداد بايتهاي فايل يا دايرکتوري file1

 
   
 |    نوشته شده توسط NEMESIS
   
 
مروری بر TCP/IP

نکته : مطالب زير تنها در حد يک يادآوري مي باشد . اگر اطلاعات کمي در مورد TCP/IP داريد به کتابهاي موجود مراجعه کنيد .

پروتکل Protocol : قراردادي است براي برقراري ارتباط در شبکه

مدل TCP/IP : مجموعه اي از پروتکلهاي ارتباطي مرتبط بهم است که مکانيزمها و سرويسهاي مورد نياز جهت برقراري ارتباط در اينترنت را مهيا مي کنند . اين مدل شامل ۴ لايه است :
۱ - لايه کاربرد Application Layer : شامل برنامه هاي کاربردي و پروتکلهايي مثل Http ، Ftp ، Smtp ، Pop و Telnet مي باشد .
۲ - لايه انتقال Transport Layer : اين لايه شامل دو پروتکل TCP و UDP است . پروتکل TCP وظيفه کنترل رسيدن بسته هاي داده به مقصد ( TCP/IP داده ها را به بسته هاي کوچکي تقسيم مي کند که هر بسته حاوي آدرس فرستنده ، گيرنده و شماره بسته مي باشد ) ، تصحيح خطا و مرتب سازي بسته ها را برعهده دارد . UDP پروتکلي شبيه TCP است با اين تفاوت که هيچ ضمانتي براي رسيدن بسته هاي اطلاعاتي در آن وجود ندارد و معمولاً در انتقال صوت و ويدئو روي اينتزنت استفاده مي شود .
۳ - لايه اينترنت Internet Layer : شامل پروتکل IP است که مسئول مسيريابي بسته هاي اطلاعاتي مي باشد .
۴ - لايه دسترسي به شبکه Link Layer : شامل بخشي از هسته سيستم عامل و نيز درايورهاي واسط شبکه براي کار با سخت افزار شبکه مي باشد .

سوکت Socket و پورت Port : سوکت يک ورودي انتزاعي در لايه انتقال مي باشد که براي ايجاد ارتباطات مختلف TCP/IP بکار مي رود . اغلب برنامه هاي کاربردي که از TCP و UDP استفاده مي کنند ، عمليات انتقال اطلاعات خود را با ساخت يک سوکت و سپس انجام يکسري عمليات روي آن انجام مي دهند . اين عمليات عبارتند از :
۱ - عمليات کنترلي : شامل اختصاص يک شماره پورت به سوکت ، initiate کردن يا accpet کردن يک ارتباط ، از بين بردن سوکت
۲ - عمليات انتقال داده : شامل نوشتن داده روي سوکت و خواندن داده از سوکت
۳ - عمليات بررسي وضعيت : مثل پيدا کردن آدرس IP مربوط به سوکت ، پيدا کردن شماره پورت سوکت و غيره

HTTP : پروتکل انتقال داده براي وب است .

FTP : پروتکل انتقال فايل روي اينترنت است .

SMTP و POP : پروتکلهاي ارسال و دريافت email مي باشند

 
   
 |    نوشته شده توسط NEMESIS
   
 
مقدمه : کنترل Internet Transfer نسبت به کنترل WebBrowser که در روزهاي قبلي معرفي شد در سطح پايينتري قرار دارد . اين کنترل با استفاده از دو پروتکل HTTP و FTP مي تواند داده ها را منتقل کند . اين کنترل زمانيکه از پروتکل HTTP استفاده مي کند با همان روش کنترل WebBrowser به سرويس دهنده صفحات وب متصل مي شود اما بجاي آنکه صفحه وب را نمايش دهد متن Html صفحه را بازيابي مي کند . همچنين زمانيکه اين کنترل از پروتکل FTP استفاده مي کند قادرست فايلها را بين کامپيوترهاي روي شبکه منتقل سازد .
اتصالات HTTP : همانطور که مي دانيد ، پروتکل HTTP استاندارد وب مي باشد . صفحات وب با زبان Html نوشته مي شوند و انتقال آنها از server به client توسط پروتکل HTTP صورت مي گيرد .
متد OpenURL : ساده ترين راه استفاده از کنترل IT متد OpenURL است . شکل کلي اين متد بصورت زير است :

Inet.OpenURL(url,DataType)x

که url آدرس صفحه وب و DataType نوع داده بازيابي شونده است و دو مقدار icString ( داده متني ) يا icByteArray ( داده باينري ) را مي گيرد . مقدار بازگشتي اين متد ، داده هاي منتقل شده است .
اين متد بصورت سنکرون کار مي کند يعني در تمام مدت کار آن برنامه نمي تواند کار ديگري انجام دهد . اگر از icByteArray استفاده کنيد بايد مقدار بازگشتي آنرا در يک ارايه بايت قرار دهيد .
مثال 1 : از بخش Component در منوي Project مورد Microsoft Internet Transfer Control 6.0 را به toolbar خود اضافه کنيد . سپس يک کنترل IT روي فرم قرار دهيد و همچنين يک Rich Textbox و يک دکمه روي فرم قرار دهيد و کد زير را براي event مربوط به کليک دکمه بنويسيد :

TextBox.text=Inet.OpenURL(“[url]www.microsoft.com”,icString)x[/url]

مثال 2 : کد زير داده هاي باينري را از اينترنت خوانده و آنها را در يک فايل ذخيره مي کند :

Dim b() as byte
B()=Inet.OpenURL([url]ftp://ftp.microsoft.com/test.zip,icByteArray)x[/url]
Open App.path & “\test.zip” For Access Write As #1
Put #1,b()x
Close #1


رويداد StateChanged : کنترل IT فقط يک event دارد که StateChanged مي باشد . اين event زماني روي مي دهد که State کنترل تغيير کند . State هر اتفاقي است که برنامه بايد از آن مطلع شود . تعريف کلي اين event بصورت زير است :

Inet_StateChanged(ByVal NewState As Integer)x

که NewState مقداري است که حالت جديد را بيان مي کند . مقادير ممکن اين پارامتر عبارتند از :
icNone : حالت تغيير نکرده است .
icResolvingHost : در حال جستجوي آدرس IP کامپيوتر موردنظر .
icHostResolved : آدرس IP کامپيوتر موردنظر يافت شد .
icConnecting : در حال اتصال به کامپيوتر مقصد
icConnected : اتصال به کامپيوتر مقصد برقرار شد .
icRequesting : در حال ارسال درخواست به کامپيوتر مقصد
icRequestSent : درخواست به کامپيوتر مقصد ارسال شد .
icReceivingResponse : در حال دريافت پاسخ از کامپوتر مقصد .
icResponseReceived : پاسخ کامپيوتر مقصد دريافت شد .
icDisconnecting : در حال قطع اتصال با کامپيوتر مقصد .
icDisconnected : اتصال مقصد با موفقيت قطع شد .
icError : در ارتباط با کامپيوتر مقصد خطايي رخ داده است .
icResponseCompleted : تکميل پاسخ – تمام داده ها دريافت شد .
تشخيص خطا در عمليات انتقال داده اهميت بالايي دارد و StateChanged در صورت بروز هر خطايي مقدار icError را برمي گرداند و اطلاعات خطا را در دو خاصيت ResponseCode و ResponseInfo برمي گرداند .
انتقال داده بصورت آسنکرون : کنترل IT متدهاي انعطاف پذير ديگري هم دارد که آسنکرون هستند و اجازه مي دهند تا همزمان با عمليات انتقال داده ، برنامه به وظايف ديگري هم بپردازد . اين متدها با استفاده از Event Driven Model کار مي کنند . بدين معني که وقتي برنامه درخواست انتقال داده اي را مي دهد کنترل IT درخواست را در زمينه برنامه انجام مي دهد و برنامه ازاد است تا به کارهاي ديگرش بپردازد . زمانيکه داده ها بازيابي شود ، داده ها را از بافر داخلي کنترل IT مي خواند .
متد GetChunk : در عمليات انتقال آسنکرون ، بايستي داده را توسط اين متد از بافر داخلي کنترل IT بگيريم :

Inet.GetChunk(datasize[,datatype])x

که پارامتر datasize از نوع long بوده و تعيين مي کند چند بايت از بافر خوانده شود و پارامتر اختياري datatype نوع داده را مشخص مي کند و مي تواند مقادير icString و icByteArray را بگيرد .
زمانيکه StateChanged وارد حالتهاي icResponseReceived و يا icResponseCompleted شد بايد از GetChunk استفاده کنيد . بدين صورت که از يک حلقه استفاده مي کنيم تا کل بافر را بخوانيم :

Private Sub Inet_StateChanged(Byval State as Integer)x
Dim temp1,temp2
Select Case State
Case icResponseCompleted
temp1=””x
temp2=””x
Do
temp1=Inet.GetChunk(512,icString)x
temp2=temp2 & temp1
Loop Until temp1=””x
End Select
End Sub

براي بالابردن کارايي ، بهتر است از قطعات کوچک ( بين 512 تا 1024 بايتي ) استفاده کنيد .
متد Execute : و اما انعطاف پذيرترين متد کنترل IT ، متد Execute است . فرمت کلي اين متد بصورت زير است :

Inet.Execute(url,Command,Data,RequestHeaders)x

که url آدرس مقصد ، Command فرماني است که به کامپيوتر مقصد داده مي شود و Data و RequestHeaders اطلاعات اضافي لازم براي اجراي فرمان داده شده است . فرمانهاي Command همان فرمانهاي HTTP هستند که عبارتند از :
- GET : دريافت داده ها از کامپيوتر مقصد
- HEAD : دريافت اطلاعات header از کامپيوتر مقصد
- POST : ارسال اطلاعات لازم براي تکميل درخواست
- PUT : ارسال فايل براي کامپيوتر ميزبان ( upload )
فرمان GET پرکاربردترين فرمان متد Execute است و داده هاي خوانده شده را در بافر داخلي بافر کنترل IT قرار مي دهد تا بتوان با متد GetChunk آنها را بازيابي نمود .
مثال :

Inet.Execute [url]http://www.microsoft.com,”GET”x[/url]

ساير خواص کنترلIT :
- AccessType : نوع دسترسي کنترل IT به اينترنت را مشخص مي کند و سه مقدار مي تواند بگيرد :
icUseDefault : استفاده از تنظيمات رجيستري براي دسترسي به اينترنت
icDirect : اتصال مستقيم کنترل IT به اينترنت
icNamedProxy : اتصال به اينترنت توسط پروکسي
- Document : نام صفحه پيش فرض که در متد Execute از آن استفاده مي شود . اگر به متد Execute پارامتر url را ندهيد از اين صفحه پيش فرض استفاده مي کند .
- Password : کلمه رمز عبور کامپيوتر ميزبان FTP
- Procotol : نوع پروتکل مورد استفاده در متد Execute را مشخص مي کند و 5 مقدار مي تواند بگيرد :
icUnknown : نامعلوم
icDefault : پروتکل پيش فرض
icFTP : پروتکل FTP
icHTTP : پروتکل HTTP
icHTTP : پروتکل حفاظت شده HTTP
- Proxy : نام ميزبان پروکسي
- RequestTimeOut : مدت زماني که کنترل IT صبر مي کند تا اطلاعات را دريافت کند . اگر اين خاصيت صفر باشد کنترل تا هر زمان که لازم باشد براي دريافت پاسخ صبر مي کند . در حالت سنکرون ( متد OpenURL ) بعد از سپري شدن اين مدت زمان ، يک خطا توليد مي شود و در حالت آسنکرون ( متد Execute ) رويداد StateChanged مقدار خطا را بر مي گرداند
- ResponseCode : بعد از بروز حالت icError اين خاصيت کد خطا را مي دهد .
- ResponseInfo : توضيحي درباره خطا
- StillExecuting : اگر True باشد يعني کنترل مشغول انجام کار است .
- URL : آدرس مقصد در متدهاي OpenURL و يا Execute
- UserName : نام کاربر براي ورود به کامپيوتر ميزبان FTP

نکته 1 : براي دريافت برنامه نمونه براي متد Execute با من تماس بگيريد .
نکته 2 : موضوع روزهاي بعد :
1 - اتصالات FTP با استفاده از کنترل IT
۲ – آشنايي با کنترل WinSock

 
   
 |    نوشته شده توسط NEMESIS
   
 


Adobe Presenter  نرم افزاری است که بر روی Power Point نصب می شود و به شما این امکان را می دهد که تنها با چند کلیک ، دمو های معرفی و آموزش های گام به گام به سبک Flash بسازید ( بعد از نصب این نرم افزار ، یک منوی اصلی به Power Poin اضافه می شود که امکانات فوق العاده ای را در اختیار کاربران قرار می دهد)

قابلیت های Adobe Presenter :
- امکان اضافه کردن صدای گوینده و محیط های تعاملی با کاربر
- امکان اضافه کردن فیلم با هر فورمتی و خروجی گرفتن بصورت SWF
- رکورد و ویرایش صدا با کیفیت بالا
- امکان ایجاد تست و خودآزمایی بصورت حرفه ای و با امکانات کامل
- منتشر کردن محتوا بصورت PDF با حفظ تمامی انیمیشن ها
- پشتیبانی از AICC و SCORM
- هماهنگی کامل با نرم افزار Adobe Acrobat Connect Pro برای گسترش دادن ، مدیریت ، انتقال و رهگیری اطلاعات

 
 


 

System requirements
- Microsoft Windows XP with Service Pack 2 or Windows Vista
- Microsoft Office XP, 2003, or 2007 (Brazilian Portuguese, Dutch, English, French, German, Italian, Japanese, Korean, Simplified Chinese, Spanish)
- 1,024×768 screen resolution
- Microsoft Internet Explorer 6 or later
- 600MHz Intel Pentium III processor or equivalent
- 256MB of RAM
- 250MB of available hard-disk space

Additional requirements for viewing:
- Adobe Flash Player 8 or 9 for Windows or Mac
- Flash Player 9 for Linux or Solaris
- Adobe Reader for viewing PDF files created with Adobe Presenter

 
     لینک دانلود مستقیم : Adobe Presenter 7.0 54.7 MB

  

 
   
 |    نوشته شده توسط NEMESIS
   
 
خواندن از فايل :

1 - دستور Input : توسط دستورهای Input و Line Input می توان محتوای فايلهای متنی و باينری را خواند .
دستور Input به دو صورت بکار می رود :
Input #Filenumber,ReadData
ReadData=Input(Charnum,Filenumber)x
دستور اول کل يک فايل را خوانده و در متغير ReadData قرار می دهد . دستور دوم ، تعداد Charnum بايت از فايلی با شماره Filenumber را خوانده و در متغير ReadData قرار می دهد .
اين دو دستور تمام کاراکترهای موجود در فايل را می خوانند . برای اينکه بتوان فايل را خط به خط خواند ، از دستور Line Input استفاده کنيد :
Line Input #Filenumber,ReadData
البته از دستور Line Input بيشتر برای خواندن فايلهای متنی استفاده می شود زيرا ممکنست در فايل باينری هيچ کاراکتر انتهای خط ( CRLF ) وجود نداشته باشد و يکباره کل فايل خوانده شود .

۲ - دستور Get : از اين دستور برای خواندن فايلهای باينری با دسترسی تصادفی ( Random Access ) استفاده میشود :
Get #Filenumber,[Recordnum%],ReadData
اين دستور رکورد شماره Recordnum را از فايلی با شماره Filenumber می خواند و در متغير ReadData قرار می دهد . علامت کروشه نشان می دهد که پارامتر Recordnum اختياری است و در صورتيکه ذکر نشود داده ها از رکورد بعدی فايل ( جائيکه اشاره گر فايل آنجا قرار دارد ) خوانده می شوند .

نوشتن در فايل :

۱ - دستور Print : توسط اين دستور می توان اطلاعاتی را در فايل قرار داد :
Print #FileNumber,WriteData
دستور فوق محتويات متغير WriteData را در فايلی با شماره FileNumber می نويسد . بوسيله دستور Print می توان اطلاعات را بصورت خط به خط در فايل نوشت برای مثال :
Print #1,"Hello Visual Basic"+Vbcrlf
عبارت Vbcrlf نشان دهنده کاراکتر انتهای خط ( CRLF ) در ويژوال بيسيک می باشد .

۲ - دستور Put : اين دستور برای نوشتن داده ها در فايلهای باينری با دسترسی تصادفی بکار می رود :
Put #FileNumber,[Recordnum],WriteData
اين دستور محتويات متغير WriteData را در رکورد شماره Recordnum قرار می دهد .

تعيين محل رکورد در فايلهای با دسترسی تصادفی :

برای منتقل کردن اشاره گر فايل به يک رکورد در يک فايل باينری با دسترسی اتفاقی ، از دستور Seek استفاده می شود . اين دستور محل يک بايت را در فايل می گيرد و اشاره گر فايل را در آنجا قرار می دهد بنابراين دستورات Put و Get می توانند با اين رکورد کار کنند :
Seek #FileNumber,RecordNumber

تشخيص انتهای فايل :

برای اينکه متوجه شويم به انتهای يک فايل رسيده ايم از دستور EOF استفاده می کنيم . اين دستور يکی از مقادير True يا False را بر می گرداند که نشان می دهد به انتهای فايلرسيده ايم يا نه . از اين تابع در حلقه های Do-While استفاده می شود :
Do While Not (EOF(FileNumer))x
.
.
.
Loop
حلقه فوق تا زمانيکه فايل موردنظر به انتها نرسيده باشد اجرا خواهد شد .

بدست آوردن طول يک فايل :

بوسيله دستور LOF می توان طول محتويات يک فايل را بدست آورد :
FileSize=LOF(FileNumber)x

بدست آوردن محل اشاره گر فايل :

توسط دستور Loc می توان محل جاری اشاره گر فايل را بدست آورد . اجرا شدن اين دستور محل اشاره گر را تغيير نمی دهد :
FilePosition=Loc(FileNumber)x

 
   
 |    نوشته شده توسط NEMESIS
   
 


     

Eset Login Viewer v1.2 این نرم افزار به شما یوزر و پسورد لازم برای آپدیت آنتی ویروس ساده ولی قدرتمند Eset NOD32 V3 را در اختیارتان می گذارد - فقط کافی است که شما به اینترنت وصل شوید و بعد این نرم افزار را اجرا کرده و حداکثر به مدت ۱ دقیقه صبر کنید تا یوزر و پسورد سالم که به رنگ سبز هست به شما نشان داده شود ( نکته : از یوزر و پسورد قرمز استفاده نکنید چون سوخته اند و غیر قابل استفاده )

دانلود با حجم :۲۴۰ کیلوبایت

 
   
 |    نوشته شده توسط NEMESIS
   
 

ترفند شماره 61

غير فعال کردن ويزارد  Desktop Cleanup (در ويندوز XP)
بطور پيش فرض ويندوز هر 60 روز ويزارد 
Desktop Cleanup را براي حذف آيتمهاي و ميانبر هاي بي استفاده Desktop  فعال مي کند .  اين تنظيمات  اجراي اتوماتيک  اين فرايندراغير فعال مي کند.
رجيستري
را باز کرده و کليد زير را در آن پيدا کنيد .  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\
Desktop\CleanupWiz
يک مقدار
DWORD جديد ايجاد کرده و  نام "NoRun"  را به آن بدهيد. سپس مقدار آن را برابر با تعداد اسناد اخيري  کنيد که مايل به نشان دادن آنها هستيد .
از رجيستري خارج شويد و براي اعمال تغييرات ممکن است نياز به راه اندازي مجددا سيستم و يا Log off آن داشته باشيد !

--------------------------------------------------------------------------------

بقیه در ادامه مطلب! 
 
   
 |    نوشته شده توسط NEMESIS ادامه مطلب | 
   
 

ترفند شماره  50

 

 فعال کردن آيکون  Scheduled Tasks (در ويندوز  ME)
اين حالت به شما امکان مي دهد تا سيستمتان را به نحوي ساختار بندي کنيد که آيکون Scheduled Tasks در نوارا ابزار ويندوز ME ديده شود .
رجيستري را باز کنيد. و کليد زير را در آن بيابيد . 
HKEY_CLASSES_ROOT\SystemFileAssociations\image\ShellEx\
ContextMenuHandlers\ShellImagePreview]
مقدار  "(Default)"  را پاک کنيد تا عمل پيش نمايش تصاوير غير فعال شود .براي برگشت به وضعيت سابق مي توانيد مقدار   "{e84fda7c-1d6a-45f6-b725-cb260c236066}" را براي آن تعيين نمائيد.
از رجيستري خارج شويد. تغييرات فورا در ويندوز اعمال مي شود .

--------------------------------------------------------------------------------

بقیه در ادامه مطلب! 

 
   
 |    نوشته شده توسط NEMESIS ادامه مطلب | 
   
 

آموزش ساخت یک ویروس قوی و آزار دهنده



اخطار
: این وبلاگ هیچگونه مسئولیتی در قبال استفاده های ناهنجار و مخرب از آموزشهای این
 بخش را نخواهد پذیرفت و مسئولیت استفاده از مطالب این بخش از وبلاگ فقط با شماست.
مطالب این بخش از وبلاگ مختص کسانی است که قصد یادگیری و درک طرز کار ویروس ها را
دارند خواهد بود. توصیه میشود مطالب این بخش را فقط برای یادگیری هر چه بهتر ویژوال
بیسیک مطالعه نمایید و از سو استفاده های غیر اخلاقی و آزار و اذیت، جدّاً خودداری نمایید.

توجه : استفاده از مطالب این بخش فقط با ذکر منبع بلامانع است.

درباره ویروس : خرابکاری های این ویروس عبارت اند از :

  • 1- اعمال محدودیت های زیر از طریق رجیستری :

غیر فعال کردن رجیستری (DisableRegEdit)
غیر فعال کردن Task Manager (DisableTaskManager)
غیر فعال کردن تنظیمات صفحه نمایش (DisableDisplayProperties)
غیر فعال کردن Shutdown (DisableShutdown)
غیر فعال کردن جستجو (DisableSearch)
غیر فعال کردن System Properties (DisableMyComputerProperties)
غیر فعال کردن Run (DisableRun)
ناپدید کردن All Programs از منوی Start (DisableAllPrograms)
مخفی کردن درایو C: (HideDrive_C)
غیر فعال کردن کنترل پنل (DisableControlPanel)
غیر فعال کردن Folder Options (DisableFolderOption)
محدود کردن نمایش فایلهای مخفی (DontShowHiddenFiles)
محدود کردن نمایش فایلهای ابر مخفی (DontShowSuperHiddenFiles)
غیر فعال کردن Add/Remove (DisableAddRemove)
تغییر نام و کمپانی کامپیوتر (ChangeNameAndCompanyName)

  • 2- تغییر دادن کلیک چپ و راست ماوس هر چند لحظه یک بار از طریق توابع API

  • 3- اجرا شدن خودکار ویروس موقع بازکردن درایوها با استفاده از فایل Autorun.inf

ادامه در ادامه مطلب

 
   
 |    نوشته شده توسط NEMESIS ادامه مطلب | 
   
 

چگونه با ويزوال بيسيك سورس يك وبسايت را دريافت كرد؟

 

براي اين كار شما احتياج به يك Component به نام 6.0 Internet Transfer Control Microsoft داريد براي اين كار به Project>Componen رفته و تيك اين آيتم را بزنيد و آن را وارد برنامه كنيد و بعد دستور زير را وارد كنيد كه در دستور سورس ميهن بلاگ را در تكست باكس 1 نمايش مي دهد

 

Text1.Text = Intel.OpenURL("www.mihanblog.com")

 
   
 |    نوشته شده توسط NEMESIS
   
 

ترفند شماره37  

از کار انداختن error reporting اکس پي

 ويندوز اکس پي نسبت به ويندوز هاي ما قبل خود پايدار تر است اما باز هم برنامه ها در آن گاهي دچار ضربه ميشوند مايکروسافت براي اينکه به علل اين ضربه ها پي ببره پس لز ضربه ها طي يک پيام از کار بر ميخواهد که انها را به مايکروسافت از طريق ايميل گزارش دهند آيا هر بار که برنامه اينترنت اکسپلورر يا فتوشاپ دچار ضربه ميشوند .حوصله داريد ضربه رو به مايکروسافت گزارش بدهيد اگر از کليک کردن روي دکمه ي dont send email خسته شده ايد اين خصوصيت را غير فعال کنيد با کليد زاست روي ماي کامپيوتر و انتخاب پراپرتيس پپنجره ي system proprties را باز کنيد در صفحه ي advanced روي دکمه ي eror reporting کليک کنيد اين کار به شما امکان ميدهد که گزارش خطا را غير فعال کنيد disable error reporting يا آن را فقط براي خطاهاي ويندوز با بعضي از برنامه ها فعال کنيد .

--------------------------------------------------------------------------------

بقه در ادامه مطلب!

 
   
 |    نوشته شده توسط NEMESIS ادامه مطلب | 
   
 

ميتوان رجيستري را قلب ويندوز ناميد. با تغيير برخي از كدهاي رجيستري ميتوانيد برخي از خصوصيات ويندوز را كه خوشتان نمي آيد حذف ياتغيير دهيد.

 تذكر مهم:

بايد دقيقا مثل همين كليدها را در رجيستري وارد كنيد.كوچكترين تغييري ممكن است منجر به دوباره Setup كردن ويندوز شود.

 براي شروع كار ابتدا در قسمت Run اين دستور را وارد كنيد Regedit :  و كليد OK را كليك كنيد:

 پس از تغيير دستور مورد نظر فقط پنجره Registry Editor را ببنديد و كامپيوتر را Restart كنيد تا تغييرات اعمال شوند.

 حالا هر كدام از دستورات زير را كه دوست داريد ميتوانيد تغيير دهيد.

 بدون Favorites :

اگر از  در منوي  خوشتان نمي آيد ميتوانيد آن را حذف كنيد.براي اين كار به زير كليد:

 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

رفته و يك مقدار  به نام NoFavoritesMenu بسازيد و به آن مقدار 1 دهيد.

برداشتن RUN از منوي START :

به زير كليد زير برويد:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

و يك مقدار باينري  به نام NoRun بسازيد و به آن مقدار01  بدهيد.بدين ترتيب حتي كليدهاي  نيز كار نخواهند كرد.

--------------------------------------------------------------------------------

بقیه در ادامه مطلب!

 
   
 |    نوشته شده توسط NEMESIS ادامه مطلب | 
   
 
سلام . این دستورات نشون میده freemind یعنی این.

 

بقیه در ادامه مطلب!

 
   
 |    نوشته شده توسط NEMESIS ادامه مطلب | 
   
 
شاید بخواین حال کاربرتون رو بگیرین و دکمه  Exit رو Disable کنین و نذارین از برنامه خارج شه واسه این کار کد زیر رو تو یک Module کپی کنید .

Public Const SC_CLOSE = &HF060
Public Const MF_BYCOMMAND = &H0

Public Declare Function GetSystemMenu Lib "user32" _
(ByVal hwnd As Long, ByVal bRevert As Long) As Long

Public Declare Function DeleteMenu Lib "user32" _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long

Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long


این کد رو هم در Form_load کپی کنید .

Dim hMenu As Long

hMenu = GetSystemMenu(Me.hwnd, 0&)
If hMenu Then
Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
DrawMenuBar (Me.hwnd)
End If

 
   
 |    نوشته شده توسط NEMESIS
   
 
اگه برنامتون لازم داشت که نام تمام Printer های موجود رو بدونه (مثلاً print گرفتن با Printer دلخواه) از کد زیر استفاده کنین . بعداً کار با Printer رو کامل توضیح میدم ....

فقط دو object رو بسازین : Command1  و  List1

Private Sub Command1_Click()
Set Printer = Printers(List1.ListIndex)
End Sub

Private Sub Form_Load()
For a = 0 To Printers.Count - 1
List1.AddItem Printers(a).DeviceName
Next a
End Sub

 
   
 |    نوشته شده توسط NEMESIS
   
 
سوال : چه طور میشه با ویژوال بیسیک یه فایل رو مخفی کرد.هر جوری که شده فقط مخفی بشه؟

بازم سلام به این دوست خوبم که چندتا سوال کردن . در جواب باید بگم که شما می تونین Attribute فایلها رو به روش زیر تغییر بدین مثلاً Read Only Hidden Archive و .... که واسه مخفی کردن هم کافیه Hidden کنیدش ....

SetAttr "c:\1.jpg", vbHidden+vbsystem+...

 
   
 |    نوشته شده توسط NEMESIS
   
 
 خوب اینجا می خوام یک کد کاربردی دیگه رو بهتون بگم . این کد باعث می شه که وقتی شما رویداد خاصی رو اجرا مکنید , کلید خاصی از کیبرد اجرا شود یعنی مثلاً اگر شما روی یک Textbox هستید و کلید Enter را فشردید عملی معادل فشردن کلید ..... , Tab ,Delete,Pagedown , F1 ,F2 روی دهد :

Private Sub TextBox_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
SendKeys "{tab}"
End If
End Sub


باز هم این کد را در رویداد keypress پیشنهاد می کنم .
در اینجا کدهایی که می توان از طریق این تابع با آنها کار کرد را می بینیم :

 

Key

Code

BACKSPACE {BACKSPACE}, {BS}, or {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL or DELETE {DELETE} or {DEL}
DOWN ARROW {DOWN}
END {END}
ENTER {ENTER} or ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS or INSERT {INSERT} or {INS}
LEFT ARROW {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
RIGHT ARROW {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
UP ARROW {UP}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
F13 {F13}
F14 {F14}
F15 {F15}
F16 {F16}
 
   
 |    نوشته شده توسط NEMESIS
   
 
 سلام دوستان , امروز می خوام یه مطلب کاربردی تو VB رو براتون بگم که شاید خیلی به کارتون بیاد این کد شاید براتون تو برنامه هایی که باید از ورودی مقدار خاصی رو بگیرید مثلا می خواهید از ورودی فقط یک مقدار عددی رو بگیرید و بعد اون رو تو محاسبات استفاده کنید و اگر کاربر مثلا در ورودی 788در12 را تایپ کنه برنامه Error میده خوب برای رفع این مشکل می شه از ورودی فقط عدد گفت یعنی در صورتی که کاربر فقط اعداد 0 تا 9 رو تایپ کنه در ورودی نمایش داده می شه این هم حلال این مشکل .

خوب این کد رو بهتر که در رویداد Keypress کنترل مورد نظر خود ( از جمله Textbox , Rich Textbox , Inputbox و ... ) بنویسید که به محض فشرده شدن هر کلید از سوی کاربر این قسمت چک می شود .



Private Sub TextBox_KeyPress(KeyAscii As Integer)
'=============================================
Dim StrValid As String
StrValid = "0123456789"
If InStr(StrValid, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub



بد نیست یه اشاره ای هم به توابع به کار رفته تو این کنم :

1. تابع Instr : یک زیررشته را در یک رشته دیگر جستجو میکند و موقعیت آنرا در رشته بر می گرداند شکل کلی این تابع به صورت زیر است :

InStr([start, ]string1, string2[, compare])
 

قسمت

توضیحات

start

مکانی از رشته که جستجو باید از آنجا  آغاز شود

string1

رشته اول

string2

رشته دوم

compare

 

مشخص کردن نوع مقایسه که بین دو رشته انجام میشود که خود بر سه نوع vbBinaryCompare و vbDatabaseCompare و vbTextCompare می باشد



به این مثال توجه کنید :

instr("visual basic Language","Language") ==============> عدد 14 برگردانده میشود

:: یک نکته و آن اینکه مواvدی که در شکل کلی این تابع در داخل [ ] قرار دارند اختیاری می باشند .



2. تابع Chr : این تابع کاراکتر معادل کد اسکی یک مقدار را بر می گرداند

KeyAscii : آرگومانی است که کد اسکی کلیدی از صفحه کلید را که فشرده شده بر می گرداند.

 

 
   
 |    نوشته شده توسط NEMESIS
   
 
وقت امتحان هاست!

وقت نمی کنم مطلبی بذارم!

انشالا ۱ ماه دیگه بر می گردم!

 
   
 |    نوشته شده توسط NEMESIS
   
 

IE8

بعد از انتشار نسخه نه چندان مطلوب IE7 از کمپانی مایکروسافت نوبت به نسخه IE8 رسید

بقیه در ادامه مطلب!

 
   
 |    نوشته شده توسط NEMESIS ادامه مطلب | 
   
 
اول بگم این آنتی فیلتر نرم افزاره پس از کار نمی افته! از همه ی شما عزیزان بابت نظراتتون تشکر می کنم و شروع دانشگاه و سنگین بودن درس ها باعث شده تا از این به بعد در آخر هر هفته یا دو هفته فقط با یک مطلب جدید بیام.(نه بیشتر) باز هم از همگی ممنونم. نظر بدین بای!
 
   
 |    نوشته شده توسط NEMESIS
   
 
یک سهیت توپ برای pocket pc

فقط نظر یادتون نره!

سایت

راستی آقا روزبه ID من که هست
با اون تماس بگیر!

 
   
 |    نوشته شده توسط NEMESIS
   
 
نظر بدید....

 
   
 |    نوشته شده توسط NEMESIS
   
 
با اینکه نظر ندادین ولی من آنتی ف ی ل ت ر رو می زارم
اما یادتون باشه خیلی نامردین!

آدرس: آنتی فیلتر

اما جانما نظر بدین!!!

 
   
 |    نوشته شده توسط NEMESIS
   
 
یک آنتی ف ی ل ت ر توپ دارم

اگه نظرا به ۱۰ برسه آدرسه شو می زارم!
پس نظر بدین تا براتون بزارم!

۱۰۰٪ تضمینی

پس تا بعد !...............

 
   
 |    نوشته شده توسط NEMESIS
   
 
رجیستری بانک اطلاعاتی قدرتمند است که جهت ذخیره سازی تنظیمات و تغییرات اعمال شده در نسخه های 32بیتی Microsoft Windows  شاملVista,95,98,NT,2000,XP,Me بکار میرود.رجیستری شامل اطلاعات و تنظیمات برای تمام سخت افزار ها,نرم افزار ها,کاربران و ... میباشد.هنگامی که یک کاربر تغییراتی در تنظیمات CONTROLPANEL, انتساب فایلها,سیاستهای امنیتی و یا برنامه های نصب شده ایجاد میکند ,این تغییرات به رجیستری منعکس شده و در ان جا نیز ذخیره میشود

خوب با توضیحی که در بالا دادم تا حدودی از رجیستری آشنا شده اید حالا من چند تا کار با رجیستری رو براتون توضیح میدم تا بیشتر آشنا بشین .
تا الان شده ویندوزتان خیلی دیر بوت بشه خوب اگه از ویندوز xp استفاده میکنید نیاز نیست نگران باشید چون xp میتونه تمام فایلهای بوت را در کنار هم قرار بده. چطوری ...الان میگم
ابتدا وارد run شده و regedit را تایپ کنید حالا مسیر زیر را انجام دهید:
HKEY_LOCAL_MACHIN\Software\Microsoft\dfrag پوشه  BootOptimizeFunction را پیدا کرده یه متغیر از نوع  string  بسازید و نام آن را BootOptimizeFunction بذارید  و روی آن کلیک راست کرده و سپس از منوی آن گزینه modify  را برگزینید و سپس مقدار آن را به Y  تغییر دهید تا فعال شود !!!

 

نکته: دستورات رجیستری به حروف کوچک و بزرگ خیلی حساس هستند یعنی حرف اول هر کلمه ای با حروف بزرگ شروع میشود.

 

- بعضی ها هم به راست کلیک موس خیلی حساس هستند یه نفر اگه رو سیستمش نشسته  باشه و خدا نکرده طرف اگه راست کلیک کنه سریع میگن فایل های من فرمت نشه یا حذف نشه خوب چیکار کنیم که دیگه نگران نباشیم
 وارد رجیستری شوید و کلید زیر را پیدا کنید :
HKEY_Current_user\Software\Microsoft\Windows\Current version\Policies\Explorer
یک متغیر جدید از نوع DWORD  بسازید و اسم آن را NoViewContextMenu  را به آن بدهید حالا  به آن  مقدار  1 بدهید. از رجیستری خارج شوید و ویندوز خود را از نو بوت کنید می بینید که دیگه راست کلیک موس کار نمیکنه برایه برگشتن به حالت اول مسیر را دوباره میری و مقدار 1 را به صفر تغییر می دهید .

 

-افزودن متن به ساعت سیستم :

اگر میخواهی به ساعت ویندوز اسمی اظافه کنید مسیر زیر را انتخاب کنید.
به کلید زیر بروید :
HKEY_CURRENT_USER\Control Panel \ International
حال یک متغیر از نوع String  ایجاد کرده و نام آنرا S1159  ( در صورتی که از قبل ایجاد نشده باشد ) قرار دهید و متن دلخواه خود را در آن وارد نمایید .
حال متغیر دیگری از نوع STRING  بسازید و نام آنرا S2359  قرار دهید و متن دلخواه دیگری در آن قرار دهید . توجه داشته باشید که در ویندوزهای عربی یا فارسی میتوان متن را به فارسی نوشت !! در ضمن دقت کنید اکثر ویندوزها این دو متغیر فعال هستند پس عجله نکن اول خوب بگرد
New Folder  بدون اسم
خوب تا الان خیلی New Folder درست کردید حالا یه بار دیگه هم درست کن منتها قبل از اینکه به آن اسم بدهید Alt+255  را بزنید آنوقت  New Folder که درست کردید بدون اسم هستش .
منظور ازAlt + 255 این است که Alt  را پایین نگه داشته و 255 را بزنید.

 
یه نظر هم بدی بد نیست

 
   
 |    نوشته شده توسط NEMESIS
   
 
رجیستری بانک اطلاعاتی قدرتمند است که جهت ذخیره سازی تنظیمات و تغییرات اعمال شده در نسخه های 32بیتی Microsoft Windows شاملVista,95,98,NT,2000,XP,Me بکار میرود.رجیستری شامل اطلاعات و تنظیمات برای تمام سخت افزار ها,نرم افزار ها,کاربران و ... میباشد.هنگامی که یک کاربر تغییراتی در تنظیمات CONTROLPANEL, انتساب فایلها,سیاستهای امنیتی و یا برنامه های نصب شده ایجاد میکند ,این تغییرات به رجیستری منعکس شده و در ان جا نیز ذخیره میشود خوب با توضیحی که در بالا دادم تا حدودی از رجیستری آشنا شده اید حالا من چند تا کار با رجیستری رو براتون توضیح میدم تا بیشتر آشنا بشین . تا الان شده ویندوزتان خیلی دیر بوت بشه خوب اگه از ویندوز xp استفاده میکنید نیاز نیست نگران باشید چون xp میتونه تمام فایلهای بوت را در کنار هم قرار بده. چطوری ...الان میگم ابتدا وارد run شده و regedit را تایپ کنید حالا مسیر زیر را انجام دهید: HKEY_LOCAL_MACHIN\Software\Microsoft\dfrag پوشه BootOptimizeFunction را پیدا کرده یه متغیر از نوع string بسازید و نام آن را BootOptimizeFunction بذارید و روی آن کلیک راست کرده و سپس از منوی آن گزینه modify را برگزینید و سپس مقدار آن را به Y تغییر دهید تا فعال شود !!! نکته: دستورات رجیستری به حروف کوچک و بزرگ خیلی حساس هستند یعنی حرف اول هر کلمه ای با حروف بزرگ شروع میشود. - بعضی ها هم به راست کلیک موس خیلی حساس هستند یه نفر اگه رو سیستمش نشسته باشه و خدا نکرده طرف اگه راست کلیک کنه سریع میگن فایل های من فرمت نشه یا حذف نشه خوب چیکار کنیم که دیگه نگران نباشیم وارد رجیستری شوید و کلید زیر را پیدا کنید : HKEY_Current_user\Software\Microsoft\Windows\Current version\Policies\Explorer یک متغیر جدید از نوع DWORD بسازید و اسم آن را NoViewContextMenu را به آن بدهید حالا به آن مقدار 1 بدهید. از رجیستری خارج شوید و ویندوز خود را از نو بوت کنید می بینید که دیگه راست کلیک موس کار نمیکنه برایه برگشتن به حالت اول مسیر را دوباره میری و مقدار 1 را به صفر تغییر می دهید . -افزودن متن به ساعت سیستم : اگر میخواهی به ساعت ویندوز اسمی اظافه کنید مسیر زیر را انتخاب کنید. به کلید زیر بروید : HKEY_CURRENT_USER\Control Panel \ International حال یک متغیر از نوع String ایجاد کرده و نام آنرا S1159 ( در صورتی که از قبل ایجاد نشده باشد ) قرار دهید و متن دلخواه خود را در آن وارد نمایید . حال متغیر دیگری از نوع STRING بسازید و نام آنرا S2359 قرار دهید و متن دلخواه دیگری در آن قرار دهید . توجه داشته باشید که در ویندوزهای عربی یا فارسی میتوان متن را به فارسی نوشت !! در ضمن دقت کنید اکثر ویندوزها این دو متغیر فعال هستند پس عجله نکن اول خوب بگرد New Folder بدون اسم خوب تا الان خیلی New Folder درست کردید حالا یه بار دیگه هم درست کن منتها قبل از اینکه به آن اسم بدهید Alt+255 را بزنید آنوقت New Folder که درست کردید بدون اسم هستش . منظور ازAlt + 255 این است که Alt را پایین نگه داشته و 255 را بزنید. یه نظر هم بدی بد نیست
 
   
 |    نوشته شده توسط NEMESIS
   
 
GetVersionExA

اين تابع اطلاعاتي درباره نسخه و نگارش ويندوز را بر مي گرداند
اگر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود

lpVersionInfo   :  اين متغير توسط تابع مقدار دهي مي شود و حاوي اطلاعاتي راجه به نسخه ويندوز از نوع OSVERSIONINFO خواهد بود.

     dwOSVersionInfoSize   :  طول نوع OSVERSIONINFO  با بايت که توسط تابع بايد برگردانده شود
     dwMajorVersion   :  شماره نسخه اصلي ويندوز
     dwMinorVersion   :  شماره نگارش ويندوز
     dwBuildNumber   :  دفعات بازبيني ويندوز
     dwPlatformId   :  شمارهء سکوي ( Platform ) ويندوز
     szCSDVersion   :  نام رشته اي نسخه ويندوز

نحوه تعريف كردن تابع:

Private Type OSVERSIONINFO
   dwOSVersionInfoSize As Long
   dwMajorVersion As Long
   dwMinorVersion As Long
   dwBuildNumber As Long
   dwPlatformId As Long
   szCSDVersion As String * 128
End Type

Private Declare Function GetVersionExA Lib "kernel32.dll" (lpVersionInfo As OSVERSIONINFO) As Long

نظر يادتون نره!!!

 
   
 |    نوشته شده توسط NEMESIS
   
 
ويژوال بيسيك يكي از زبان هاي تحت ويندوزه و با ويژوال استديو كاملا فرق ميكنه!
حالا بريم سراغ يه تابع از توابع ( API) 
اميدوارم با توابع آشنايي داشته باشين

 GetSystemDirectory
اين تابع براي گرفتن آدرس پوشه سيستم بكار ميره مثلا در ويندوز 98 اگه ويندوز در درايو C نصب شده باشه محل اغلبا"
C:\Windows\System هست.
اين تابع به اين صورته:

Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

مقدار اول يه متغير از نوع String هست كه بايد به تابع بديم تا مسير رو توي اون قرار بده.و دومي رو 255 قرار بدين.اين مقدار
نشون ميده كه تابع حداكثر چند كاراكتر اول مسير رو برگردونه.چون طول اين مسير به ندرت 255 ميشه ما اين عدد رو بش ميديم.يه نكته رو توجه كنين كه اين تابع مقدار 255 كاراكتر(كه خودمون مشخص كرديم) رو داخل متغييري كه بش داديم قرار ميده كه كاراكتر هاي اول رو مسير پوشه سيستم و بقيه رو با كاراكتر 0 پر ميكنه.بنابراين ما بايد طور متغير كه در عادي 0 هست رو به 255 تغيير بديم و گرنه چون تابع ميخواد مقدار رو درون تابع جا بده و تابع جا نداره(طولش 0 هستش) اشكال ايجاد ميشه و برنامه ما بسته ميشه.همن اين ها به اين علت هستش كه تابع طول متغير ما رو تغيير نميده(ولي در خود ويبي اگر يه مقداري رو به يه متغير از نوع String بديم طول متغيير خودكار اضافه ميشه.)
براي اينكه ما طول متغير رو براي اين تابع به مقدار 255 كاراكتر تغيير بديم 2 كار ميتونيم بكنيم.يكي از اين روشه:
Dim sysPath as string * 255
توي اين روش طول متغير با استفاده از 255 كاراكتر تغيير ميكنه.(با استفاده از كاراكتر 0‌)
يا اينكه يه مقدار با طول 255 به متغيير ميديم:

Dim sysPath as String
sysPath = String(255," ")

حالا تابع رو فراخواني ميكنيم:

Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Form_Load()
Dim sysPath as String * 255
GetSystemDirectory sysPath,255
Msgbox Replace(sysPath,chr(0),"")
End Sub

در خط يكي مونده به آخر با استفاده از تابع Replace مقدار كاراكتر 0 اضافي كه با تابع داده شده حذف ميشه.

منتظر باشيد!

نظر يادتون نره!!!

 
   
 |    نوشته شده توسط NEMESIS
   
 
 منتظر باشيد...!
 
   
 |    نوشته شده توسط NEMESIS
   
 
تا چند وقت ديگه مطالبي درباره Visual Bisic 6.0 در اين وبلاگ قرار داده مي شود!
 
   
 |    نوشته شده توسط NEMESIS
   
 
 
 

pctfx3.1

Fire Car Fix Template

Multimedia CD Catalogues گروه طراحي چندرسانه اي وبلاگ رسانه گشت و گذار در دنياي رسانه هاي ديجيتال Medium Blog - Digital Media World قالبهاي رايگان سايت و وبلاگ Advanced Persian Blog Templates كارگاه طراحي وب مركز طراحي و توسعه سي دي هاي مولتي مديا

اطلاعات مربوط به كارگاه طراحي قالب: Free Beauty Blog Templates Template Design Workshop, دانلود قالب هاي وبلاگ Template Design Workshop, جزئيات قالب هاي رايگان Template Design Workshop, جستجوي قالب هاي وبلاگ Template Design Workshop, تماس با كارگاه طراحي قالب Template Design Workshop, درباره كارگاه طراحي قالب

pictofxt Farsi Blog Iran Web Hosting

تهیه وب پورتال اختصاصی برنامه نویسی تحت وب