تابع 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 برگردانده می شود .

 

مثال :

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

 

Private Const GW_HWNDNEXT = 2

 

Private Sub Command1_Click()

Dim hwnd As Long

Dim wn As String, WnN As String

wn = Space(255)

WnN = Space(255)

hwnd = GetWindow(Form1.hwnd, GW_HWNDNEXT)

GetWindowText Form1.hwnd, wn, GetWindowTextLength(Form1.hwnd) + 1

GetWindowText hwnd, WnN, GetWindowTextLength(hwnd) + 1

 

    List1.AddItem "This Window Handle : " + CStr(Form1.hwnd)

    List1.AddItem "This Window Caption : " + CStr(wn)

    List1.AddItem “”

    List1.AddItem "This Next Window Handle : " + CStr(hwnd)

    List1.AddItem "This Next Window Caption : " + CStr(WnN) List

end sub

 

>>>>>

تابع 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 برگردانده می شود .

 

مثال :

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long

 

Private Const GW_HWNDNEXT = 2

 

Private Sub Command1_Click()

Dim hwnd As Long

Dim wn As String, WnN As String

wn = Space(255)

WnN = Space(255)

hwnd = GetWindow(Form1.hwnd, GW_HWNDNEXT)

GetWindowText Form1.hwnd, wn, GetWindowTextLength(Form1.hwnd) + 1

GetWindowText hwnd, WnN, GetWindowTextLength(hwnd) + 1

 

    List1.AddItem "This Window Handle : " + CStr(Form1.hwnd)

    List1.AddItem "This Window Caption : " + CStr(wn)

    List1.AddItem “”

    List1.AddItem "This Next Window Handle : " + CStr(hwnd)

    List1.AddItem "This Next Window Caption : " + CStr(WnN) List

end sub

 

تابع 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 برگردانده می شود .

 

مثال :

Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hWnd As Long, ByVal wFlag As Long) As Long

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hWnd As Long) As Long

Private Const GW_HWNDNEXT = 2

Private Const GW_HWNDPREV = 3

 

Private Sub Command1_Click()

Dim hWnd As Long

Dim Wn As String

 

 

Wn = Space(255)

hWnd = GetNextWindow(Me.hWnd, GW_HWNDNEXT)

GetWindowText hWnd, Wn, GetWindowTextLength(hWnd) + 1

Text1.Text = "Caption of Next Window is : " + CStr(Wn)

 

 

hWnd = GetNextWindow(Me.hWnd, GW_HWNDPREV)

GetWindowText hWnd, Wn, GetWindowTextLength(hWnd) + 1

Text2.Text = "Caption of Prev Window is : " + CStr(Wn)

 

End Sub

 

تابع 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 باشد ، مقدار یک و در غیر این صورت مقدار صفر برگردانده می شود .

 

مثال :

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long

 

Private Sub Command1_Click()

Dim hwnd As Long

 

hwnd = FindWindow(vbNullString, "My Computer"

If IsWindow(hwnd) Then

    MsgBox "This Handle Is Window"

Else

    MsgBox "This Handle No Window"

End If

 

End Sub

 

 

Private Sub Command2_Click()

Dim hwnd As Long

 

hwnd = FindWindow(vbNullString, "My Computer"

 

If IsWindowVisible(hwnd) Then

    MsgBox "The My Computer Window Is Visible"

Else

    MsgBox "The My Computer Window Is UnVisible"

End If

 

End Sub