Windows关机程序
本帖最后由 康小泡 于 2016-1-29 16:56 编辑Windows关机程序
使用:
1. 复制可执行文件快捷方式
2.在CmdShell下执行
#include <TCHAR.H>
#include <Windows.h>
#define EWX_FORCEIFHUNG 0x00000010
BOOL EnableShutDownPriv();
BOOL ReSetWindows(DWORD dwFlags, BOOL bForce);
int WINAPI WinMain(HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance,// handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow) // show state
{
if (_tcscmp(lpCmdLine, ("/r")) == 0)
{
ReSetWindows(EWX_REBOOT, FALSE);
}
else if (_tcscmp(lpCmdLine, ("/s")) == 0)
{
ReSetWindows(EWX_SHUTDOWN, FALSE);
}
else if (_tcscmp(lpCmdLine, ("/l")) == 0)
{
ReSetWindows(EWX_LOGOFF, FALSE);
}
return 0;
}
BOOL EnableShutDownPriv()
{
HANDLE hToken = NULL;
TOKEN_PRIVILEGES tkp = {0};
//
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
return FALSE;
}
//
if (!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges.Luid))
{
CloseHandle(hToken);
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges.Attributes = SE_PRIVILEGE_ENABLED;
//
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL))
{
CloseHandle(hToken);
return FALSE;
}
return TRUE;
}
BOOL ReSetWindows(DWORD dwFlags, BOOL bForce)
{
// Check the parameter
if (dwFlags != EWX_LOGOFF && dwFlags != EWX_REBOOT && dwFlags != EWX_SHUTDOWN)
{
return FALSE;
}
// Get the operation system version
OSVERSIONINFO osvi = {0};
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
if (!GetVersionEx(&osvi))
{
return FALSE;
}
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
EnableShutDownPriv();
}
if (bForce != FALSE)
{
dwFlags = dwFlags | EWX_FORCE;
}
else
{
dwFlags = dwFlags | EWX_FORCEIFHUNG;
}
return ExitWindowsEx(dwFlags, 0);
}
谢谢分享。{:10_256:} 有点小收获。 康小泡 发表于 2016-1-29 17:08
谢谢分享。 有点小收获。
你在成都360还是北京360,到时候说不定做同事呢。 狂潮丶 发表于 2016-1-30 23:52
你在成都360还是北京360,到时候说不定做同事呢。
北京哇,真的哇? 康小泡 发表于 2016-1-31 10:07
北京哇,真的哇?
只是有可能 。 狂潮丶 发表于 2016-1-31 17:29
只是有可能 。
{:10_250:}如果你要来记得和我联系啊。你是这里毕业吗? 康小泡 发表于 2016-1-31 21:26
如果你要来记得和我联系啊。你是这里毕业吗?
好的,如果我来的话,我会联系你的。
页:
[1]