ورود

نسخه کامل مشاهده نسخه کامل : آموزش Api در VB



sajjad_3piz
23-07-2008, 07:05
مقدمه


API رو می توان قلب ویندوز فرض کرد . زیرا ما هر کاری که در ویندوز انجام می دهیم در واقع یکی از تابع های َAPI فراخوانی می شود .


برای مثال وقتی شما در محیط برنامه نویسی vb وارد شده و یا هر محیط دیگری پروژه جدیدی را آغاز می کنید و فرم اولیه را روی صفحه آورده و آماده طراحی می شوید در واقع استفاده از Api را آغاز کرده اید در حقیقت در همین لحظه تابع Create Window فراخوانی شده و فرم مزبور در مقابل شما قرار می گیرد .

Api شاید به نظر پیچیده به نظر برسه با بیش از 1000 تابع ولی یک امکان بسیار قوی است .

توابع Api در یکسری فایل ها با پسوند DLL قرار دارند . DLL مخفف ( Dynamic Linked Library ) یا همان کتابخانه پیوندی پویا می باشد که می تواند شامل یکسری کد و داده ( مثل تصویر ، صوت و ... ) باشد .

مهمترین DLL ها kernel32.dll , user32.dll , shell32.dll و ... می باشد .


طریقه استفاده از Api

| Public | Private ] Declare Function name Lib "libname"[Alias "aliasname"](arglist) As type


Declare Function : یعنی شما قصد استفاده از روال تابع Function را دارید
name : نام تابع مورد نظر
libname : نام Dll مورد نظر
aliasname : این قسمت اختیاری است . وقتی استفاده می شود که در زبان برنامه نویسی نام اصلی این تابع وجود داشته باشد .
arglist : این قسمت هم می تونه اختیاری باشه از این قسمت برای فرستادن پارامتر ها استفاده می شه .

البته به چند نوع دیگه هم می شه تعریف کرد .


اگه این تعریف رو دیده باشید حتما می گید خیلی سخته ولی یه راه آسون بهتون می گم که بیشتر API ها در آن موجود است . می توانید از برنامه کاربردی API Text Viewer استفاده نمایید که در پوشه نصب vb موجود است .


جلسه اول

تابع Copy File :

این تابع یک فایل را در محل مورد نظر کپی می کنه .

Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

lpExistingFileName : این پارامتر یک متغیر از نوع String است که مسیر و نام فایل مبدا یعنی فایلی که قرار است کپی شه .
lpNewFileName : این پارامتر یک متغیر از نوع String است که مسیر و نام فایل مقصد را مشخص می کنه .
bFailIfExists : این پارامتر از نوع Boolean ، که اگر این پارامتر True باشه و فایل مقصد قبلا وجود داشته باشه کار تابع نیمه کاره می مونه ولی اگه False باشه فایل قبلی Over Write می شه .

خروجی این تابع اگه Ture یا یک باشه یعنی تابع کار خودشو به درستی انجام داده و اگه False یا صفر باشه کار تابع نیمه تمام مانده است .




تابع Delete File :

با استفاده از این تابع می توان یک فایل را از روی دیسک پاک کرد .

اصل تابع :
Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

پارامتر ها :
lpFileName : این تابع دارای یک پارامتر است که از نوع String می باشد و مسیر و نام فایلی که قرار است از روی دیسک پاک شود را مشخص می کند .

خروجی :
از نوع Boolean بوده و اگر یک یا True باشه یعنی تابع به درستی کار خود را انجام داده است .




تابع Move File :

از این تابع برای انتقال یک فایل از یک مسیر به یک مسیر دیگه استفاده می شه .

اصل تابع :
Public Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

پارامتر ها :
lpExistingFileName : نوع String ، مسیر و نام فایل مبدا
lpNewFileName : نوع String ، مسیر و نام فایل مقصد
خروجی :
نوع Boolean ، یک یا True ---> کار تابع انجام شده است .
صفر یا False ---> کار تابع انجام نشده است .




تابع GetFileAttributes :

این تابع خصوصیات فایل از قبیل Readonly و System و... را برمی گرداند .

اصل تابع :
Public Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

پارامتر ها :
lpFileName : نوع String ، مسیر و نام فایل .

خروجی :
تابع می تواند چند حالت زیر را داشته باشد :
1). FILE_ATTRIBUTE_ARCHIVE : مشخص می کند که فایل یا فهرست خاصیت ARCHIVE دارد و مقدار آن برابر &H20 است
2). FILE_ATTRIBUTE_COMPRESSED : مشخص می کنه که فایل فشرده است و مقدار آن برابر &H800 است .
3). FILE_ATTRIBUTE_DIRECTORY : مشخص می کنه که مسیری که در lpFileName داده شده یک فهرست است و مقدار آن برابر &H10 است .
4). FILE_ATTRIBUTE_HIDDEN : مشخص می کنه که فایل خاصیت HIDDEN دارد و مقدار آن برابر &H2 است .
5). FILE_ATTRIBUTE_NORMAL : مشخص می کنه که فایل خاصیت NORMAL دارد و مقدار آن برابر &H80 است .
6). FILE_ATTRIBUTE_READONLY : مشخص می کنه که فایل خاصیت READONLY دارد و مقدار آن برابر &H1 است .
7). FILE_ATTRIBUTE_SYSTEM : مشخص می کنه که فایل خاصیت SYSTEM دارد و مقدار آن برابر &H4 است .
8). FILE_ATTRIBUTE_TEMPORARY : مشخص می کنه که فایل از نوع Temp است و مقدار آن برابر &H100 است .

گزینه های بالا می توان به صورت ثابت تعریف کرد برای مثال : Const FILE_ATTRIBUTE_HIDDEN = &H2





