void WinShutdown(UINT ShutdownFlag)
{
OSVERSIONINFO oi;
oi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&oi); if (oi.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
HANDLE handle;
TOKEN_PRIVILEGES tkp; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &handle);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(handle, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES)NULL, 0);
} ::ExitWindowsEx(ShutdownFlag,0);}在win2000server下能关机,只是报错cmd.exe,请问何故? 请指教! 谢谢!
{
OSVERSIONINFO oi;
oi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&oi); if (oi.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
HANDLE handle;
TOKEN_PRIVILEGES tkp; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &handle);
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid); tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(handle, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES)NULL, 0);
} ::ExitWindowsEx(ShutdownFlag,0);}在win2000server下能关机,只是报错cmd.exe,请问何故? 请指教! 谢谢!
解决方案 »
- 基于对话框的应用程序 这里的“对话框”是模态还是非模态的?
- 诡异用CPPTOOLTIPS但是还有VC自带的TIPS怎么去掉啊
- vc 读取excel的一个问题
- 好不容易5个裤衩了,散分!
- 求救,在弹出式右键菜单中加入位图.
- 请问:在VC7的 mfc工程中,用msxml4.dll来如何实现写xml文件中结点的属性,及一些让人一头雾水的问题。
- 寻求《VC++数字图像处理》电子版和光盘源码,作者:周长发。送分~!!还有其他问题另送高分
- 怎样对第一级菜单进行自画???送1000分!!!
- 请vc++编程高手赐教
- HOOK 是怎么回事?
- 有关TCP的断线和重连问题
- "多媒体音频控制器"加了黄色问号,它是什么东西?需要什么样的驱动?
static TOKEN_PRIVILEGES tp;
static LUID luid;
::OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken ) ;
::LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME, &luid );
tp.PrivilegeCount = 1;
tp.Privileges[0].Luid = luid;
tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
::AdjustTokenPrivileges( hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL );
::ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);