『已解决』请教API 的EnumChildWindows和 sendMessage 函数 谢谢版主
本帖最后由 skywhy 于 2011-1-2 12:02 编辑我想请问下 在知道窗口句柄的情况下怎么样用sendMessage 来发送按钮 。
比如说 我在某个窗口 按下"M"键 ,不要问我为什么不用sendkey 之类的函数,因为该窗口无法使用该函数。我在论坛和百度都敲咯一天都没有找到答案。论坛倒是有个帖子,用咯sendMessage 函数。但是我还是不太明白,这个函数的参数应该怎么用。
还有EnumChildWindows函数中帮助手册中根本就没有这个函数。但是在winapi.au3的头文件里面但是看到咯EnumChildWindows函数的身影,但是不知道怎么调用这个函数。我在官方也搜索咯下,由于英文水平有限。也没有看到什么有价值的信息。希望那位高手,帮忙解答一下。谢谢。。Func __WinAPI_EnumWindowsChild($hWnd, $fVisible = True)
$hWnd = _WinAPI_GetWindow($hWnd, $__WINAPICONSTANT_GW_CHILD)
While $hWnd <> 0
If (Not $fVisible) Or _WinAPI_IsWindowVisible($hWnd) Then
__WinAPI_EnumWindowsChild($hWnd, $fVisible)
__WinAPI_EnumWindowsAdd($hWnd)
EndIf
$hWnd = _WinAPI_GetWindow($hWnd, $__WINAPICONSTANT_GW_HWNDNEXT)
WEnd
EndFunc sendMessage是需要句柄的.
_WinAPI_EnumWindows的第一个参数是窗口句柄,第二个参数为可选内容,默认为true.其值为布尔类型.
为true时,表示为窗口可见,返之为不可见 我说的不是_WinAPI_EnumWindows函数我说的是__WinAPI_EnumWindowsChild 函数。
_WinAPI_EnumWindows函数我已经成功的调用咯。不过还是谢谢版主的回帖。 EnumChildWindows吧?
哪里来的_WinAPI_EnumWindowsChild?
上代码看看. 在帮助手册里面是看不到EnumChildWindows函数但是在winapi.au3的头文件里面但是看到咯EnumChildWindows函数的身影,Func __WinAPI_EnumWindowsChild($hWnd, $fVisible = True)
$hWnd = _WinAPI_GetWindow($hWnd, $__WINAPICONSTANT_GW_CHILD)
While $hWnd <> 0
If (Not $fVisible) Or _WinAPI_IsWindowVisible($hWnd) Then
__WinAPI_EnumWindowsChild($hWnd, $fVisible)
__WinAPI_EnumWindowsAdd($hWnd)
EndIf
$hWnd = _WinAPI_GetWindow($hWnd, $__WINAPICONSTANT_GW_HWNDNEXT)
WEnd
EndFunc
这段代码就能够看到EnumChildWindows这个函数的身影 ,我就是想知道怎么用autoit来实现。API的EnumChildWindows函数的功能 我晕,你贴的是EnumWindowsChild 呵呵 不好意思受winapi的头文件影响就这么写咯。··· autoit能不能实现EnumChildWindows这个函数呢? 看了一下WinAPIEx,用法跟上面的一样,不过第二个参数是int,为1或0 _WinAPI_EnumChildWindows函数的头文件不是<WinAPI.au3>吗,为什么我使用该函数提示我函数为声明。真的不好意思打扰你咯,版主。 WinAPIEx
页:
[1]