rtytext 发表于 2010-7-2 10:37:44

攻取窗口标题

我现在要做一个读取窗口的软件,但找了好久没找到可以攻取顶层窗口标题的方法,有谁知道的说一下吧,谢谢!!

rtytext 发表于 2010-7-2 10:45:53

字打错了一个,更正一下,“攻”应为“获”

ferelove 发表于 2010-7-2 10:46:34

自带的Ctrl+F6
“AU3窗口信息工具”不行吗?

akmm88 发表于 2010-7-2 10:51:10

在AU3编辑器中输入 WinList() 按F1

rtytext 发表于 2010-7-2 10:55:43

这方法不行,我只要获取选中窗口标题

rtytext 发表于 2010-7-2 10:57:47

不能用另外的工具,因为我要调用窗口标题

rtytext 发表于 2010-7-2 11:08:09

在线等啊,谁知道的说一下,先谢谢了{:face (370):}

ferelove 发表于 2010-7-2 11:20:15

本帖最后由 ferelove 于 2010-7-2 11:21 编辑

#include <Array.au3>
Opt("WinDetectHiddenText", 1)
$aArray = WinList()
_ArrayDisplay($aArray)

rtytext 发表于 2010-7-2 11:29:48

老大,你还是理解错了,我就是不要那个列表,我要的是当前窗口标题,就没有什么可以直接读到吗???

ferelove 发表于 2010-7-2 11:36:56

本帖最后由 ferelove 于 2010-7-2 11:40 编辑

可以用winlis()灵活和WinActive()结合使用,同样可以实现。
或者来个传送门,去三恨老大的博客里看看http://www.lunhui.net.cn/article.asp?id=111

xsjtxy 发表于 2010-7-2 11:38:27

本帖最后由 xsjtxy 于 2010-7-2 12:08 编辑

;;;;楼主。你搞得大家好糊涂啊。。。。。

sleep(3000)
$var = WinList()

$win = ""
For $i = 1 to $var
; 只显示带有标题的可见窗口
If $var[$i] <> "" AND IsVisible($var[$i]) Then
if WinGetState($var[$i]) = 15 or WinGetState($var[$i]) = 47 then
$win = $var[$i]
EndIf
endif
Next

if $win = "" or $win = "Program Manager" then
MsgBox(0, "", "当前没有激活的窗口")
else
MsgBox(0, "", "当前为激活状态的窗口:" & $win)
endif

Func IsVisible($handle)
If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
Else
    Return 0
EndIf

EndFunc

gapkiller 发表于 2010-7-2 12:04:43


WinGetTitle("")
这么简单的东西....

afan 发表于 2010-7-2 12:45:21

#Include <WinAPI.au3>
$h_win = _WinAPI_GetForegroundWindow() ;顶层窗口句柄
;以上获取的句柄可以代替“标题”使用,如果硬要标题的话再加一行:
WinGetTitle($h_win) ;这里就是一个句柄代替“标题”使用的例子

xsjtxy 发表于 2010-7-2 13:02:07

哇。学习。找不到汉化的。还是afan凶

gapkiller 发表于 2010-7-2 13:48:06

本帖最后由 gapkiller 于 2010-7-2 13:49 编辑


While 1
        ToolTip(WinGetTitle(""))
        Sleep(1)
WEnd
页: [1] 2
查看完整版本: 攻取窗口标题