程序自杀后,如何再重新自动启动(象QQ一样)(20分)

  • 主题发起人 主题发起人 易健荣
  • 开始时间 开始时间

易健荣

Unregistered / Unconfirmed
GUEST, unregistred user!
程序自杀后,如何再重新自动启动
如QQ遇到不可估计的错误引起关闭,但是他又能自动启动(自动启动登陆窗口)
请问各位DFW,如何写啊
送上20分(不多了)
 
我教你一个办法,就是你的程序自杀前,或者运行程序时,再运行一个STR,(目前时刻了解这个程序的运行过程.如果非正常断了,就重新启动.(很简单啊)

 
str是什么啊(不要笑我呀),怎么写,但是这个STR要隐藏也不好啊
 
程序开始的时候设置一个标记为false,在正常关闭的时候设置为true,
然后在程序关闭的时候检测这个标记,如果为false则启动,
好像不是很行啊,(如果发生不可估计的错误死掉好像不可以)拦截消息wm_destroy看看

还有一种就是另外建立一个进程一直检测罗,不过不懂
 
(如果发生不可估计的错误死掉好像不可以)就是为了防止该情况啊。
//拦截消息wm_destroy看看
消息我不太懂,还请指教
 
在主Form关闭的OnQueryClose事件中,
重新执行一次你的程序就行了.
 
1Fuyi:
是在OnCloseQuery中写入WINEXEC函数把
 
lFuyi:
这样也不行,自己没有杀死,又复制了个新的,
就等于运行了两个啊
 
可以让这个程序运行时,去另外再运行一个程序。
让这个另外运行的程序,去监视这个程序的进程对象句柄。
然后在这个程序的进程结束时,得到信号,然后重新启动这个程序。
 
TO dedema:
这样好象麻烦了点
还有没有简单一点的办法呢
 
我觉得,QQ在程序中实现了类似下边的代码:
try
......
exception
...... // 程序崩溃
CreateProcess(......) // 再次运行自己
Close(); // 关闭应用
end;
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部