有没有办法实现让系统关闭自己再重新启动一个进程实例

clever101
领域专家: C/C++技术领域
2009-09-25 10:06:02
现在我要实现这样一个需求,用户在系统修改系统配置后关掉当前进程再重新启动一个进程。我在网上搜到了delphi的例子,因为不懂delphi,看不懂。

delphi例子:

用于演示一种应用程序崩溃后自动重启的编程技巧,类似与QQ的自动重启功能

C#也有一个例子:

Using Custom Exception Handlers to Restart Your Application

但是我没有找到VC的例子。
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
WHSHLING 2009-09-26
  • 打赏
  • 举报
回复
学习
shenyi0106 2009-09-26
  • 打赏
  • 举报
回复
温柔点的办法是通过一个中间进程中转
野男孩 2009-09-26
  • 打赏
  • 举报
回复
配置修改后,先调用CreateProcess创建进程,然后本程序马上退出(强制一点的话可以ExitProcess())
这不是鸭头 2009-09-26
  • 打赏
  • 举报
回复
QQ程序崩溃的时候是不是自身重启的?
还是捕捉错误调用的另一个发送错误报告的程序,发送错误的那个程序在关闭的时候,实现了QQ.exe的运行
这不是鸭头 2009-09-26
  • 打赏
  • 举报
回复
QQ崩溃重启。和电驴重启是一样的。
它是在APP文件的InitInstace()中
CCrashReporterDlg dlg;
dlg.m_strFileName = m_lpCmdLine;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: 在此放置处理何时用“确定”来关闭
//对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO: 在此放置处理何时用“取消”来关闭
//对话框的代码
}
//添加了这段代码。
if (dlg.m_bAutoRestart)
ShellExecute(NULL, "open", "eMule.exe", NULL, NULL, SW_SHOW);
MoXiaoRab 2009-09-25
  • 打赏
  • 举报
回复
其实也就是在Try catch中捕获异常,Catch中CreateProcess创建自己的进程

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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