程序如何实现自重启? 1 ,关闭前ShellExecute,CreateProcess,WinExec 2 , 关闭前建立远线程启动自身 3 ,写执行计划 at命令 4 ,做成可自动运行的服务。没有试过,你试后,告诉我结果! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CTime tmpTime = CTime::GetCurrentTime(); if( (savetime.nhour ==tmpTime.GetHour()) && (savetime.nmin == savetime.nmin)) { KillTimer(1); if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { MessageBox((LPCTSTR)"OpenProcessToken failed!"); } LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); //获得本地机唯一的标识 tkp.PrivilegeCount = 1; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0); //调整获得的权限 if (GetLastError() != ERROR_SUCCESS) { MessageBox((LPCTSTR)"AdjustTokenPrivileges enable failed!"); } fResult =InitiateSystemShutdown( NULL, // 要关的计算机用户名 (LPWSTR)"由于系统不稳定,WINDOWS将在上面的时间内关机,请做好保存工作!", // 显示的消息 10, // 关机所需的时间 TRUE, // ask user to close apps FALSE); //设为TRUE为重起,设为FALSE为关机 if(!fResult) { MessageBox((LPCTSTR)"InitiateSystemShutdown failed."); } tkp.Privileges[0].Attributes = 0; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0); if (GetLastError() != ERROR_SUCCESS) { MessageBox((LPCTSTR)"AdjustTokenPrivileges disable failed."); } ExitWindowsEx(EWX_SHUTDOWN,0); http://www.docin.com/p-1051980.html这儿有,但是,看起来比较痛苦! 笨方法,再开小个程序,由这个小程序重启大程序,大程序重启成功后再Kill小的俺也没试过.... 网络编程问题? 一个MFC程序员的苦恼,牛人指点下... 救救我吧,如何在程序中控制读取扫描仪? 请问COM dll和exe有什么不同? 看看这个问题好吗 MFC初级问题+送分~~~~ 那位高人给我一个简单的COM编程入门级的源代码例子 在PropertyPage中再产生一个对话框 请问:写VC的单位多吗?VC程序员需求量大吗?写VC前景怎样呢?? 关于一个十六进制数编辑框的Active控件的问题,欢迎各位大虾指教 程序如何实现自重启? 关于real g2 控件编程的报link 2019错误问题
if( (savetime.nhour ==tmpTime.GetHour()) && (savetime.nmin == savetime.nmin))
{
KillTimer(1); if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
MessageBox((LPCTSTR)"OpenProcessToken failed!");
} LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid); //获得本地机唯一的标识
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0); //调整获得的权限 if (GetLastError() != ERROR_SUCCESS)
{
MessageBox((LPCTSTR)"AdjustTokenPrivileges enable failed!");
} fResult =InitiateSystemShutdown(
NULL, // 要关的计算机用户名
(LPWSTR)"由于系统不稳定,WINDOWS将在上面的时间内关机,请做好保存工作!", // 显示的消息
10, // 关机所需的时间
TRUE, // ask user to close apps
FALSE); //设为TRUE为重起,设为FALSE为关机
if(!fResult)
{
MessageBox((LPCTSTR)"InitiateSystemShutdown failed.");
} tkp.Privileges[0].Attributes = 0;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0); if (GetLastError() != ERROR_SUCCESS)
{
MessageBox((LPCTSTR)"AdjustTokenPrivileges disable failed.");
} ExitWindowsEx(EWX_SHUTDOWN,0);
这儿有,但是,看起来比较痛苦!