windows编程几个小例子(四)
2010-11-12 16:05
176 查看
例子5:关机操作:
OSVERSIONINFO OsInfo; //获取操作系统的版本信息
OsInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&OsInfo);
TOKEN_PRIVILEGES tkp;
HANDLE hToken;
if(OsInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
{
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY
,&hToken))
{
MessageBox("获取进程句柄失败!");
return ;
}
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("修改权限失败!");
return ;
}
if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0)) //关机函数
{
MessageBox("无法关机!");
}
}
把上面的ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0)改为ExitWindowsEx(EWX_REBOOT,0)就变为重启函数了
OSVERSIONINFO OsInfo; //获取操作系统的版本信息
OsInfo.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&OsInfo);
TOKEN_PRIVILEGES tkp;
HANDLE hToken;
if(OsInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
{
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY
,&hToken))
{
MessageBox("获取进程句柄失败!");
return ;
}
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("修改权限失败!");
return ;
}
if(!ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0)) //关机函数
{
MessageBox("无法关机!");
}
}
把上面的ExitWindowsEx(EWX_POWEROFF|EWX_FORCE,0)改为ExitWindowsEx(EWX_REBOOT,0)就变为重启函数了
相关文章推荐
- windows编程几个小例子(一)
- windows编程几个小例子(二)
- windows编程几个小例子(三)
- windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。
- 几个令刚学会控制台转到Windows界面编程疑惑的变量
- Windows下C语言的Socket编程例子(TCP和UDP)
- [12]Windows PowerShell DSC学习系列---PowerShell DSC的几个例子
- C编程之memcpy函数详解(附带几个例子)
- Windows下C语言的Socket编程例子(TCP和UDP)
- Windows 游戏编程大师技巧第四章第4个例子
- Windows 游戏编程大师技巧第四章第9个例子
- *Linux Shell 高级编程技巧4----几个常用的shell脚本例子
- Windows 窗体编程 如何:使用后台线程搜索文件 (线程经典例子)
- [C++] Windows下的socket编程(这是一个简单的TCP/IP例子)
- windows 串口编程例子
- 第二部分 Linux Shell高级编程技巧——第四章 几个脚本例子——终结篇
- 几个Java编程的典型例子
- Windows 窗体编程 演练:本地化 Windows 窗体 (本地化经典例子)
- Windows下C语言的Socket编程例子(TCP和UDP)
- Windows 游戏编程大师技巧第四章第6个例子---定时器的使用