论坛首页 入门技术论坛

关机重启程序小例子

浏览 3010 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-10-22   最后修改:2010-10-22

搜了个关机小例子,拿来调试一下。

 

HANDLE hToken;
TOKEN_PRIVILEGES tkp;

if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken)) {
	AfxMessageBox("无法打开存取命令");
}

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) {
	AfxMessageBox("无法关机");
}
//以上是取得当前用户的Token后,利用这个Token来取得权限才可以执行关机操作

//关机函数
if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0)) {
	AfxMessageBox("无法关机");
}

 

运行即关机。。

 

重启程序同理,只是关机函数参数不同

 

if(!ExitWindowsEx(EWX_REBOOT,0)) {
	AfxMessageBox("无法重启");
}

 

运行即重启

   发表时间:2010-11-05  
看起来似乎仿佛好像不是linux上能运行的
0 请登录后投票
   发表时间:2010-11-05  
freish 写道
看起来似乎仿佛好像不是linux上能运行的


恩 全都是windows的api
0 请登录后投票
   发表时间:2010-11-06  
这种东西用WMI就好了,鼓捣win32 api做什么。。。
0 请登录后投票
   发表时间:2010-11-07  
来瞄瞄~
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics