目前在做一个小程序,想实现如下功能:当程序非正常退出时,如何可以让它自己重启呢?再做个监控程序的方案就算了吧,我在网上看到有个SetUnhandledExceptionFilter可以用,哪位老大说说这个咋用吧,谢谢!
解决方案 »
- 为何把FormStyle改成Normal后这个Form一被创建便会自动弹出?
- delphi中有没有类似VB中的Scale函数???(它是个自定义坐标系统的函数)
- 拆分汉字字符串
- 当下载文件时,用windows的另存为下载时,我没法取到--下载到: d:\winrar.exe 中的d:\winrara.exe ,怎么回事??
- ie编程
- 自创建组件的编译问题->:
- 招聘DELPHI程序员一名,工作地点北京。
- 没办法,问一下IdUDPServer怎么样进行数据接收!
- 快速调整delphi源代码的格式,很简单的问题啊,可是我不会!
- 那有好用的打包软件啊?
- EditWordBreakProc与EM_SETWORDBREAKPROCEX如何使用
- 别见笑,刚刚学delphi编写计算器的小问题
Syntax
C++LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(
__in LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter
);本人英文很菜,大概的意思是你调用了这个函数,那么程序出现异常的时候,都会被他捕捉到。
服务程序可以设置在程序异常退出情况下重启
win重启情况下自动启动等
Code
...
...
Except
运行代码?、
然后退出?、
end;
我想到的就这样了!
var
StartInfo: TStartupInfo;
ProcInfo: TProcessInformation;GetStartupInfo(StartInfo);
FillChar(ProcInfo, SizeOf(TProcessInformation), #0);
CreateProcess(nil, GetCommandLine, nil, nil, False,
CREATE_NEW_PROCESS_GROUP + NORMAL_PRIORITY_CLASS, nil,
'这里是程序路径', StartInfo, ProcInfo); TerminateProcess(GetCurrentProcess, 1);
做成Windows的服务程序也是一种办法,但这样程序功能实现要看一下是不是都适合做成服务程序。其实本质上还是守护进程,只不过是利用了系统自带的程序
……
Self.Close;
ShellExecute(Handle,'open',PChar(application.ExeName),nil,nil,SW_SHOW);
……
……