liangxm 发表于 2013-11-25 11:28:25

句柄进程关系

本帖最后由 liangxm 于 2013-11-25 11:30 编辑

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

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


qqq~

MicroBlue 发表于 2013-11-25 22:47:21

善用搜索。Func _GetHwndFromPID($PID)
    $hWnd = 0
    $stPID = DllStructCreate("int")
    Do
      $winlist2 = WinList()
      For $i = 1 To $winlist2
            If $winlist2[$i] <> "" Then
                DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $winlist2[$i], "ptr", DllStructGetPtr($stPID))
                If DllStructGetData($stPID, 1) = $PID Then
                  $hWnd = $winlist2[$i]
                  ExitLoop
                EndIf
            EndIf
      Next
      Sleep(100)
    Until $hWnd <> 0
    Return $hWnd
EndFunc ;==>_GetHwndFromPID

liangxm 发表于 2013-11-26 13:17:23

知道了,3q~

liangxm 发表于 2013-11-26 14:16:53

哦,另,如果有2个进程,这个怎么破?
Local $PID = ProcessExists("test.exe")

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

_GetHwndFromPID($PID)

liangxm 发表于 2013-11-26 15:38:05

大概想了一下,ProcessList列出来,一个个丢进_GetHwndFromPID好了。。。不知道还有没有简单方法
页: [1]
查看完整版本: 句柄进程关系