如何获取使用ShellExecute打开的IE进程的Handle ( 积分: 100 )

  • 主题发起人 主题发起人 GoDelphi123
  • 开始时间 开始时间
G

GoDelphi123

Unregistered / Unconfirmed
GUEST, unregistred user!
使用ShellExecute打开一个IE,ShellExecute返回的是DDE句柄,而不是IE Thread句柄。

如何获取该IE Thread句柄?
 
使用API,对所有窗口进行枚举(EnumWindows),在回调函数中对获得的每个窗口(窗口的
Handle)处理即可!
var
HWndCalculator : HWnd;
begin
HWndCalculator := Winprocs.FindWindow(nil, 'iexplore.exe'); Calculator
if HWndCalculator <> 0 then
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
end;

//还有一个
procedure KillProcess(dwProcessId: DWORD);
var
ProcHandle: THandle;
begin
ProcHandle := OpenProcess(1, FALSE, dwProcessID);
try
if ProcHandle <> 0 then
begin
if TerminateProcess(ProcHandle, $FFFFFFFF) then
WaitForSingleObject(ProcHandle, INFINITE);
end;
finally
CloseHandle(ProcHandle);
end;
end;
 
shellexecute处理不了你的要求,使用createprocess函数,完全可以解决你的问题了。
 
后退
顶部