钉在桌面的代码:
#include <GUIConstantsEx.au3>
#Include <WinAPI.au3>
Opt("GUIOnEventMode", 1);启用 OnEvent 函数notifications
;$Form1 = GUICreate("第一种方法", 100, 100, 100, 100,-1,-1,_WinAPI_GetWindow(_WinAPI_FindWindow('Progman', 'Program Manager'),'$GW_CHILD'))
;GUISetOnEvent($GUI_EVENT_CLOSE, "_exit" )
;GuiSetState()
$Form2 = GUICreate("第二种方法", 100, 100, 300, 100,-1,-1,_WinAPI_FindWindowEx(_WinAPI_FindWindow('Progman', ''),0,'shelldll_defview',''))
GUISetOnEvent($GUI_EVENT_CLOSE, "_exit" )
GuiSetState()
While 1
Sleep(20)
WEnd
func _exit()
GUIDelete()
exit
endfunc
;返回子窗口句柄,比如:打开一个.txt文件,你用FindWindow函数只能找到父窗口的名字可能是ff.txt,但你要找到文件输入框就用这个FindWindEx函数
;$hwndParent:要查找子窗口的父窗口句柄
;$hwndChildAfter:子窗口句柄,如果为NULL就从第一个开始找,如果hwndParent为NULL,则函数以桌面窗口为父窗口,查找桌面窗口的所有子窗口,Windows NT5.0 and later:如果hwndParent是HWND_MESSAGE,函数仅查找所有消息窗口
;$lpszClass:类名
;$lpszWindow:窗口或者控件的title或者caption
Func _WinAPI_FindWindowEx($hwndParent, $hwndChildAfter, $lpszClass, $lpszWindow);
Local $aResult
$aResult = DllCall("User32.dll", "hwnd", "FindWindowEx", "hwnd", $hwndParent, "hwnd", $hwndChildAfter, "str", $lpszClass, "str", $lpszWindow)
If @error Then Return SetError(@error, 0, 0)
Return $aResult[0]
EndFunc
|