启动:
1、Winexec('NOTEPAD.EXE 文件名' ,SW_SHOW)
2、ShellExeCute(handle,'open','NOTEPAD.EXE 文件名',nil,nil,SW_SHOW)
注意加ShellAPI
关闭:
procedure TForm1.Button21Click(Sender: TObject);
var
hWndClose:HWND; //file://存储指定的外部应用程序窗口句柄
str: String; //file://存储指定的外部应用程序的窗口名
begin
str:='abc.txt - 记事本';
hWndClose:= FindWindow(nil, PChar(str));
//hWndClose:=FindWindow(nil,'abc.txt - 记事本'); //同上句
if hWndClose <> 0 then //file://如果查找成功,则发送消息,关闭指定的窗口
SendMessage(hWndClose,WM_CLOSE,0,0)
else //file://否则,给出提示信息
ShowMessage('没找到指定的应用程序,所以无法关闭!') ;
我做程序用到的例子:
procedure TForm6.StartUpdate_btnClick(Sender: TObject);
var
//下载订单
MyStream:TMemoryStream;
//版本信息
local_version: string;
server_version: string;
//关闭窗口
hWndClose:HWND;{file://存储指定的外部应用程序窗口句柄}
form_name: String;{file://存储指定的外部应用程序的窗口名}
begin
//==================================begin=======================================
//1.获取本地版本和服务器版本
local_version := fun_ini_read_string('setup','version','local_version');
server_version := IdHTTP1.Get('http://475777.575.user-website5.com/shopdaxia_update/update.inf');
//==================================end=========================================
//==================================begin=======================================
//2.判断并开始更新
if StrToFloat(local_version) >= StrToFloat(server_version) then
begin
ShowMessage('您的版本是最新版本不需要升级!');
Exit;
end;
//==================================end=========================================
//==================================begin=======================================
//3.把原来的程序关掉
form_name := '网店大侠自动化软件';
hWndClose:= FindWindow(nil, PChar(form_name));
if hWndClose <> 0 then begin
//file://如果查找成功,则发送消息,关闭指定的窗口
SendMessage(hWndClose,WM_CLOSE,0,0)
end else begin
//file://否则,给出提示信息
ShowMessage('没找到指定的应用程序,所以无法关闭!') ;
end;
//==================================end=========================================
//==================================begin=======================================
//2.判断并开始更新
if StrToFloat(local_version) < StrToFloat(server_version) then
begin
//IdAntiFreeze1.OnlyWhenIdle:=False;//设置使程序有反应.这句也可以没有,没有话程序的下载的时候窗体不能移动,我觉得最好不要这句,也没有必要
MyStream:=TMemoryStream.Create;
IdHTTP1.Get('http://www.appcontrols.com/demos/exe/HTTPDemo.exe',MyStream);
MyStream.SaveToFile(ExtractFilePath(paramstr(0))+'HTTPDemo.zip');
MyStream.Free;
Showmessage('');
end else begin
ShowMessage('您的版本是最新版本不需要升级!');
end;
//==================================end=========================================
end;
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/archive/2011/12/27/2303566.html