这段代码中,我可以按button1按钮打开指定的程序,但在按button2去关闭被打开的程序时,为什么不能够被关闭,请指点一下,该如何修改这段代码: public
filepath:string;
filehandle:thandle;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec(pansichar(filepath),SW_SHOWNORMAL);
end;procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
begin
s:='flashget.exe';
filehandle:=Winprocs.FindWindow(nil,pchar(s));
if filehandle<>0 then
SendMessage(filehandle,WM_CLOSE,0,0)
else
showmessage('文件没有找到!');
end;procedure TForm1.Edit1Change(Sender: TObject);
begin
if opendialog1.Execute then
begin
edit1.Text:=opendialog1.FileName;
filepath:=edit1.Text;
end;
end;
filepath:string;
filehandle:thandle;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
WinExec(pansichar(filepath),SW_SHOWNORMAL);
end;procedure TForm1.Button2Click(Sender: TObject);
var
s:string;
begin
s:='flashget.exe';
filehandle:=Winprocs.FindWindow(nil,pchar(s));
if filehandle<>0 then
SendMessage(filehandle,WM_CLOSE,0,0)
else
showmessage('文件没有找到!');
end;procedure TForm1.Edit1Change(Sender: TObject);
begin
if opendialog1.Execute then
begin
edit1.Text:=opendialog1.FileName;
filepath:=edit1.Text;
end;
end;
我用SENDMESSAGE(theform.hadle,WM_CLOSE,0,0);
我就不信!!
窗口类名和程序文件名显然不是一回事。
一般用FindWindow函数,多用标题名进行查找,很少用类名;
如果非用不可,就需要先弄清楚那个窗口的类名,可以用Spy.exe
或WinSight.exe等软件先查得后再写入代码中。