怎么知道一个程序已经运行并得到它的hinstace,hwnd???(50分)

  • 主题发起人 主题发起人 rou
  • 开始时间 开始时间
如果知道程序的窗口名,可以通过Findwindow获得.
 
var
HWndXXX : HWnd;
begin
HWndXXX := Winprocs.FindWindow(nil, 'XXX');
if HWndCalculator <> 0 then
SendMessage(HWndXXX, WM_CLOSE, 0, 0);
end;
XXX:is the program you want to end it :-)
 
找到Window的Handle以后,可以使用GetWindowLong获得它的HInstance, 但是得到
的只是这个Thread的MainInstance,也就是Application的HInstance, 没有多大用
处.

如果能够找到Delphi的某个Object的Instance,会很有用的, 不知道那位大虾能够做
到.
 
怎么从hinstance得到hwnd???
 
为什么非得从 hInstance 得到 hwnd, 一般来说 hwnd 要比
hInstance 容易得到。
 
我给你一个函数可以查找全部运行的进程:
ok:=Process32First(ProcessListHandle,ProcessStruct);//----查找第一个进程------
while Integer(ok)<>0 do Begin
ok:=Process32Next(ProcessListHandle,ProcessStruct);//----查找第二个进程---------
End;
其中ok是Integer型,具体可以查找帮助
 
多人接受答案了。
 
后退
顶部