启动:
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人