读书人

怎么结束用WinExec()调用的外部程序

发布时间: 2012-03-16 16:34:56 作者: rapoo

如何结束用WinExec()调用的外部程序
程序如下,是利用WinExec()调用DEWEsoft.exe。然后在按下btn2,程序退出后,DEWEsoft.exe并没有结束,我想知道怎么才能让程序结束后,调用的DEWEsoft也同时结束。
先谢谢各位了

还有一个问题,就是用Chart组件能作出X-Y记录仪吗?怎么做呢


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,WinProcs,SHELLAPI,StdCtrls;

type
TForm1 = class(TForm)
pnl1: TPanel;
btn1: TButton;
btn2: TButton;


procedure btn2Click(Sender: TObject);
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.btn2Click(Sender: TObject);
begin

close
end;

procedure TForm1.btn1Click(Sender: TObject);
var
h :HWND;

begin

WinExec('C:\Program Files\Dewetron\DEWEsoft66\DEWEsoft.exe',SW_SHOWNORMAL);
h := FindWindow(nil,'DEWEsoft');
windows.SetParent(h,pnl1.Handle);
SetWindowPos(h, 0, 0, 0, pnl1.Width , pnl1.Height, SWP_NOZORDER);

end;

end.

[解决办法]
var
h :HWND; // 变成全局变量就行了

然后在FORMCLOSE事件里写上

SendMessage(h, WM_CLOSE, 0, 0);

读书人网 >.NET

热点推荐