实现关机注销重启函数
2012-07-06 16:20
302 查看
void PowerOff()//关机
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
DWORD dwVersion;
dwVersion = GetVersion(); // 得到WINDOWS NT或Win32的版本号
if(dwVersion < 0x80000000) // 用于判断WIN系列,从而设置相应的权限
{
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
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);
ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
}
else
{
ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN, 0);
}
}
void ExitUser()//注销
{
ExitWindows(0, 0);
}
void ReStart()//重新启动
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
DWORD dwVersion;
dwVersion = GetVersion(); // 得到WINDOWS NT或Win32的版本号
if(dwVersion < 0x80000000) // 用于判断WIN系列,从而设置相应的权限
{
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
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);
ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0);
}
else
{
ExitWindowsEx(EWX_REBOOT | EWX_SHUTDOWN, 0);
}
}
再加上头文件
#include<MMsystem.h>
#include <afxdlgs.h>
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
DWORD dwVersion;
dwVersion = GetVersion(); // 得到WINDOWS NT或Win32的版本号
if(dwVersion < 0x80000000) // 用于判断WIN系列,从而设置相应的权限
{
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
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);
ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
}
else
{
ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN, 0);
}
}
void ExitUser()//注销
{
ExitWindows(0, 0);
}
void ReStart()//重新启动
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
DWORD dwVersion;
dwVersion = GetVersion(); // 得到WINDOWS NT或Win32的版本号
if(dwVersion < 0x80000000) // 用于判断WIN系列,从而设置相应的权限
{
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
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);
ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0);
}
else
{
ExitWindowsEx(EWX_REBOOT | EWX_SHUTDOWN, 0);
}
}
再加上头文件
#include<MMsystem.h>
#include <afxdlgs.h>
相关文章推荐
- 在c#中怎么调用ExitWindowsEx函数实现XP的关机、注销、重启操作?
- C#实现关机重启及注销实例代码
- C#利用Windows API 实现关机、注销、重启等操作
- golang 调用win32 api 实现windows注销、重启、关机
- C#实现关机、重启、注销功能 2009-2-20
- C# 实现系统关机、注销、重启、休眠、挂起
- MFC中定时关机、重启、注销的实现
- C# 实现注销、关机、重启电脑功能
- 关机,注销,重启函数:ExitWindowsEx
- C#实现PC关机,注销,重启
- 简单实现windows系统普通或强制关机重启注销的功能
- 关机、注销、重启的C++实现 2011.04.22
- 如何用VC实现系统关机、重启、注销
- C#实现注销、重启和关机代码
- C# 实现系统关机、注销、重启、休眠、挂起
- C++ 实现系统注销,重启,关机的方法
- C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠
- C# 实现关机 重启 注销等操作
- c# 中 控制电脑的 待机 关机 注销 重启 等操作的实现
- 关机和重启在Linux Kernel中的哪些函数里实现?