دستت درست سجاد
Printable View
دستت درست سجاد
نقل قول:
خواهش می کنم امید وارم استفاده کرده باشی
تابع های جدید و چند روز دیگه می دهم
عالیه ادامه بده عزیز
تابع 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 .کد:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function CloseWindow Lib "user32" (ByVal hWnd As Long) As boolean
Private Sub Command1_Click()
Dim hwnd as long
hwnd = FindWindow ( vbNullString , “My Computer”)
CloseWindow hwnd
End Sub
تابع 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 استفاده می کنیم .کد:Private Type FLASHWINFO
cbSize As Long
hwnd As Long
dwFlags As Long
uCount As Long
dwTimeout As Long
End Type
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 برگردانده می شود .
مثال :
این مثال و امتحان کنید ببینید چه جوریه .کد:Private Declare Function FlashWindowEx Lib "user32" (pfwi As FLASHWINFO) As Boolean
Private Type FLASHWINFO
cbSize As Long
hwnd As Long
dwFlags As Long
uCount As Long
dwTimeout As Long
End Type
FlashW_Stop = 0
FlashW_Caption = &H1
Flash_Tray = &H2
FlashW_All = (FlashW_Caption or Flash_Tray )
FlashW_Timer = &H4
FlashW_TimerOFG = &HC
Private Sub Command1_Click()
Dim Flash As FLASHWINFO
Flash.cbSize = Len(Flash)
Flash.dwFlags = FlashW_Timer Or (FlashW_All)
Flash.dwTimeout = 0
Flash.hwnd = Me.hwnd
Flash.uCount = 0
FlashWindowEx Flash
End Sub
رفقا من یک وبلاگ آموزشی نوشتم اگه میشه یه سر بهش بزنید
شاید خوشتون بیاد
کد:http://www.3pic-z.mihanblog.com/Cat/6.aspx
کد:http://www.3pic-z.mihanblog.com/Cat/7.aspx
تابع 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 استفاده می کنیم .کد:Public Type WINDOWPLACEMENT
Length As Long
flags As Long
showCmd As Long
ptMinPosition As POINTAPI
ptMaxPosition As POINTAPI
rcNormalPosition As Rect
End Type
Flags : این فیلد وضعیت بازگشت پنجره را مشخص می کند و می تواند شامل دو مقدار زیر باشد :
- WPF_RESTORETOMAXIMIZED : مشخص می کند وقتی پنجره بخواهد به حالت قبلی برگردد به Maximize تغییر حالت می دهد و با مقدار عددی &H2 .
- WPF_SETMINPOSITION : زمانی که پنجره به حالت قبلی برگردد به Minimize تغییر حالت می دهد و با مقدار عددی &H1 .
showCmd : این پارامتر وضعیت پنجره را مشخص می کند و این وضعیت می تواند مقادیری داشته باشد که در تابع بعدی توضیح می دهم .
ptMinPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Minimize برمی گرداند .
ptMaxPosition : این ساختار از نوع PointApi می باشد و در حقیقت مختصات مکانی پنجره را در حالت Maximize برمی گرداند .
rcNormalPosition : این پارامتر از نوع ساختار RECT می باشد و مختصات ابعادی پنجره را بر می گرداند .
ساختار PointApi : احتیاجی به توضیح ندارد
ساختار RECT : این ساختار هم از اسمهاش پیداست احتیاجی به توضیح نیستکد:Public Type POINTAPI
x As Long
y As Long
End Type
خروجی :کد:Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
خروجی این تابع از نوع عددی بوده و اگر پنجره قابل استفاده باشد مقدار 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 برگردانده می شود .
مثال :
رفقا به اندازه کافی فکر کنم توضیح دادم که دیگه این مثال و توضیح ندهم خودتون امتحان کنید .کد:Private Type POINTAPI
x As Long
y As Long
End Type
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type WINDOWPLACEMENT
Length As Long
flags As Long
showCmd As Long
ptMinPosition As POINTAPI
ptMaxPosition As POINTAPI
rcNormalPosition As RECT
End Type
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Dim Wp As WINDOWPLACEMENT
Dim ScrR As RECT, DesR As RECT
Private Sub Command1_Click()
GetWindowPlacement Me.hwnd, Wp
ScrR = Wp.rcNormalPosition
List1.Clear
List1.AddItem "FormLeft : " + CStr(ScrR.Left)
List1.AddItem "FormRight : " + CStr(ScrR.Right)
List1.AddItem "FormTop : " + CStr(ScrR.Top)
List1.AddItem "FormBottom : " + CStr(ScrR.Bottom)
End Sub
Private Sub Command2_Click()
Wp.Length = Len(Wp)
DesR.Left = 260
DesR.Right = 100
DesR.Top = 100
DesR.Bottom = 200
Wp.rcNormalPosition = DesR
Wp.showCmd = 5
SetWindowPlacement Me.hwnd, Wp
End Sub
سجاد جان از زحماتی که میکشی واقعا متشکرم
لطفا ادامه بده
رفقا تا اینجا امید وارم خوشتون اومده باشه
سلام
تابع sendmassage رو هم کامل بگین.
حتما توضیح می دم