تابع SetFileAttributes :

این تابع دقیقا برعکس تابع قبلی عمل می کنه یعنی می توان خاصیت های فایل را تغییر داد .

اصل تابع :
Public Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

پارامتر ها :
lpFileName : نوع String ، مسیر و نام فایل .
dwFileAttributes : از نوع Long ، دقیقا همان مقدارهایی خروجی تابع GetFileAttributes است که عبارتند از :

1). FILE_ATTRIBUTE_ARCHIVE : مشخص می کند که فایل یا فهرست خاصیت ARCHIVE دارد و مقدار آن برابر &H20 است
2). FILE_ATTRIBUTE_COMPRESSED : مشخص می کنه که فایل فشرده است و مقدار آن برابر &H800 است .
3). FILE_ATTRIBUTE_DIRECTORY : مشخص می کنه که مسیری که در lpFileName داده شده یک فهرست است و مقدار آن برابر &H10 است .
4). FILE_ATTRIBUTE_HIDDEN : مشخص می کنه که فایل خاصیت HIDDEN دارد و مقدار آن برابر &H2 است .
5). FILE_ATTRIBUTE_NORMAL : مشخص می کنه که فایل خاصیت NORMAL دارد و مقدار آن برابر &H80 است .
6). FILE_ATTRIBUTE_READONLY : مشخص می کنه که فایل خاصیت READONLY دارد و مقدار آن برابر &H1 است .
7). FILE_ATTRIBUTE_SYSTEM : مشخص می کنه که فایل خاصیت SYSTEM دارد و مقدار آن برابر &H4 است .
8). FILE_ATTRIBUTE_TEMPORARY : مشخص می کنه که فایل از نوع Temp است و مقدار آن برابر &H100 است .

sajjad_3piz
23-07-2008, 07:19
به زودی تابع های بیشتری یاد می دم :40:

sajjad_3piz
23-07-2008, 15:40
تابع Open File :

از این تابع برای ساختن ، باز کردن و حذف کردن یک فایل می توان استفاده کرد ولی کار اصلی آن بدست آوردن دستگیره (Handle) یک فایل می باشد .

اصل تابع :
Public Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long

پارامتر ها :
lpFileName : نام و مسیر مورد نظر
lpReOpenBuff : این متغیر به ساختار OFSTRUCT برای درایفت اطلاعات فایل وقتی برای اولین بار باز می شود ، اشاره می کند .
Public Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(OFS_MAXPATHNAME) As Byte
End Type
- cBytes : ندازه ساختار .
- fFixedDisk : اگر این فیلد غیر صفر باشد یعنی فایل از هارد است
- nErrCode : اگر فایل باز نشود شماره خطا را درون خود نگه داری می کند
- Reserved1 و Reserved2 : رزرو شده است
- szPathName : این فیلد شامل مسیر و نام فایل می باشد
Public Const OFS_MAXPATHNAME = 128

wStyle : این پارامتر می تواند مقادیر زیر را داشته باشد :
OF_CREATE : با مقدار عددی &H1000 وقتی استفاده می شود که بخواهیم یک فایل ایجاد کنیم .
OF_DELETE : با مقدار عددی &H200 فایل مورد نظر را Delete می کند
OF_EXIST : با مقدار عددی &H4000 وقتی استفاده می کنیم که بخواهیم بفهمیم که فایل مورد نظر وجود دارد یا خیر اگر وجود داشته باشد مقدار 1 بر فردانده می شود
OF_PARSE : با مقدار عددی &H100 فقط ساختار OFSTRUCT را پر می کند
OF_READ : با مقدار عددی &H0 و فایل را فقط برای عملیات خواند باز می کند
OF_READWRITE : با مقدار عددی &H2 و فایل را برای خواندن و نوشتن باز می کند
OF_REOPEN : با مقدار عددی &H8000 فایل را با اطلاعاتی که در ساختار OFSTRUCT وجود دارد دوباره باز می کند .
OF_WRITE : با مقدار عددی &H1 و فایل را فقط برای نوشتن باز می کند

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





تابع GetFileSize :

این تابع اندازه فایل را به بایت بر می گرداند .

اصل تابع :
Public Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long

پارامتر ها :
hFile : دستگیره فایل می باشد که با استفاده از تابع OpenFile می توان به دست آورد .
lpFileSizeHigh : در vb برابر صفر قرار می دهیم ( این پارامتر از نوع اشاره گر است )

خروجی :
اندازه فایل مورد نظر برگردانده می شود





تابع FindFirstFile :

این تابع برای پیدا کردن یک فایل با مشخصاتی که به آن داده می شه می گردد .

اصل تابع :
Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long

پارامتر ها :
lpFileName : این پارامتر از نوع String بوده و نام فایل مورد جستجو یا شرایط مورد نظر برای فایل را شامل می شه .
نام فایل : "c:\vb.exe"
شرایط پسوندی : "c:\*.exe"
lpFindFileData : این متغیر اشاره می کند به ساختار WIN32_FIND_DATA و هر فایلی که توسط تابع پیدا شود اطلاعات آن در این ساختار ذخیره می شود .
Public Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
dwFileAttributes : خصوصیات فایل پیدا شده را مشخص می کند . خصوصیاتی که در توابع GetFileAttributes و SetFileAttributes گفته شد .
ftCreationTime : این فیلد از نوع FILETIME می باشد و زمان ساخت فایل پیدا شده را مشخص می کنه .
ftLastAccessTime : این فیلد از نوع FILETIME می باشد و زمان آخرین دسترسی به فایل پیدا شده را مشخص می کنه .
ftLastWriteTime : این فیلد از نوع FILETIME می باشد و زمان آخرین باری که فایل پیدا شده نوشته شده را مشخص می کنه .
nFileSizeHigh : بالاترین اندازه فایل را به بایت را بر می گرداند .
nFileSizeLow : پایین ترین اندازه فایل را به بایت بر می گرداند .
cFileName : این پارامتر نام فایل پیدا شده را بر می گرداند . و MAX_PATH برابر 255 است .
cAlternate : این پارامتر مثل پارامتر بالایی با تفاوت اینکه فقط 8 کاراکتر نام فایل و 3 کاراکتر پسوند فایل می باشد .

