怎样让C++控制台程序重启

安然 2012-09-28 05:15:34
我想要的是通过函数里面的语句实现重启,而不是人为打开,有哪位大神有好的方法吗?是控制台程序。
...全文
439 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZTZ2019 2014-05-04
  • 打赏
  • 举报
回复
我不是有意挖坟,不过我现在也需要一个能重启程序的功能,远程发送一个命令,接收到之后就重启自身,重启main函数以内的功能即可。
安然 2012-10-01
  • 打赏
  • 举报
回复
嗯,刚差了一下,我是做一个票务系统(当然是学生版的)我让管理员有清空所有数据的功能(删除所有的东西)而我的程序启动时首先会判断是否含有几本文件,没有则创建,所以需要用到重启功能[Quote=引用 13 楼 的回复:]

引用 11 楼 的回复:

那这样的话别人要是改了一下我的程序名岂不是就不能用了?引用 10 楼 的回复:

比如myprog.exe是你的可执行程序名,生成一个a.bat文件,然后system("a.bat");
a.bat文件内容为
taskkill /IM myprog.exe
start myprog.exe

你不会把myprog改成argv[0]的值吗?
[/Quote]
赵4老师 2012-10-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

那这样的话别人要是改了一下我的程序名岂不是就不能用了?引用 10 楼 的回复:

比如myprog.exe是你的可执行程序名,生成一个a.bat文件,然后system("a.bat");
a.bat文件内容为
taskkill /IM myprog.exe
start myprog.exe
[/Quote]
你不会把myprog改成argv[0]的值吗?
赵4老师 2012-10-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

那这样的话别人要是改了一下我的程序名岂不是就不能用了?引用 10 楼 的回复:

比如myprog.exe是你的可执行程序名,生成一个a.bat文件,然后system("a.bat");
a.bat文件内容为
taskkill /IM myprog.exe
start myprog.exe
[/Quote]
奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
安然 2012-10-01
  • 打赏
  • 举报
回复
那这样的话别人要是改了一下我的程序名岂不是就不能用了?[Quote=引用 10 楼 的回复:]

比如myprog.exe是你的可执行程序名,生成一个a.bat文件,然后system("a.bat");
a.bat文件内容为
taskkill /IM myprog.exe
start myprog.exe
[/Quote]
赵4老师 2012-09-29
  • 打赏
  • 举报
回复
比如myprog.exe是你的可执行程序名,生成一个a.bat文件,然后system("a.bat");
a.bat文件内容为
taskkill /IM myprog.exe
start myprog.exe
知你者我 2012-09-29
  • 打赏
  • 举报
回复
linux中可以用信号来实现 signal
这不是鸭头 2012-09-29
  • 打赏
  • 举报
回复
Processes the specified function at exit.


int atexit(
void (__cdecl *func )( void )
);

supersoft2008 2012-09-29
  • 打赏
  • 举报
回复
/*开启新的程序*/
QString applicationFilePath = QCoreApplication::applicationFilePath();
wchar_t *pPath = new wchar_t[applicationFilePath.length()+1];
memset(pPath, 0, (applicationFilePath.length()+1)*2);
applicationFilePath.toWCharArray(pPath);
::ShellExecute(NULL, L"open", pPath, NULL, NULL, SW_SHOW);
delete []pPath;
swp543210 2012-09-28
  • 打赏
  • 举报
回复
先获取本进程exe的地址
argv[0]参数或者GetMoudleName/*HANDLE=NULL*/;
然后ShellExecuteEx打开
ExitProcess退出
安然 2012-09-28
  • 打赏
  • 举报
回复
嗯,就是程序再自杀之前向操作系统发送某个指令使得程序自杀之后能再重新启动[Quote=引用 1 楼 的回复:]

程序自己重启自己???
[/Quote]
皮特尔 2012-09-28
  • 打赏
  • 举报
回复
这个问题楼主在MSDN里搜索restart就可以了。
Gloveing 2012-09-28
  • 打赏
  • 举报
回复
CreateProcess
system
ShellExecute
等函数
szqh97 2012-09-28
  • 打赏
  • 举报
回复
不是很明白
大熊猫侯佩 2012-09-28
  • 打赏
  • 举报
