..:::تایپک جامع توابع ویژوال بیسیک:::..
اين تابع يک بلوک از حافظه را با مقدار دلخواه پر مي کند
اگر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
Destination : محل شروع بلوک مورد نظر
Length : طول بلوک
Fill : مقداري که بايد در بايت هاي بلوک نوشته شود
کد PHP:
Declare Sub RtlFillMemory Lib "kernel32.dll" (Destination As Any, ByVal Length As Long, ByVal Fill As Byte)
اين تابعيک بلوک از حافظه را به يک بلوک ديگر کپي مي کند
اگر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
pDst : محل شروع بلوک مبدا
pSrc : محل شروع بلوک مقصد
ByteLen : طول بلوک ها
کد PHP:
Declare Sub RtlMoveMemory Lib "kernel32.dll" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
اين تابع يک بلوک از حافظه را با مقدار صفر پر مي کند
اگر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
Destination : محل شروع بلوک
Length : طول بلوک
کد PHP:
Declare Sub RtlZeroMemory Lib "kernel32.dll" (Destination As Any, ByVal Length As Long)
اين تابع يک پيغام اخطار به کاربر نشان مي دهد سپس به اجراي برنامه خاتمه مي دهد. از اين تابع زماني استفاده مي شود که برنامه با خطايي مواجه شود و شما از Unload کردن کامل برنامه مطمئن نباشيد
اگر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
uAction : مقدار اين متغير صفر است
lpMessageText : متني که بايد به کاربر نشان داده شود. اين متن نبايد از 35 کاراکتر بيشتر باشد
Private Declare Sub FatalAppExitA Lib "kernel32.dll" (ByVal uAction As Long, ByVal lpMessageText As String)
اين تابع شماره آخرين خطايي را که در کامپيوتر رخ داده بر مي گرداند
گر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
dwErrCode : اين بافر توسط تابع مقدار دهي مي شود و حاوي شماره خطاي آخرين خطاي سيستمي خواهد بود
کد PHP:
Private Declare Function GetLastError Lib "kernel32.dll" (ByVal dwErrCode As Long) As Long
اين تابع رنگ قسمت هاي مختلف ويندوز را تغيير مي دهد
nChanges : تعداد رنگ هايي که بايد عوض شود
lpSysColor : قسمتي که بايد تغيير رنگ دهد
COLOR_SCROLLBAR : رنگ اسکرول بار
COLOR_BACKGROUND : رنگ پس زمينه ويندوز
COLOR_ACTIVECAPTION : عنوان پنجره فعال
COLOR_INACTIVECAPTION : عنوان پنجره غير فعال
COLOR_MENU : رنگ منو
COLOR_WINDOW : رنگ پنجره
COLOR_WINDOWFRAME : حاشيه پنجره
COLOR_MENUTEXT : نوشته منو
COLOR_WINDOWTEXT : نوشته پنجره
COLOR_CAPTIONTEXT : رنگ نوشته روي پنجره
COLOR_ACTIVEBORDER : لبه پنجره فعال
COLOR_INACTIVEBORDER : لبه پنجره غير فعال
COLOR_APPWORKSPACE : فضاي کاري دسکتاپ
COLOR_HIGHLIGHT : قسمتي از دکمه که در معرض نور قرار دارد
COLOR_HIGHLIGHTTEXT : نوشته انتخاب شده
COLOR_BTNFACE : رنگ دکمه ، پنجره ، فريم و ...
COLOR_BTNSHADOW : قسمتي از دکمه در قسمت سايهء آن قرار دارد
COLOR_GRAYTEXT : نوشته غير فعال
COLOR_BTNTEXT : رنگ نوشته دکمه
COLOR_INACTIVECAPTIONTEXT : رنگ نوشته پنجره غير فعال
COLOR_BTNHIGHLIGHT : رنگ نور ويندوز
lpColorValues : رنگ جديد RGB (از ثابت هاي ColorConstants مثل :vbBlack و vbWhite و غيره نيز مي توانيد استفاده کنيد)
کد PHP:
Private Const COLOR_SCROLLBAR = 0
Private Const COLOR_BACKGROUND = 1
Private Const COLOR_ACTIVECAPTION = 2
Private Const COLOR_INACTIVECAPTION = 3
Private Const COLOR_MENU = 4
Private Const COLOR_WINDOW = 5
Private Const COLOR_WINDOWFRAME = 6
Private Const COLOR_MENUTEXT = 7
Private Const COLOR_WINDOWTEXT = 8
Private Const COLOR_CAPTIONTEXT = 9
Private Const COLOR_ACTIVEBORDER = 10
Private Const COLOR_INACTIVEBORDER = 11
Private Const COLOR_APPWORKSPACE = 12
Private Const COLOR_HIGHLIGHT = 13
Private Const COLOR_HIGHLIGHTTEXT = 14
Private Const COLOR_BTNFACE = 15
Private Const COLOR_BTNSHADOW = 16
Private Const COLOR_GRAYTEXT = 17
Private Const COLOR_BTNTEXT = 18
Private Const COLOR_INACTIVECAPTIONTEXT = 19
Private Const COLOR_BTNHIGHLIGHT = 20
Private Declare Function SetSysColors Lib "user32.dll" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
اين تابع ميزان فضاي خالي موجود در يک درايو را بر مي گرداند
گر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
lpRootPathName : مسير درايو مورد نظر
lpSectorsPerCluster : اين بافر توسط تابع مقدار دهي مي شود و تعداد سکتور هاي هر کلاستر را بر مي گرداند
lpBytesPerSector : اين بافر توسط تابع مقدار دهي مي شود و تعداد بايت هاي هر سکتور را بر مي گرداند
lpNumberOfFreeClusters : اين بافر توسط تابع مقدار دهي مي شود و تعداد کلاستر هاي خالي را بر مي گرداند
lpTotalNumberOfClusters : اين بافر توسط تابع مقدار دهي مي شود و تعداد کل کلاستر ها را بر مي گرداند
کد PHP:
Public Declare Function GetDiskFreeSpaceA Lib "kernel32.dll" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long
آين تابع نوع يک درايو را مشخص مي کند
با توجه به مقدار برگشتي يکي از حالت هاي زير ممکن است پيش آيد:
0 : تابع با خطا مواجه شده است
1 : درايو مورد نظر وجود ندارد
2 : قابل حمل
3 : ثابت
4 : درايو شبکه ( مشترک )
5 : رم ديسک
6 : سي دي رام
nDrive : اين متغير به مسير درايو اشاره مي کند ( براي مثال : \:C )
کد PHP:
Private Declare Function GetDriveType Lib "kernel32.dll" (ByVal nDriev as String) As Long
اين تابع ليستي از درايو هاي My Computer را بر مي گرداند.
اگر مقدار برگشتي تابع را با شماره درايو And کنيد و نتيجه بگيريد؛ آنگاه درايو مورد نظر موجود است. براي مثال اگر جواب GetLogicalDrives Or 1 صفر نباشد آنگاه درايو A موجود است يا اگر جواب GetLogicalDrives Or 3 صفر نباشد آنگاه درايو C موجود است
کد PHP:
Public Declare Function GetLogicalDrives Lib "kernel32.dll" () As Long
اين تابع نام (ليبل) يک پارتيشن را تغيير مي دهد
گر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
lpRootName : مسير درايو مورد نظر (براي مثال "\:C")
lpVolumeName : ليبل جديد درايو
کد PHP:
Private Declare Function SetVolumeLabelA Lib "kernel32.dll" (ByVal lpRootName As String, ByVal lpVolumeName As String) As Long
اين تابع يک کليد رجيستري را مي سازد
اگر تابع کار خود را با موفقيت با پايان برساند مقدار صفر را بر مي گرداند در غير اينصورت يک مقدار غير صفر را که بيانگر شماره خطا است را بر مي گرداند که مي توان با تابع FormatMessageA توضيحات آن را به دست آورد
hKey : نام دستگيره اي که کليد مورد نظر در آن قرار دارد. ( از ثابت هاي مثال استفاده کنيد )
lpSubValue : مسير مورد نظر ( نام دستگيره اصلي را ننويسيد )
Reserved : مقدار اين متغير صفر است
lpClass : مقدار اين آرگومان يک فضاي خالي است ( " " )
dwOptions : اگر مقدار اين متغير
samDesired : نحوه ثبت تغييرات در رجيستري را بيان مي کند
REG_OPTION_NON_VOLATILE : تغييرات را به طور دايم در رجيستري ثبت مي کند
REG_OPTION_VOLATILE : تغييرات را فقط در حافظه موقت ذخيره مي کند و پس از خاموش شدن دستگاه تغييرات از بين مي رود
lpSecurityAttributes : اين نوع را اينگونه مقدار دهي کنيد
lpAttr.nLength = 50
lpAttr.lpSecurityDescriptor = 0
lpAttr.bInheritHandle = True
phkResult : اين بافر توسط تابع مقدار دهي مي شود و شامل يک اشاره گر از کليد مربوطه است که مي تواند مورد استفاده توابع ديگر واقع شود
lpdwDisposition : اين بافر توسط تابع مقدار دهي مي شود و اگر پس از اجراي تابع مقدار آن يک باشد آنگاه کليد مذکور ساخته شده است و اگر مقدار آن دو باشد آنگاه کليد مذکور وجود داشته است و تابع فقط آن را باز کرده است
کد PHP:
Const REG_OPTION_NON_VOLATILE = 0
Const REG_OPTION_VOLATILE = 1
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003
Private Const HKEY_PERFORMANCE_DATA = &H80000004
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
Private Declare Function RegCreateKeyExA Lib "advapi32.dll" ( ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdw
اين تابع يک ورودي را از رجيستري حذف مي کند
اگر تابع کار خود را با موفقيت با پايان برساند مقدار صفر را بر مي گرداند در غير اينصورت يک مقدار غير صفر را که بيانگر شماره خطا است را بر مي گرداند که مي توان با تابع FormatMessageA توضيحات آن را به دست آورد
hKey : يک اشاره گر از يک کليد رجيستري ( اگر اين کليد وجود داشته باشد ان را با تابع RegOpenKeyExA و اگر وجود نداشته باشد و تصميم داشته باشيد خودتان آن را بسازيد آن را با تابع RegCreateKeyExA به دست بياوريد
lpValueName : نام کليدي که بايد حذف شود
کد PHP:
Private Declare Function RegDeleteValueA Lib "advapi32.dll" Alias (ByVal hKey As Long, ByVal lpValueName As String) As Long
اين تابع يک کليد رجيستري را باز مي کند تا بتوان با توابعي مثل RegSetValueEx و RegQueryValueEx و RegDeleteValue بتوان در آن نوشت ؛ از آن خواند يا آن را پاک کرد
اگر تابع کار خود را با موفقيت با پايان برساند مقدار صفر را بر مي گرداند در غير اينصورت يک مقدار غير صفر را که بيانگر شماره خطا است را بر مي گرداند که مي توان با تابع FormatMessageA توضيحات آن را به دست آورد
hKey : نام دستگيره اي که کليد مورد نظر در آن قرار دارد. ( از ثابت هاي مثال استفاده کنيد )
lpSubKey : مسير مورد نظر ( نام دستگيره اصلي را ننويسيد )
uOption : مقدار اين متغير را برابر صفر قرار دهيد
samDesired : مشخص مي کند پس از باز شدن تصميم به انجام چه نوع عملي روي تابع را داريد ( ثابت هاي زير )
KEY_ALL_ACCESS : دسترسي کامل به کليد مورد نظر
KEY_READ : فقط خواندني
KEY_WRITE : فقط نوشتني
phkRsult : اين بافر توسط تابع مقدار دهي مي شود و شامل يک اشاره گر خواهد بود که مي تواند مورد استفاده توابع ديگر واقع شود
کد PHP:
Const READ_CONTROL = &H20000
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL
Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003
Private Const HKEY_PERFORMANCE_DATA = &H80000004
Private Declare Function RegOpenKeyExA Lib "advapi32.dll" (ByVal hKey As Long,ByVal lpSubKey As String,ByVal ulOptions As Long,ByVal samDesired As Long,ByRef phkResult As Long) As Long
اين تابع مقدار يک ورودي رجيستري را بر مي گرداند
اگر تابع کار خود را با موفقيت با پايان برساند مقدار صفر را بر مي گرداند در غير اينصورت يک مقدار غير صفر را که بيانگر شماره خطا است را بر مي گرداند که مي توان با تابع FormatMessageA توضيحات آن را به دست آورد
hKey : يک اشاره گر از يک کليد رجيستري ( اگر اين کليد وجود داشته باشد ان را با تابع RegOpenKeyExA و اگر وجود نداشته باشد و تصميم داشته باشيد خودتان آن را بسازيد آن را با تابع RegCreateKeyExA به دست بياوريد
lpValueName : نام ورودي که مقدار آن بايد توسط تابع برگردانده شود
lpReserved : مقدار اين متغير صفر مي باشد
lpType : نوع داده اي که توسط تابع بر گر دانده مي شود
REG_NONE : تابع نوع خروجي را تعيين مي کند
REG_BINARY : يک ورودي بايناري است
REG_DWORD : يک ورودي دو کلمه اي (Doul Word) است
REG_SZ : يم متغير رشته اي است
REG_EXPANDSZ : يک متغير رشته از نوع قابل بسط است
lpData : اين بافر توسط تابع مقدار دهي مي شود و حاوي مقدار ورودي مورد نظر خواهد بود
lpcbData : طول بافر lpData
کد PHP:
Private Const REG_NONE = 0
Private Const REG_SZ = 1
Private Const REG_EXPANDSZ = 2
Private Const REG_BINARY = 3
Private Const REG_DWORD = 4
Private Declare Function RegQueryValueExA Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
اين تابع يک ودودي رجيستري را ويرايش مي کند و اگر ورودي مورد نظر موجود باشد آنگاه آن را مي سازد
گر تابع کار خود را با موفقيت با پايان برساند مقدار صفر را بر مي گرداند در غير اينصورت يک مقدار غير صفر را که بيانگر شماره خطا است را بر مي گرداند که مي توان با تابع FormatMessageA توضيحات آن را به دست آورد
hKey : يک اشاره گر از کليد مورد نظر
lpValueName : نام ورودي که بايد مقدار دهي شود
Reserved : مقدار اين متغير صفر مي باشد
dwType : اين متغير نوع ورودي را مشخص مي کند
REG_BINARY : يک ورودي بايناري مي سازد
REG_DWORD : يک ورودي دو کلمه اي (Doul Word) مي سازد
REG_SZ : يم متغير رشته اي مي سازد
REG_EXPANDSZ : يک متغير رشته از نوع قابل بسط مي سازد ( در اين نوع ورودي يک ثابت مي تواند جايگزين يک مقدار شود. مثل %windir% که جايگزين فولدر ويندوز مي شود )
lpData : مقدار ورودي است که بايد ايجاد شود
cbData : طول متغير lpData را به بايت بيان مي کند
کد PHP:
Private Const REG_SZ = 1
Private Const REG_EXPANDSZ = 2
Private Const REG_BINARY = 3
Private Const REG_DWORD = 4
Private Declare Function RegSetValueExA Lib "advapi32.dll" ( ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long