خروجی :
اگر این تابع کار خود را به خوبی به اتمام برساند دستگیره یک فایل را بر می گرداند اگر تابع کار خود را به خوبی انجام ندهد مقدار 1- را بر می گرداند .

ساختار FILETIME :
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
توضیح خاصی ندارد ولی شاید بعدا بگم .





تابع FindNextFile :
این تابع فایل دیگری را با خصوصیاتی که در تابع FindFirstFile تعریف شده را پیدا می کنه .

اصل تابع :
Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long

پارامتر ها :
hFindFile : این پارامتر از نوع عددی است و دستگیره فایلی را که توسط تابع پیدا شده می باشد .
lpFindFileData : این پارامتر قبلا در تابع FindFirstFile گفته شده است .

خروجی :
اگر تابع کار خود را به خوبی انجام دهد مقدار یک یا True بر گردانده می شود .

sajjad_3piz
24-07-2008, 06:22
تابع FindClose :

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

اصل تابع :
Public Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long

پارامتر ها :
hFindFile : این پارامتر از نوع عددی و دستگیره فایلی می باشد که با الگوی تابع FindFirstFile پیدا شده است .

خروجی :
اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .





تابع CreateDirectory :

از این تابع برای ساختن یک فهرست استفاده می شود .

اصل تابع :
Public Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

پارامتر ها :
lpPathName : این پارامتر از نوع رشته می باشد و مسیر و نام فهرست جدید را مشخص می کند .
lpSecurityAttributes : این پارامتر از نوع ساختار SECURITY_ATTRIBUTES می باشد و برای تعین خصوصیات حفاظت فهرست به کار می رود .

Public Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type

nLength : اندازه ساختار می باشد و تابع Len در VB مشخص می شود .
lpSecurityDescriptor :
bInheritHandle :

خروجی :
اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .






تابع RemoveDirectory :

از این تابع برای حذف یک فهرست استفاده می شود .

اصل تابع :
Public Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long

پارامتر ها :
lpPathName : این پارامتر از نوع رشته می باشد و مسیر و نام فهرستی که قرار است پاک شود .

خروجی :
اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .





تابع GetCurrentDirectory:

این تابع فهرست پوشه فعال را مشخص می کند .

اصل تابع :
Public Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectory" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

پارامتر ها :
nBufferLength : این پارامتر از نوع عدد بوده و طول فهرست فعال را مشخص می کند .
lpBuffer : از نوع رشته بوده و فهرست فعال درون این متغیر قرار می گیرد .

مثال :
dim s as string
s= string(255,0)
GetCurrentDirectory 255,s
msgbox s





تابع SetCurrentDirectory:

این تابع دقیقا بر عکس تابع Get CurrentDirectory است یعنی می توان مسیر یا فهرست فعال سیستم را تعیین کرد

اصل تابع :
Public Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long

پارامتر ها :
lpPathName : این پارامتر از نوع String و مسیر یا فهرستی که باید فهرست فعال سیستم شود را مشخص می کند

خروجی :
اگر تابع کار خود را به درستی انجام دهد مقدار یک یا True بر گردانده می شود .

sajjad_3piz
27-07-2008, 07:29
تابع GetDiskFreeSpaceEx :

این تابع اطلاعاتی درباره حجم درایو ها می دهد ( فضای خالی و فضای کل )

اصل تابع :
Public Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal IpDirectoryName As String, IpFreeByteAvailableToCaller As Currency, IpTotalNumberOfBytes As Currency, IpTotalNumberOfFreeBytes As Currency) As Long

پارامتر ها :
IpDirectoryName : این پارامتر از نوع رشته بوده و نام دیسک درایو مورد نظر را مشخص می کند .
IpFreeByteAvailableToCaller : این پارامتر از نوع عددی بوده و مقدار فضای خالی قابل استفاده دیسک را به Byte بر می گرداند .
IpTotalNumberOfBytes : این پارامتر از نوع عددی بوده و فضای کل دیسک درایو را به Byte بر می گرداند .
IpTotalNumberOfFreeBytes : این پارامتر از نوع عددی بوده و فضای خالی دیسک درایو را به Byte بر می گرداند .

خروجی :
اگه خروجی این تابع برابر 1 یا True باشه -- > تابع کارش و به درستی انجام داده .





تابع GetDriveType :

این تابع نوع هر یک از دیسک درایو های سیستم را مشخص می کند انواعی از قبیل فلاپی ، سی دی و دیسک سخت .

اصل تابع :
Public Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long


پارامتر ها :
lnDrive : این پارامتر از نوع رشته بوده و درایو مورد نظر را مشخص می کند

خروجی :
خروجی این تابع مقادیر زیر می باشد :
DRIVE_REMOVABLE : برابر مقدار 2 می باشد و مشخص می کند دیسک درایو مورد نظر از نوع قابل حمل است (Floppy drive )
DRIVE_FIXED : برابر مقدار 3 بوده و مشخص می کند که درایو مورد نظر از نوع ثابت (Hard disk) است .
DRIVE_REMOTE : برابر مقدار 4 بوده و مشخص می کنه که درایو مورد نظر از نوع درایو شبکه است .
DRIVE_CDROM : برابر مقدار 5 مشخص می کنه که درایو مورد نظر از نوع CD-Drive است .
DRIVE_RAMDISK : برابر مقدار 6 و مشخص می کنه که درایو مورد نظر از نوع درایو های ساخته شده در Ram می باشد .