回复
程序自己重启自己???
----------------------------重启助手V1.2简介---------------------------------- 1.功能简介: 这是一款运行于Windows下的控制台应用程序,它可以根据用户指定的参数 <重启时间间隔>与<重启次数>自动对电脑进行重启。以期通过这种方式,自动触发 电脑启过程中可能出现的蓝屏,省去测试过程中需要不停手动重启电脑的麻烦,节 约时间,提高工作效率。 说明: V1.1 版增加了取消开机自启动的功能。 V1.2 版增加了发现dump文件自动定位并停止程序运行的功能。 2.命令格式: ..\RebootAssistant.exe [rebootInterval] [rebootTimes] 参数:(1)rebootInterval(单位:秒)重启时间间隔,表示每次从助手 开始启动后经过多少秒重启电脑 (2)rebootTimes(单位:次)重启次数,表示需要助手自动完成重 启电脑的次数 3.用法步骤: (1)通过在启动中输入“cmd”命令启动控制台窗口; (2)使用“cd”命令进入重启助手可执行文件所在目录; (3)输入“RebootAssistant.exe [rebootInterval] [rebootTimes]”, 然后回车,就可以启动助手; (4)此后,助手会根据用户的设置,不停地重启电脑,直到出现蓝屏死机 或者设定的重启次数用完为止。 4.常见问题: (1)该程序是在32位Win7上使用VS2008开发,通过实测,它在64位Win7和32位 Win7上均能正确运行,但是在Win8上无法自启动。该问题的原因是由于Win8对开机自启 动的限制所致,可以通过在Win8中添加计划任务来实现助手的自启动。具体的计划任务 添加步骤见http://bbs.pcbeta.com/viewthread-1186323-1-1.html。 (2)由于Vista以后,微软引入了UAC机制,这个机制会影响助手的自启动,所 以,使用助手前,需要关掉系统的UAC,关闭步骤见www.so.com。 (3)由于安全卫士太安全了,所以会对助手进行拦截,所以需要在360安全卫士 中把助手设为信任,具体方法步骤不会的。。。面壁思过~ 5.文件说明: (1)Ver2012Release目录下的RebootAssistant.exe,在VS2012下开发的助手 Release版可执行文件,该程序的运行需要VC2012运行库,运行库可以通过在so.com中输 入“VC2012 运行库”找到,下载安装即可。 (2)Ver2008Release目录下的RebootAssistant.exe,在VS2008下开发的助手 Release版可执行文件,该程序一般不需要安装运行库,可以直接运行,建议使用此版本! (3)RebootAssistant.cpp,为助手的C++源文件,内有详细注释,感兴趣可以看 看,内有bug哦,看你能发现不O(∩_∩)O~ (4)如有改进意见,欢迎给我弹窗。 6.相关信息 Author:chenx Date: 2013-5-30 ---------------------------------华丽的分割线-------------------------------- -----------------------------------------------------------------------------
网维大师服务端: 一 新增功能 1、全面开始支持Windows 7(目前只支持有盘网吧) 2、网维大师控制台整合游戏虚拟盘设置、监控功能 a) 虚拟盘增加、删除、修改,若服务器在线,智能识别类型+盘符等信息,方便输入 b) 虚拟盘监控:包括服务器服务监控,同步服务监控,客户机监控,虚拟盘游戏监控等 c) 远程重启虚拟盘服务 二 主要功能修复 1、 修复同步节点程序无法索引超过10M的索引文件的问题 2、 修复网维大师7.1.0.0版本服务端设置游戏快捷方式后关闭控制重新打开空白的问题 3、 修复服务端磁盘空间不足引起引起游戏图标下载失败,需要清理磁盘、日志 4、 修复新增、修改游戏时可点击“设置”按钮进行配置 5、 修复游戏文件里没有文件只有索引时校验索引无法停止的问题; 6、 创建个人磁盘时需要屏避一些特殊字符 7、 解决个别环境中服务端C++报错 8、 修正个别环境中磁盘监控显示为空 9、 修改虚拟盘缓存后立即重启虚拟盘服务以使设置生效 10、解决同步节点服务有时启用有时未启用的问题 11、解决WIN7下与艾克吧、嘟嘟牛以及部分腾讯软件的兼容性问题 12、解决个别环境中使用WIN7长时间搁置导致蓝屏的问题 13、简化游戏虚拟盘监控中的服务状态信息 14、解决游戏虚拟盘与游戏更新盘为同一盘符情况下,重复对比索引问题

64,661

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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