已解决 WinList() 不能枚举#32770窗口?
本帖最后由 Qokelate 于 2011-12-7 17:01 编辑一个#32770类的窗口,标题是空,内容不确定,如何定位到其进程?
试了WinList枚举,貌似不能枚举出该窗口
解决了,该窗口还有个Flash子窗口,直接获取Flash窗口,再检测标题是否为空,就得到进程名了,不过严谨性还不够,用着先吧,呵呵{:face (356):} 本帖最后由 netegg 于 2011-12-7 03:31 编辑
_winapi_enumwindows(_winapi_enumchildwindows)试试看,另外楼主的'那个窗口标题
'不一定是真正的标题,多试试看,肯定可以,碰见过这种情况,不过忘了怎么弄的了,抱歉 回复 2# netegg
用CMDOW工具可以对窗口进行操作,但用WinList()枚举窗口并用WinMove()所枚举窗口进行移动时,那窗口没有动 回复 3# Qokelate
这类窗体是子窗体的可能性大些,那两个函数操作不了子窗体 通常电脑上很多属于不同应用的对话框(dialog),获取出来的Class基本上都是#32770。
你用下面这段代码试试就知道了:$winArr = WinList ("")
ConsoleWrite ("Dialog Number: " & $winArr & @LF)
For $i = 1 To $winArr
ConsoleWrite ("WinTitle: " & $winArr[$i] & ", WinHandle: " & $winArr[$i] & @LF)
Next你的窗体上肯定有某些独特的控件可以用来区分。就用这个来识别。
比如下面这个例子: $winArr = WinList ("")
For $i = 1 To $winArr
$oText = ControlGetText ($winArr[$i], "", "")
If $oText = "Static控件上的文本" Then
$hWin = $winArr[$i]
ExitLoop
EndIf
Next这样就获取到了窗口句柄 $hWin,然后再定位到进程就不难了。 应该是子窗体,类似于msgbox的吧
页:
[1]