[已解决]怎么筛选QQ的所有的已打开的窗口名
本帖最后由 zuiyi 于 2009-8-3 23:58 编辑如题,WinList("","")或WinGetProcess("","")中的参数要怎么设置,就可以筛选出QQ所有已打开的聊天窗口。。。或用其它的什么函数?望高手指点指点~~ #include <winapi.au3>
Local$iProcessID
$pid=ProcessExists("QQ.exe")
Sleep(1000)
$wlis=WinList()
for $i=1 to $wlis
if $wlis[$i]<> "" AND IsVisible($wlis[$i]) then
_WinAPI_GetWindowThreadProcessId($wlis[$i], $iProcessID)
If not StringCompare($iProcessID,$pid) ANDnotStringInStr($wlis[$i], "QQ")then
MsgBox(0,"t",$wlis[$i])
EndIf
EndIf
Next
Func IsVisible($handle)
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIf
EndFunc 思路简析:
先用WinList枚举所有的窗口,得到句柄
再GetWindowThreadProcessId得到的pid再与QQ进程的PID对比
就可以得到窗口标题了 lynfr8 好崇拜你:face (29): lynfr8 好崇拜你:face (29): $a = WinList()
$b = ProcessList('QQ.exe')
For $i = 1 To $a
For $k = 1 To $b
If $b[$k] = WinGetProcess($a[$i]) And _
StringRegExp($a[$i], '交谈中|群') Then MsgBox(0,0, $a[$i] & @CR & $a[$i] & @CR & WinGetProcess($a[$i]))
Next
Next 那么怎样获取QQ号码呢? :face (3): 那么怎样获取QQ号码呢?
joyoustar 发表于 2009-7-20 19:40 http://www.autoitx.com/images/common/back.gif
http://www.autoitx.com/forum.php?mod=viewthread&tid=7987&page=1&fromuid=1003#pid66727
页:
[1]