shellexecute(100分)

  • 主题发起人 主题发起人 chrisfan
  • 开始时间 开始时间
C

chrisfan

Unregistered / Unconfirmed
GUEST, unregistred user!
shellexecute、winexec、createprocess可以调用外部可执行程序,那么如何终止已调用的
外部程序?最好有例子,谢谢
 
SendMessage(FindWindow(...),WM_CLOSE,...)
 
下面给出一段在 Delphi 中关闭“计算器”程序为例:
...
var
CountHWnd: HWnd;
begin
CountHWnd:=FindWindow(nil, '计算器');
if HWndCalculator <> 0 then
SendMessage(CountHWnd, WM_CLOSE, 0, 0);
end;
 
谢谢。
var
CountHWnd: HWnd;
begin
CountHWnd:=FindWindow(nil, '计算器');
if HWndCalculator <> 0 then
SendMessage(CountHWnd, WM_CLOSE, 0, 0);
end;
HWndCalculator 是是么?
 
用CountHWnd代替HWndCalculator
 
呵呵,应该是她写错了
 
谢谢大家
 
procedure TForm1.Button1Click(Sender: TObject);
var
H:THandle;
P:DWORD;
begin
H:=FindWindow(nil,'无标题 - 记事本');
if H<>0 then
begin
GetWindowThreadProcessId(H,@P);
if P<>0 then
TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,P),$FFFFFFFF);
end;
end;
 
是句柄,应该这么写:

var
CountHWnd: HWnd;
begin
CountHWnd:=FindWindow(nil, '计算器');
if CountHWnd <> 0 then
////////
SendMessage(CountHWnd, WM_CLOSE, 0, 0);
end;


如果系统中目前运行了附件中的“计算器”程序,则把它关闭
 
多人接受答案了。
 
后退
顶部