找回密码
 加入
搜索
查看: 3218|回复: 4

[系统综合] 句柄进程关系

[复制链接]
发表于 2013-11-25 11:28:25 | 显示全部楼层 |阅读模式
本帖最后由 liangxm 于 2013-11-25 11:30 编辑

想往一个工具的句柄里面输入信息,但每次都要用窗口信息工具去得到工具的句柄,有没有办法直接从该进程获得句柄?

想问一下,用信息窗口得到的句柄(0x001A06C0)和进程(6816)有没有关系?


qqq~
发表于 2013-11-25 22:47:21 | 显示全部楼层
善用搜索。
Func _GetHwndFromPID($PID)
    $hWnd = 0
    $stPID = DllStructCreate("int")
    Do
        $winlist2 = WinList()
        For $i = 1 To $winlist2[0][0]
            If $winlist2[$i][0] <> "" Then
                DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $winlist2[$i][1], "ptr", DllStructGetPtr($stPID))
                If DllStructGetData($stPID, 1) = $PID Then
                    $hWnd = $winlist2[$i][1]
                    ExitLoop
                EndIf
            EndIf
        Next
        Sleep(100)
    Until $hWnd <> 0
    Return $hWnd
EndFunc ;==>_GetHwndFromPID
 楼主| 发表于 2013-11-26 13:17:23 | 显示全部楼层
知道了,3q~
 楼主| 发表于 2013-11-26 14:16:53 | 显示全部楼层
哦,另,如果有2个进程,这个怎么破?
Local $PID = ProcessExists("test.exe")

If Not $PID Then
MsgBox(0,$PID,"test")
Exit
EndIf

_GetHwndFromPID($PID)
 楼主| 发表于 2013-11-26 15:38:05 | 显示全部楼层
大概想了一下,ProcessList列出来,一个个丢进_GetHwndFromPID好了。。。不知道还有没有简单方法
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 19:25 , Processed in 0.074579 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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