تابع GetLogicalDriveStrings :

این تابع دیسک درایو های موجود در سیستم را بر می گرداند .

اصل تابع :
Public Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long


پارامتر ها :
nBufferLength : این پارامتر از نوع عددی و مقدار فضای لازم را برای ذخیره سازی نام دیسک درایو مشخص می کند .
lpBuffer : این پارامتر از نوع رشته بوده و نام دیسک درایو در این پارامتر قرار می گیرد .

خروجی :
اگر این تابع کار خود را به خوبی انجام دهد تعداد کارکتر هایی را که در رشته کپی شده است را بر می گرداند و اگر تابع کار خود را ناقص انجام دهد مقدار صفر بر می گردد.

مثال :

Dim StrSave As String
Dim ret As Long
Dim i As Byte
Dim Drive As String

StrSave = String(255, Chr$(0))
ret = GetLogicalDriveStrings(255, StrSave)
For i = 1 To 100
If Left$(StrSave, InStr(1, StrSave, Chr$(0))) = Chr$(0) Then Exit For
Drive = Left$(StrSave, InStr(1, StrSave, Chr$(0)) - 1)
StrSave = Right$(StrSave, Len(StrSave) - InStr(1, StrSave, Chr$(0)))
Next i





تابع GetVolumeInformation :

این تابع اطلاعات مربوط به یک دیسک درایو از قبیل نوع سیستم ، بر چسب ، شماره سریال و ... را بر می گرداند .

اصل تابع :
Public Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

پارامتر ها :
lpRootPathName : این پارامتر از نوع رشته بوده و نام درایو مورد نظر را مشخص می کند .
lpVolumeNameBuffer : این متغیر از نوع رشته بوده و بر چسب (Label ) دیسک درایو مورد نظر را بر می گرداند .
nVolumeNameSize : این متغیر از نوع عددی بوده و فضای لازم برای متغیری که شامل برچسب می باشد را مشخص می کند .
lpVolumeSerialNumber : این متغیر اشره گری به یک عددی می باشد که شماره سریال دیسک درایو می باشد .
lpMaximumComponentLength : این متغیر نیز از نوع عددی می باشد و حداکثر طول فایل سیستم را بر می گرداند .
lpFileSystemFlags : این متغیر عددی بوده و من چیز خاصی ازش نمی دونم .
lpFileSystemNameBuffer : این پارامتر از نوع رشته بوده و نام فایل سیستم را بر می گردونه .
nFileSystemNameSize : این پارامتر از نوع عددی بوده و مقدار لازم برای متغیر نام فایل سیستم را مشخص می کند .

خروجی :
اگه خورجی 1 یا True باشه -- > تابع کارش و به درستی انجام داده .





تابع SetVolumeLabel :

از این تابع برای تعیین بر چسب ( Label ) یک دیسک درایو استفاده می شود .

اصل تابع :
Public Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long

پارامتر ها :
lpRootPathName : این پارامتر از نوع رشته بوده و نام دیسک درایو مورد نظر را مشخص می کند .
lpVolumeName : این پارامتر از نوع رشته بوده و برچسب جدید دیسک گردان مورد نظر را مشخص می کند .

خروجی :
اگه خورجی 1 یا True باشه -- > تابع کارش و به درستی انجام داده .

sajjad_3piz
27-07-2008, 07:37
بچه ها نظر بدبد دیگه

Payman_62
27-07-2008, 16:04
سلام.
ممنون از توضیحاتت. ادامه بده.

ژولی لسکو
28-07-2008, 17:04
سلام دوست عزیز
ممنون بابت زحمتی که کشیدی
اگه ممکنه در مورد **** هم مطلب بذار
ممنون

ویرایش:
منم فانکشن پست شماره 9 رو میخام
اگه لطف کنین بذارین
مشکل قبلیم حل شد
ممنون

H A M A S
28-07-2008, 17:44
یه تابع api هست که پوسته برنامه رو یعنی دکمه ها و... رو تبدیل به پوسته ویندوز xp میکنه اگر ممکنه اونو برامون بذار
ممنون

sajjad_3piz
29-07-2008, 19:42
دمتون گرم بچه ها که نظر دادید

خوشحال شدم

punisher 007
30-07-2008, 14:45
دستت درست سجاد

sajjad_3piz
31-07-2008, 07:47
دستت درست سجاد


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

تابع های جدید و چند روز دیگه می دهم

بهرام_62
03-08-2008, 14:29
عالیه ادامه بده عزیز

sajjad_3piz
06-08-2008, 06:37
تابع FindWindow :

از این تابع برای یافتن دستگیره (Handle) ، پنجره استفاده می شود که عنوان (caption) آن و یا نام class آن را می دانیم .
اصل تابع :
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

پارامتر ها :
lpClassName : این پارامتر از نوع رشته بوده و نام کلاس یک پنجره را مشخص می کند .
lpWindowName : این پارامتر نیز از نوع رشته بوده و عنوان یک پنجره را مشخص می کند .

خروجی :
خروجی این تابع از نوع عددی بوده و شامل دستگیره پنجره مورد نظر می باشد اگر تابع کارش ناقص انجام شود مقدار صفر برمی گردد .

به عنوان مثال پنجره My computer ویندوز مشخصاتی به صورت زیر دارد :
IpclassName = “CabinetWClass”
IpWindowName = “My Computer”
لازم ه که بدونید که نام کلاس(class) یک پنجره را با استفاده از تابع GetClassName بدست آورد که در ادامه توضیح می دهم .


