找回密码
 加入
搜索
查看: 3485|回复: 5

[AU3基础] 已解决 WinList() 不能枚举#32770窗口?

  [复制链接]
发表于 2011-12-7 00:57:11 | 显示全部楼层 |阅读模式
本帖最后由 Qokelate 于 2011-12-7 17:01 编辑

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

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

解决了,该窗口还有个Flash子窗口,直接获取Flash窗口,再检测标题是否为空,就得到进程名了,不过严谨性还不够,用着先吧,呵呵
发表于 2011-12-7 03:17:55 | 显示全部楼层
本帖最后由 netegg 于 2011-12-7 03:31 编辑

_winapi_enumwindows(_winapi_enumchildwindows)试试看,另外楼主的'那个窗口标题
'不一定是真正的标题,多试试看,肯定可以,碰见过这种情况,不过忘了怎么弄的了,抱歉
 楼主| 发表于 2011-12-7 04:10:13 | 显示全部楼层
回复 2# netegg


    用CMDOW工具可以对窗口进行操作,但用WinList()枚举窗口并用WinMove()所枚举窗口进行移动时,那窗口没有动
发表于 2011-12-7 06:49:11 | 显示全部楼层
回复 3# Qokelate

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

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2011-12-7 09:20:08 | 显示全部楼层
通常电脑上很多属于不同应用的对话框(dialog),获取出来的Class基本上都是#32770。
你用下面这段代码试试就知道了:
$winArr = WinList ("[CLASS:#32770]")
ConsoleWrite ("Dialog Number: " & $winArr[0][0] & @LF)
For $i = 1 To $winArr[0][0]
       ConsoleWrite ("WinTitle: " & $winArr[$i][0] & ", WinHandle: " & $winArr[$i][1] & @LF)
Next
你的窗体上肯定有某些独特的控件可以用来区分。就用这个来识别。
比如下面这个例子:
      $winArr = WinList ("[CLASS:#32770]")
       For $i = 1 To $winArr[0][0]
             $oText = ControlGetText ($winArr[$i][1], "", "[CLASSNN:Static3]") 
             If $oText = "Static控件上的文本" Then
                   $hWin = $winArr[$i][1]
                   ExitLoop
             EndIf
       Next
这样就获取到了窗口句柄 $hWin,然后再定位到进程就不难了。

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2011-12-7 16:25:57 | 显示全部楼层
应该是子窗体,类似于msgbox的吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 05:31 , Processed in 0.110778 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表