阿杰 发表于 2009-7-23 19:15:54

【开源】进程PID取窗口句柄

<p><font face="Verdana">//进程PID取窗口句柄</font></p>
<p><font face="Verdana">function GetHwndFromProcess(ProcessId: DWORD): HWND;<br/>function _EnumWindowsProc(P_HWND: Cardinal; lParam: Cardinal): Boolean;<br/>&nbsp;&nbsp;&nbsp; stdcall;<br/>var<br/>&nbsp;&nbsp;&nbsp; PID: DWORD;<br/>begin<br/>&nbsp;&nbsp;&nbsp; GetWindowThreadProcessId(P_HWND, @PID);<br/>&nbsp;&nbsp;&nbsp; if PCardinal(lParam)^ &lt;&gt; PID then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Result := True<br/>&nbsp;&nbsp;&nbsp; else<br/>&nbsp;&nbsp;&nbsp; begin<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Result := False;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PCardinal(lParam + 4)^ := P_HWND;<br/>&nbsp;&nbsp;&nbsp; end;<br/>end;</font></p>
<p><font face="Verdana">var<br/>Buffer: array of Cardinal;<br/>begin<br/>&nbsp;&nbsp;&nbsp; Result := 0;<br/>&nbsp;&nbsp;&nbsp; Buffer := ProcessId;<br/>&nbsp;&nbsp;&nbsp; Buffer := 0;<br/>&nbsp;&nbsp;&nbsp; EnumWindows(@_EnumWindowsProc, Integer(@Buffer));<br/>&nbsp;&nbsp;&nbsp; if Buffer &gt; 0 then&nbsp; Result := Buffer;<br/>end;<br/></font></p>
页: [1]
查看完整版本: 【开源】进程PID取窗口句柄