تابع CloseWindow :

از این تابع برخلاف نامی که داره برای کمینه کردن (Minimize) پنجره استفاده می شود .
اصل تابع :
Public Declare Function CloseWindow Lib "user32" (ByVal hWnd As Long) As boolean

پارامتر ها :
hWnd: این پارامتر از نوع عددی بوده و شامل دسگیره پنجره ای می باشد که قرار است Minimize شود .
خروجی :
خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود .


تابع DestroyWindow :

از این تابع برای خارج کردن یک پنجره از حافظه مورد استفاده قرار می گیرد .
اصل تابع :
Public Declare Function DestroyWindow Lib "user32" (ByVal hWnd As Long) As boolean

پارامتر ها :
hWnd: این پارامتر از نوع عددی بوده و شامل دسگیره پنجره ای می باشد که قرار است از حافظه خارج شود .
خروجی :
خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود .

مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در این مثال دستگیره پنجره My Computer توسط تابع FindWindow پیدا می شه بعد اون پنجره رو کمینه می کنه به وسیله تابع CloseWindow .


تابع FlashWindow :

این تابع باعث می شود که قسمت Header پنجره مورد نظر شروع به چشمک زدن کند . اگر در حالت Minimize باشد ، پنجره در حالت Minimize و در TaskBar چشمک می زند .
اصل تابع :
Public Declare Function FlashWindow Lib "user32" (ByVal hWnd As Long, ByVal bInvert As Long) As Boolean

پارامتر ها :
hWnd : این پارامتر از نوع عددی بوده و شامل دسگیره پنجره ای می باشد که قرار است چشمک بزند .
bInvert : این پارامتر از نوع عددی بوده و اگر برابر با یک باشد چشمک می زند و اگر صفر باشد پنجره چشمک نمی زند .
خروجی :
خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود .
توجه : برای استفاده از این تابع باید آن را در داخل یک تایمر قرار دهید .

تابع FlashWindowEx :

کار این تابع دقیقا مثل FlashWindow است با این تفاوت که از یک ساختار برای این کار استفاده می کند و احتیاجی به تایمر ندارد .
اصل تابع :
Private Declare Function FlashWindowEx Lib "user32" (pfwi As FLASHWINFO) As Boolean
پارامتر ها :
pfwi : این پارامتر از نوع ساختار FLASHWINFO بوده که مشخصات چمک زدن را مشخص می کند
ساختار FLASHWINFO


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
cbSize : این پارامتر از نوع عددی بوده و شامل اندازه ساختار در حافظه می باشد برای این کار در VB از تابع Len استفاده می کنیم .
Hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره می باشد که باید چشمک بزند .
dwFlags : این پارامتر وضعیت چشمک زدن را مشخص می کند این پارامتر می تواند شامل یکی از موارد زیر باشد :
FlashW_Stop : این Flagپنجره را به حالت اول بر می گرداند و با مقدار عددی صفر .
FlashW_Caption : این Flag قسمت عنوان پنجره را چشمک زن می کند و با مقدار عددی &H1 .
Flash_Tray : این Flag باعث می شه وقتی پنجره در حالت Minimize می باشد چشمک بزند و با مقدار عددی &H2 .
FlashW_All : این پارامتر شامل هر دو Flag ، Flash_Tray و FlashW_Caption می باشد .
FlashW_Timer : این Flag باعث می شه که پنجره شروع به چشمک زدن کند تا زمانی که Flag ، FlashW_Stop فراخوانی بشه و با مقدار عددی &H4 .
FlashW_TimerOFG : این Flag باعث می شود که پنجره شروع به چشمک زدن کند تا زمانی که روی پنجره های دیگر قرار گیرد و با مقدار عددی &HC .
ucount : این پارامتر از نوع عددی بوده و تعداد دفعات چشمک زدن را مشخص می کند . اگر این پارامتر برابر صفر قرار گیرد تا زمانی که پنجره بسته نشود و یا Flag خاصی مورد استفاده نگیرد چشمک می زند .
dwTimeout : این پارامتر از نوع عددی بوده و مدت زمان فاصله میانی هر چشمک را به میلی ثانیه مشخص می کند . اگر برابر صفر قرار بگیرد از مقدار پیش فرض که برابر 500 می باشد استفاده می شود .
خروجی :
خروجی این تابع بوده و اگر تابع کارش را به درستی انجام دهد مقدار True برگردانده می شود در غیر این صورت مقدار false برگردانده می شود .

مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این مثال و امتحان کنید ببینید چه جوریه .

sajjad_3piz
06-08-2008, 07:20
رفقا من یک وبلاگ آموزشی نوشتم اگه میشه یه سر بهش بزنید
شاید خوشتون بیاد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

sajjad_3piz
07-08-2008, 06:15
تابع EnableWindow :
این تابع یک پنجره را قابل استفاده و یا غیر قابل استفاده می کند .
اصل تابع :
Public Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
پارامتر ها :
Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که باید قابل استفاده یا غیر استفاده شود .
fEnable : این پارامتر نیز از نوع عددی بوده و اگر برابر 1 قرار بگیرد پنجره قابل استفاده و اگر برابر 0 باشد پنجره غیر قابل استفاده می شود .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به درستی انجام بدهد مقدار یک و در غیر این صورت مقدار 0 بر گردانده می شود .


تابع IsWindowEnable :
این تابع قابل اسفاده بودن یک پنجره را آزمایش می کند .
اصل تابع :
Public Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal hwnd As Long) As Long
پارامتر ها :
Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که باید مورد آزمایش قرار بگیرد .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .


