找回密码
 加入
搜索
查看: 3748|回复: 6

[AU3基础] 请教"多窗口"操作的问题,谢谢

  [复制链接]
发表于 2010-4-3 21:12:34 | 显示全部楼层 |阅读模式
本帖最后由 bhwhui 于 2010-4-3 21:20 编辑

举个例子可能好说一些:
例如Photoshop 中同时打开多幅图片,要对每幅图片进行某些操作。
现在的问题在于Photoshop 是主窗口(窗口名:Adobe Photoshop CS3 Extended),而每幅图都是子窗口(窗口名均为:PSViewC 3),区别仅仅是可见文本不同(例如DSC_0028.JPG,DSC_0030.JPG等等),如何激活某个图片的子窗口呢?

从 WinActivate ( "窗口标题" [, "窗口文本"] ) 等函数语法来看,是无法操作主窗口下的子窗口的!即无法嵌套。

用Controlgethandle 先遍历一次子窗口,然后再Gettext 比较可见文本?从而得到准确的句柄来操作?复杂了一些吧?对Autoit 来说不会这样运用的吧?

从论坛搜索结果来看,均是对GUI自己生成的窗口操作的,不同样。

疑惑了,请教高手,谢谢!
发表于 2010-4-3 23:37:21 | 显示全部楼层
_WinAPI_EnumProcessWindows不知道这个有没有帮助
 楼主| 发表于 2010-4-3 23:58:08 | 显示全部楼层
看错题目了吧?

_WinAPI_EnumProcessWindows:
Obtains information about the display devices in a system

怎么会呢?
发表于 2010-4-4 00:02:05 | 显示全部楼层
2#应该可以吧,能获取到子窗体的句柄
 楼主| 发表于 2010-4-4 00:17:30 | 显示全部楼层
不好意思,我的3.3.3.3 版竟然没有这个函数的说明。看错了:

_WinAPI_EnumDisplayDevices
--------------------------------------------------------------------------------

Obtains information about the display devices in a system


#Include <WinAPI.au3>
_WinAPI_EnumDisplayDevices($sDevice, $iDevNum)
发表于 2010-4-4 00:33:57 | 显示全部楼层
刚看了下,PS 里面的每个打开的文件应该只是占用一个窗口,每个文件为这个窗口的一个控件,并非多窗口~
 楼主| 发表于 2010-4-4 00:41:55 | 显示全部楼层
本帖最后由 bhwhui 于 2010-4-4 00:45 编辑

您说的没错,看我的标题“多窗口”是加引号的,呵呵,现在问题是有什么简便的方法可以操作每个子窗口或者说控件?例如就操作DSC0028号图片的“窗口"?谢谢,
2#的方法没试,估计和我在1#提出的解决方法一样,复杂啊!-----“用Controlgethandle 先遍历一次子窗口,然后再Gettext 比较可见文本?从而得到准确的句柄来操作?复杂了一些吧?对Autoit 来说不会这样运用的吧?”
网上有个Sanhe老师枚举所有控件id的程序,可能可以,还是那么复杂的啊,希望简单一些!
谢谢。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 15:39 , Processed in 0.074242 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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