如何关闭一个已经打开的应用程序?

poweru 2004-09-26 01:11:35
比如说我已经打开通过程序打开了一个.EXE,但我要用个按钮关闭它!我打开时候的代码如下:
procedure TfrmMain.N25Click(Sender: TObject);
begin
ShellExecute(Handle,'open',pchar('DataBak\back.exe'),nil,nil,SW_SHOW);
end;

关闭呢?请赐教!
...全文
236 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
DemonLoveLizzy 2004-09-27
  • 打赏
  • 举报
回复
ShellExecute成功的话,返回的是所运行程序的句柄,你们干什么还要去FINDWINDOW来找那个程序的句柄?
surdon 2004-09-27
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
HWndCalculator : HWnd;
begin
// 查找计算器句柄
HWndCalculator := FindWindow(nil, '计算器');
if HWndCalculator <> 0 then
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
//关闭计算器
end;
ly_liuyang 2004-09-26
  • 打赏
  • 举报
回复
这样还不如用CreateProcess可以管理比较好

Google上找了

TerminateProcess就关了

http://lysoft.7u7.net
yangguofa 2004-09-26
  • 打赏
  • 举报
回复
var
Handle1:THandle;
begin
Handle1:=FindWindow(nil,'瑞星杀毒软件');
if (handle1<>0) then
Begin
PostMessage(Handle1,WM_Quit,0,0);
end;
end;
DemonLoveLizzy 2004-09-26
  • 打赏
  • 举报
回复
ShellExecute的返回值不就是已经运行的程序的句柄么?直接对这个返回值SENDMESSAGE(WM-CLOSE)不就可以了么
chengchong1979 2004-09-26
  • 打赏
  • 举报
回复
楼上的???唉
软件钢琴师 2004-09-26
  • 打赏
  • 举报
回复
你是在菜单里打开得吧,在弹得出的窗体中放一个button 其事件里写close;
RockEx 2004-09-26
  • 打赏
  • 举报
回复
var
FHandle:THandle;
...
FHandle:=FindWindow(nil,pchar('窗体标题'));
if FHandle<>0 then
SendMessage(FHandle,WM_Close,0,0)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