تابع GetWindowPlacement :
این تابع وضعیت نمایش پنجره از قبیل Normal و Minimize و Maximize و همچنین مکان و ابعاد پنجره را در هر وضعیت را بر می گرداند .
اصل تابع :
Public Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
پارامتر ها :
Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای می باشد که می خواهیم وضعیت و مکان و ابعاد آن را بدست آوریم .
Lpwndpl : این پارامتر در حقیقت یک اشاره گر به ساختار WINDOWPLACEMENT می باشد که اطلاعات مربوط به پنجره در آن ذخیره می شود .
ساختار WINDOWPLACEMENT :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Length : این فیلد از نوع عددی بوده و شامل اندازه ساختار در حافظه می باشد در vb از تابع Len استفاده می کنیم .
Flags : این فیلد وضعیت بازگشت پنجره را مشخص می کند و می تواند شامل دو مقدار زیر باشد :
- WPF_RESTORETOMAXIMIZED : مشخص می کند وقتی پنجره بخواهد به حالت قبلی برگردد به Maximize تغییر حالت می دهد و با مقدار عددی &H2 .
- WPF_SETMINPOSITION : زمانی که پنجره به حالت قبلی برگردد به Minimize تغییر حالت می دهد و با مقدار عددی &H1 .
showCmd : این پارامتر وضعیت پنجره را مشخص می کند و این وضعیت می تواند مقادیری داشته باشد که در تابع بعدی توضیح می دهم .
ptMinPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Minimize برمی گرداند .
ptMaxPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Maximize برمی گرداند .
rcNormalPosition : این پارامتر از نوع ساختار RECT می باشد و مختصات ابعادی پنجره را بر می گرداند .
ساختار PointApi : احتیاجی به توضیح ندارد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ساختار RECT : این ساختار هم از اسمهاش پیداست احتیاجی به توضیح نیست

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خروجی :
خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .


تابع ShowWindow :
این تابع وضعیت نمایش یک پنجره را مشخص می کند .
اصل تابع :
Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
پارامتر ها :
Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای را مشخص می کند که قرار است وضعیت آن را مشخص کنیم .
nCmdShow : این پارامتر نیز از نوع عددی بوده و مشخص کننده وضعیت پنجره مورد نظر می باشد این پارامتر می تواند مقادیر زیر را دریافت کند :
- SW_HIDE : این Flag پنجره را از درون Taskbar ویندوز محو می کنه و سایر پنجره ها را مشخص می کند و با مقدار عددی 0 .
- SW_MAXIMIZE : این Flag پنجره را به حالت Maximize تغییر و ضعیت می دهد و با مقدار عددی 3 .
- SW_MINIMIZE : این Flag پنجره را به حالت Minimize تغییر وضعیت می دهد این Flag دقیقا برابر تابع CloseWindow است و با مقدار عددی 6 .
- SW_RESTORE : این Flag پنجره را از وضعیت Minimize یا Maximize به وضعیت Normal بر می گرداند و با مقدار عددی 9 .
- SW_SHOW : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد برعکس Flag ، SW_HIDW و با مقدار عددی 5 .
- SW_SHOWDEFAULT : این Flag پنجره را در حالت پیش فرض خو نمایش می دهد و با مقدار عددی 10 .
- SW_SHOWMAXIMIZED : این Flag پنجره را در وضعیت Maximize نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 3 .
- SW_SHOWMINIMIZED : این Flag پنجره را در وضعیت Minimize نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 2 .
- SW_SHOWNORMAL : این Flag پنجره را در وضعیت Normal نمایش می دهد و پنجره را فعال می کند و با مقدار عددی 1 .
- SW_SHOWMINNOACTIVE : این Flag پنجره را در وضعیت Minimize نمایش می دهد و پنجره را فعال نمی کند و با مقدار عددی 7 .
- SW_SHOWNOACTIVATE : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد ولی پنجره را فعال نمی کند و با مقدار عددی 4 .
- SW_SHOWNA : این Flag پنجره را در وضعیت صحیح خود نمایش می دهد ولی پنجره را فعال نمی کند و اگر فعال باشد فعال و اگر فعال نباشد غیرفعال نمایش می دهد و با مقدار عددی 8 .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به درستی انجام بدهد مقدار یک و در غیر این صورت مقدار 0 بر گردانده می شود .


تابع SetWindowPlacement :
کار این تابع دقیقا بر عکس تابع GetWindowPlacement عمل می کند .
اصل تابع :
Public Declare Function SetWindowPlacement Lib "user32" Alias "SetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
پارامتر ها :
Hwnd : این پارامتر از نوع عددی بوده و دستگیره پنجره ای می باشد که می خواهیم وضعیت و مکان و ابعاد آن را تغییر بدهیم .
Lpwndpl : این پارامتر در حقیقت یک اشاره گر به ساختار WINDOWPLACEMENT می باشد که متغییر های آن باید پیش از فراخوانی تابع مقدار دهی شده باشد .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 1 بر گردانده می شود و در غیر این صورت مقدار 0 برگردانده می شود .

مثال :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
رفقا به اندازه کافی فکر کنم توضیح دادم که دیگه این مثال و توضیح ندهم خودتون امتحان کنید .

babak_beiknejat
14-08-2008, 23:46
سجاد جان از زحماتی که میکشی واقعا متشکرم
لطفا ادامه بده

sajjad_3piz
22-08-2008, 20:29
رفقا تا اینجا امید وارم خوشتون اومده باشه

فاطمه وطن دوست
24-08-2008, 12:34
سلام

تابع sendmassage رو هم کامل بگین.

sajjad_3piz
25-08-2008, 07:03
حتما توضیح می دم

