一个程序如何重启自己?

DoubleKill2014 2014-11-20 09:30:15
一个程序如何重启自己?不用别的程序监听,自己如何实现重启自己?
...全文
527 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluesen 2014-11-21
  • 打赏
  • 举报
回复
人不能靠扯自己的头发飞起来。
oyljerry 2014-11-21
  • 打赏
  • 举报
回复
让另一个程序来重启这个程序,比如想升级,一般都有一个update.exe来重启主程序
笨笨仔 2014-11-21
  • 打赏
  • 举报
回复
如果只是重启程序,可在程序结束前创建一个新的进程,该进程运行后延时启动本程序,并在启动完成后退出。 如果是重启系统,可在程序结束前向系统任务中加入一条启动命令,并在程序中重启系统。
许文君 2014-11-21
  • 打赏
  • 举报
回复
如果不要求形式,可以做成windows服务,windows自身机制可以判读服务是重启抑或关闭
Henzox 2014-11-21
  • 打赏
  • 举报
回复
你在你的程序中再创建一个自己的进程,然后自己退掉,有何不可?
许文君 2014-11-21
  • 打赏
  • 举报
回复
windows计划任务
lx624909677 2014-11-21
  • 打赏
  • 举报
回复
::PostMessage(AfxGetMainWnd()->m_hWnd,WM_SYSCOMMAND,SC_CLOSE,NULL);
		//获取exe程序当前路径
		extern CVCFaceCaptureClientApp theApp;

		TCHAR szAppName[MAX_PATH];
		:: GetModuleFileName(theApp.m_hInstance, szAppName, MAX_PATH);

		CString strAppFullName;
		strAppFullName.Format(_T("%s"),szAppName);

		//重启程序	
		STARTUPINFO StartInfo;
		PROCESS_INFORMATION procStruct;
		memset(&StartInfo, 0, sizeof(STARTUPINFO));
		StartInfo.cb = sizeof(STARTUPINFO);
		::CreateProcess(
			(LPCTSTR)strAppFullName,
			NULL,
			NULL,
			NULL,
			FALSE,
			NORMAL_PRIORITY_CLASS,
			NULL,
			NULL,
			&StartInfo,
			&procStruct);
	}
fengswd 2014-11-20
  • 打赏
  • 举报
回复
原始人还不会钻木取火的时候,取的火种是哪里来的?天上打雷把树烧着了后留下来的。你能让火自己点着?要想要程序自己重启,你就得在程序销毁的时候留下火种。没有哪个东西是无原因产生或无原因消失的。 就说你的想法吧,销毁的时候在系统中创建任务计划,定时为1秒,程序销毁后立马重启了。 创建监控进程,也叫守护进程,一旦发现目标进程没有了,立马重新创建。 当然好像这两种方法都违背了你的意愿。不过明确告诉你,不借助其他进程程序想要重新启动那是不可能滴!如果程序都能自己控制自己的重新启动了,那还叫程序么?人工智能的时代真要到来了。
dvlinker 2014-11-20
  • 打赏
  • 举报
回复
应该是要借助另外一个进程来启动自己的吧

16,471

社区成员

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

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

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