Qokelate 发表于 2011-12-7 00:57:11

已解决 WinList() 不能枚举#32770窗口?

本帖最后由 Qokelate 于 2011-12-7 17:01 编辑

一个#32770类的窗口,标题是空,内容不确定,如何定位到其进程?

试了WinList枚举,貌似不能枚举出该窗口

解决了,该窗口还有个Flash子窗口,直接获取Flash窗口,再检测标题是否为空,就得到进程名了,不过严谨性还不够,用着先吧,呵呵{:face (356):}

netegg 发表于 2011-12-7 03:17:55

本帖最后由 netegg 于 2011-12-7 03:31 编辑

_winapi_enumwindows(_winapi_enumchildwindows)试试看,另外楼主的'那个窗口标题
'不一定是真正的标题,多试试看,肯定可以,碰见过这种情况,不过忘了怎么弄的了,抱歉

Qokelate 发表于 2011-12-7 04:10:13

回复 2# netegg


    用CMDOW工具可以对窗口进行操作,但用WinList()枚举窗口并用WinMove()所枚举窗口进行移动时,那窗口没有动

netegg 发表于 2011-12-7 06:49:11

回复 3# Qokelate

这类窗体是子窗体的可能性大些,那两个函数操作不了子窗体

xiehuahere 发表于 2011-12-7 09:20:08

通常电脑上很多属于不同应用的对话框(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,然后再定位到进程就不难了。

menfan1 发表于 2011-12-7 16:25:57

应该是子窗体,类似于msgbox的吧
页: [1]
查看完整版本: 已解决 WinList() 不能枚举#32770窗口?