sajjad_3piz
26-08-2008, 18:06
تابع GetActiveWindow :
این تابع دستگیره پنجره فعال را بر می گرداند .
اصل تابع :
Public Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
پارامتر ها :
این تابع هیچ پارامتری ندارد .
خروجی :
خروجی این تابع از نوع عددی بوده و شامل دستگیره پنجره فعال می باشد . اگر تابع کارش را ناقص انجام بدهد مقدار صفر یا Null برگردانده می شود .


تابع SetActiveWindow :
کار این تابع دقیقا بر عکس تابع GetActiveWindow می باشد . این تابع پنجره فعال را مشخص می کند . توجه داشته باشید که فعال شدن به معنی Fouus شدن روی آن پنجره نیست .
اصل تابع :
Public Declare Function SetActiveWindow Lib "user32" Alias "SetActiveWindow" (ByVal hwnd As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم فعال شود .
خروجی :
اگر مقدار خروجی برابر یک باشد تابع کار خود را به خوبی انجام داده است و اگر به درستی انجام ندهد مقدار صفر برگردانده می شود .


تابع GetWindowText :
کار این تابع از جهتی برعکس تابع FindWindow می باشد از این رو که در تابع FindWindow ما عنوان پنجره مورد نظر را در اختیار داشتیم و دستگیره آن را نیاز داشتیم ولی این تابع دستگیره در اختیار است و می خواهیم عنوان پنجره را بدست آوریم .
اصل تابع :
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم عنوان (Caption) آن را بدست آوریم .
lpString : این پارامتر از نوع رشته بوده و عنوان پنجره را در خود ذخیره می کند .
cch : این پارامتر از نوع عددی بوده و تعداد کاراکترهایی را که از عنوان باید نمایش داده شوند مشخص می کند .
خروجی :
اگر تابع کار خود را به خوبی انجام دهد مقدار خروجی تابع برابر با تعداد کاراکتر هایی می باشد که در متغیر IpString قرار گرفته است و اگر تابع کارش را ناقص انجام دهد مقدار صفر را بر می گرداند .


تابع GetWindowTextLength :
این تابع طول رشته عنوان یک پنجره را برمی گرداند .
اصل تابع :
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم طول رشته آن پنجره را بدست آوریم .
خروجی :
اگر تابع کار خود را به خوبی انجام دهد مقدار خروجی تابع برابر با تعداد کاراکتر های عنوان پنجره مورد نظر می باشد و اگر تابع کارش را ناقص انجام دهد مقدار صفر را بر می گرداند .


تابع SetWindowText :
کار این تابع دقیقا برعکس تابع GetWindowText می باشد با استفاده از این تابع می توان عنوان یک پنجره را تغییر داد .
اصل تابع :
Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم عنوان آن را تغییر دهیم .
lpString : این پارامتر از نوع رشته بوده و شامل عنوان جدید پنجره مورد نظر می باشد .
نکته : این تابع دقیقا از پیغام WM_SETTEXT استفاده می کند طریقه استفاده از این پیغام ها در قسمت Message ها توضیح خواهم داد . مثل تابع SendMessage که دوستان هم در خواست کردند .
خروجی :
اگر تابع کار خود را به خوبی انجام دهد مقدار خروجی تابع برابر یک می باشد و اگر تابع کارش را ناقص انجام دهد مقدار صفر را بر می گرداند .

مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
رفقا در این مثال به دو CommandButton یا همون دکمه خودمون و یک TextBox احتیاج داریم .
در دکمه اولی یک متغیر رشته ای به نام Wn معرفی کردم و بعد در خط دوم به متغیر ، 255 تا فضای خالی کاراکتر دادم ( چون نمی دونیم که چند حرفه ) در خط سوم با تابع GetWindowText می خواهم عنوان پنجره فعالی که با تابع GetActiveWindow بدست می آید را در متغیر Wn قرار داده که با استفاده از تابع GetWindowTextLength تعداد کاراکتر های عنوان پنجره را بدست آورده و در متغیر Wn تاثیر می گذارد و بعد در TextBox چاپ می شود .
در دکمه دومی یک متغیر رشته ای تعریف کردم و بعد به متغیر مقدار دادم و با استفاده از تابع SetWindowText عنوان پنجره فعال را تغییر می دهم .

sepandsystem
31-08-2008, 13:33
با سلام می خواستم بدونم که می تونم دکمه های برنامه ای کاربردی رو که گرافیکی هم هست وارد ویژوال بیسیک کنم یا نه؟
اگر میتونم با چه دستوری فراخوانیش کنم چون می خوام از طریق توابع Api واردشون کنم.

sajjad_3piz
31-08-2008, 16:19
سلام رفیق

من که تا حالا ندیدم که کسی این کارو بکنه

من فقط از طریق منوی Project و انتخاب گزینه ی Components می تونم دکمه ها رو وارد vb کنم .

sajjad_3piz
30-09-2008, 08:09
تابع GetWindow :
این تابع دستگیره یک پنجره را با استفاده از دستگیره پنجره های دیگر بر می گرداند . از این قبیل می توان به پنجره بعدی پنجره مورد نظر ، پنجره قبلی پنجره مورد نظر و از این موارد اشاره کرد ( به طور ساده تر بگم درون هر پنجره می تواند TextBox و CommandButton و ... موجود باشد اگر شما بخواهید دستگیره این اجزا را بدست آورید باید از دستگیره پنجره اصلی استفاده کنید که این تابع انجام می دهد ) .
اصل تابع :
Public Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم دستگیره پنجره های وابسته به آن را بیابیم .
wCmd : این پارامتر از نوع عددی بوده و مشخص کننده پنجره ای می باشد که می خواهیم دستگیره آن را بیابیم . این پارامتر می تواند مقادیر زیر را داشته باشد :
- GW_CHILD : این flag پنجره child یا به عبارتی پنجره درون پنجره مورد نظر را به تابع بر می گرداند با مقدار عددی 5 .
- GW_HWNDFIRST : این flag دستگیره بالاترین پنجره موجود در Task ویندوز را به تابع بر می گرداند با مقدار عددی 0 .
- GW_HWNDNEXT : این flag دستگیره اولین پنجره بعد از پنجره مورد نظر را به تابع بر می گرداند و با مقدار عددی 2 .
- GW_HWNDPREV : این flag دستگیره اولین پنجره قبل از پنجره مورد نظر را به تابع بر می گرداند و با مقدار عددی 3 .
- GW_OWNER : این flag برعکس flag ، GW_CHILD می باشد و دستگیره پنجره مالک (Owner) پنجره مورد نظر به تابع بر می گرداند و با مقدار عددی 4 .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به خوبی انجام دهد دستگیره پنجره مورد نظر را بر می گرداند و اگر تابع کارش را ناقص انجام بدهد مقدار صفر یا Null برگردانده می شود .

مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تابع GetNextWindow :
این تابع تقریبا مانند تابع GetWindow با این تفاوت که فقط از دو Flag تابع GetWindow می تواند استفاده کند .
اصل تابع :
Public Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم دستگیره پنجره های بعدی و قبلی آن را بدست آوریم .
wCmd : این پارامتر از نوع عددی بوده و مشخص کننده پنجره ای می باشد که می خواهیم دستگیره آن را بیابیم ( قبلی یا بعدی ) این پارامتر می تواند مقادیر زیر را داشته باشد :
- GW_HWNDNEXT : این flag دستگیره پنجره بعدی پنجره مورد نظر را به تابع بر می گرداند با مقدار عددی 2 .
- GW_HWNDPREV : این flag دستگیره پنجره قبلی پنجره مورد نظر را به تابع بر می گرداند و با مقدار عددی 3 .
نکته : منظور از پنجره بعدی پنجره ای است که در لیست پنجره های ویندوز درون حافظه در مکان پایین تری از پنجره مورد نظر ما قرار دارد و منظور از پنجره قبلی ، پنجره ای است که در مکان بالاتری از پنجره مورد نظر ما قرار دارد .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر تابع کار خود را به خوبی انجام دهد دستگیره پنجره مورد نظر را بر می گرداند و اگر تابع کارش را ناقص انجام بدهد مقدار صفر یا Null برگردانده می شود .

مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تابع IsWindow :
این تابع مشخص می کنه پنجره ای که دستگیرش برای آن مشخص شده وجود داره یا نه ؟
اصل تابع :
Private Declare Function IsWindow Lib "user32" Alias "IsWindow" (ByVal hwnd As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم بدانیم وجود داره یا نه .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر پنجره وجود داشته باشد مقدار 1 و اگر وجود نداشته باشد مقدار 0 بر گردانده می شود .


تابع IsWindowVisible :
این تابع وضعیت نمایی یک پنجره را بر می گرداند .
اصل تابع :
Private Declare Function IsWindowVisible Lib "user32" Alias "IsWindowVisible" (ByVal hwnd As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم وضعیت نمایی آن را بدانیم .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر پنجره قابل دیدن باشد (Visible) ، مقدار یک و در غیر این صورت مقدار صفر برگردانده می شود .

تابع IsIconic :
این تابع مشخص می کند که یک پنجره در حالت Minimize قرار دارد یا نه .
اصل تابع :
Private Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long) As Long
پارامتر ها :
hwnd : این پارامتر از نوع عددی بوده و شامل دستگیره پنجره ای می باشد که می خواهیم وضعیت آن را چک کنیم .
خروجی :
خروجی این تابع از نوع عددی بوده و اگر پنجره مورد نظر در حالت Minimize باشد ، مقدار یک و در غیر این صورت مقدار صفر برگردانده می شود .

مثال :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

atifazi
30-09-2008, 11:35
سلام دوستان . چگونه ميشه مسير فعال را از ريق كد وي بي پيدا كرد . مثلا شما در مسير c:\my book قرار داريد. اين مسير را از طريق كد ويبي چگونه پيدا كنيم . يعني هرجا رفتيم اون مسير را ويبي چاپ كنه . متشكرم

sajjad_3piz
02-10-2008, 07:43
سلام فقط با تابع send message میشه این کارو کرد . خودم اتفاقا کد شو نوشتم برای یه کرم .

برات میذارم رو وب .

sajjad_3piz
02-10-2008, 08:24
حتما برات پیداش می کنم

V i r u s e r
03-10-2008, 00:19
سلام
در مورد Regqueryvalue و دیگر توابع رجیستری توضیح بدبد که دیگه عالی میشه

mrbm_2007
15-12-2008, 13:29
سلام sajjad_3piz ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]).
چطور میشه پنجره فعال رو توی ویندوز مشخص کرد.
البته با توابع api .با Ge activewindow نشد،0 بر می گردونه.
با Getwwindow میشه پنجره ای که بالای همه پنجره هاست رو گرفت ولی ممکنه فعال نباشه(focus روش نباشه).
Thank u.

rouzbeh_ziafati
01-05-2009, 00:20
در یک فروم خارجی سوال کردم و بهم این لینک رو دادند . اما اصلا نمی دونم این توابع چطور کار می کنند و کجا باید ازشون استفاده کرد ؟!
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

قصدم اینکه بفهمم چندبار از گزارش print گرفته میشود و تنها راه اینطور که معلومه استفاده از API هاست .

چطور میشه تشخیص داد که در گزارش گیری از طریق دیتا ریپورت Datareport کاربر از گزارش پرینت گرفته ؟