高分求救,关于关闭内嵌的外部程序的问题

bfqu_yuj 2002-12-19 10:38:11
请教一下如何实现关闭一个内嵌的外部程序?
比如说点击应用程序的按钮把内嵌的外部程序关闭。
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingkiller 2002-12-19
  • 打赏
  • 举报
回复
打开内嵌的外部程序时使用createprocess,
然后用exitprocess来关闭它。

参考例子:
procedure TForm1.Timer1Timer(Sender: TObject);
var
Site:string;
lpStartupInfo: STARTUPINFO;
lpProcessInfo: PROCESS_INFORMATION;
lpExitCode:cardinal;
begin
if (Curr=Memo1.Lines.Count) then Curr:=0;
Site:=Memo1.lines[Curr];
if (WinHandle<>0) then
Begin
GetExitCodeProcess(Winhandle,lpexitCode);
TerminateProcess(Winhandle,lpexitcode);
//PostMessage(WinHandle,WM_SYSCOMMAND,SC_CLOSE,0);
End;
Site:='C:\Program Files\Internet Explorer\IExplore '+Site;
GetStartupInfo(lpStartupInfo);
CreateProcess(nil,pchar(Site),nil,nil,True,CREATE_NEW_PROCESS_GROUP,nil,nil,lpStartupInfo,lpProcessInfo);

Winhandle:=lpProcessInfo.hProcess;
inc(Curr);
end;
lws0472 2002-12-19
  • 打赏
  • 举报
回复
用findwindow找到那个外部程序的主窗口,发个wm_close消息过去就可以了
lws0472 2002-12-19
  • 打赏
  • 举报
回复
那就更简单了,在你的程序中很容易就得到panel的handle了,如panel1.handle.

再用Getwindow直接就可以得到外部窗口的句柄了
bfqu_yuj 2002-12-19
  • 打赏
  • 举报
回复
因为这是内嵌到应用程序中的一个Panel上的,那么又如何用findwindow找到那个外部程序的主窗口?

5,939

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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