实现定时关机 我是个vc初学者。想实现定时关机功能(win200,winxp)下,不知道改怎么办。请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 rundll ***.dll SHUTDOWNWINDOWS具体那个DLL不记得了,你可以试一下看看 msdn帮助里有一段示例代码,给一段代码给你参考: SYSTEMTIME systime; GetLocalTime(&systime); if(begin && (m_ShutDate_TimeType.wYear==systime.wYear) && (m_ShutDate_TimeType.wMonth==systime.wMonth) && (m_ShutDate_TimeType.wDay==systime.wDay) && (m_ShutTime_TimeType.wHour==systime.wHour) && (m_ShutTime_TimeType.wMinute==systime.wMinute)) { KillTimer(10); /////////首先声明3个全局变量///////////BOOL fResult;TOKEN_PRIVILEGES tkp;HANDLE hToken; if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { MessageBox("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("AdjustTokenPrivileges enable failed!"); } fResult =InitiateSystemShutdown( NULL, // 要关的计算机用户名 "WINDOWS将在上面的时间内关机,请做好保存工作!", // 显示的消息 10, // 关机所需的时间 TRUE, // ask user to close apps TRUE); //设为TRUE为重起,设为FALSE为关机 if(!fResult) { MessageBox("InitiateSystemShutdown failed."); } tkp.Privileges[0].Attributes = 0; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0); if (GetLastError() != ERROR_SUCCESS) { MessageBox("AdjustTokenPrivileges disable failed."); } // ExitWindowsEx(EWX_SHUTDOWN,0); ExitWindowsEx(EWX_POWEROFF,0); } VC中用什么方法成员变量可以实现全局变量的功能 有经验的请来帮个忙,没有经验请来捧个场,小弟感激涕零!! vc++中判断字符串中是否有全角数字! 如何改变list控件显示内容的字体呢? ado中Fields对象怎么用? 请教Directshow filter设计的一个问题 为什么我的CComboBox不能进行选择? 哪位可以给我一份关于mapx在vc中使用的中文开发文档 问一个笨笨的问题,但好像没有书说过这个问题的 关于动态控件,这样响应消息? 我找了一个滚动文本图像的控件,但是为什么显示不了汉字?? 请问如何在gdi+中使用资源呢
具体那个DLL不记得了,你可以试一下看看
SYSTEMTIME systime;
GetLocalTime(&systime);
if(begin && (m_ShutDate_TimeType.wYear==systime.wYear) &&
(m_ShutDate_TimeType.wMonth==systime.wMonth) &&
(m_ShutDate_TimeType.wDay==systime.wDay) &&
(m_ShutTime_TimeType.wHour==systime.wHour) &&
(m_ShutTime_TimeType.wMinute==systime.wMinute)) {
KillTimer(10);
/////////首先声明3个全局变量///////////BOOL fResult;TOKEN_PRIVILEGES tkp;HANDLE hToken;
if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
MessageBox("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("AdjustTokenPrivileges enable failed!");
} fResult =InitiateSystemShutdown(
NULL, // 要关的计算机用户名
"WINDOWS将在上面的时间内关机,请做好保存工作!", // 显示的消息
10, // 关机所需的时间
TRUE, // ask user to close apps
TRUE); //设为TRUE为重起,设为FALSE为关机
if(!fResult)
{
MessageBox("InitiateSystemShutdown failed.");
} tkp.Privileges[0].Attributes = 0;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0); if (GetLastError() != ERROR_SUCCESS)
{
MessageBox("AdjustTokenPrivileges disable failed.");
} // ExitWindowsEx(EWX_SHUTDOWN,0);
ExitWindowsEx(EWX_POWEROFF,0);
}