如何关闭程序后能自动再次运行本程序.....

HelpMeNow 2003-10-19 11:06:58
我在系统初始化后想关闭并自动启动程序...如何写
...全文
83 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
HelpMeNow 2003-10-21
  • 打赏
  • 举报
回复
有没有简单的实现办法呢..还要做一个外程序,太明显了吗
ly_liuyang 2003-10-20
  • 打赏
  • 举报
回复
都是很容易实现的
简单启动用WINEXEC都可以了
HelpMeNow 2003-10-20
  • 打赏
  • 举报
回复
那调用的这个外程序,是可见的吗????
HelpMeNow 2003-10-20
  • 打赏
  • 举报
回复
我是在一个打开的窗体使用下面这个语句关闭程序,不能使用bat文件.
Application.Terminate;
dancedog 2003-10-20
  • 打赏
  • 举报
回复
简单一点的,自己写一个bat文件,在程序close的时候,运行这个bat文件。
bat文件里面该写什么内容,不要我说了吧? :)
kuan 2003-10-19
  • 打赏
  • 举报
回复
回复时间太长了,被抢了一楼。:(
kuan 2003-10-19
  • 打赏
  • 举报
回复
第一个函数:
procedure close_win(win_tital: String);//win_tital是你要关闭的程序窗体标题
var
HWndCalculator : HWnd;
begin
HWndCalculator := FindWindow(nil, win_tital); // close the exist Calculator
if HWndCalculator <> 0 then
begin
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
// sleep(10000);
Run_update_app(你的外部程序);
end;
Close;
end;

第二个函数:
procedure Run_update_app(file_name:String);
var
sCommandLine: string;
bCreateProcess: boolean;
lpStartupInfo: TStartupInfo;
lpProcessInformation: TProcessInformation;
begin
sCommandLine := file_name;
// 填入 StartupInfo
FillChar(lpStartupInfo, Sizeof(TStartupInfo), #0);
lpStartupInfo.cb := Sizeof(TStartupInfo);
lpStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
lpStartupInfo.wShowWindow := SW_NORMAL;
bCreateProcess := CreateProcess(nil, PChar(sCommandLine),
nil, nil, True, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,
nil, nil, lpStartupInfo, lpProcessInformation);
end;

在你的主程序中用第二个函数调用一个外部程序,外部程序主要包含上述两个函数,用来关掉主程序和重新启动主程序。
oklida 2003-10-19
  • 打赏
  • 举报
回复
主程序运行 --> 释放update_self 小程序.
使用createprocess 建立一个update_self.exe的新进程
参数给定 update_self.exe PID new_exe old_exe
参数PID :是主程序的进程ID new_exe 是新程序. old_exe 是旧的主程序本身.
yckxzjj 2003-10-19
  • 打赏
  • 举报
回复
是做一个启动画面吧。

5,388

社区成员

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

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