BOOL shutdownHost(LPCTSTR ip)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
BOOL fResult;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
MessageBox(NULL, "OpenProcessToken failed.", "", NULL);
LookupPrivilegeValue((TCHAR *)ip, 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)
{
ShowError(); // 显示我没有权限 问怎么得到
}fResult = InitiateSystemShutdown((TCHAR *)ip, "Click on the main window and press the Escape key to cancel shutdown.", 1, FALSE, FALSE); if (GetLastError() != ERROR_SUCCESS)
{
ShowError();
}
return TRUE;
}
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
BOOL fResult;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
MessageBox(NULL, "OpenProcessToken failed.", "", NULL);
LookupPrivilegeValue((TCHAR *)ip, 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)
{
ShowError(); // 显示我没有权限 问怎么得到
}fResult = InitiateSystemShutdown((TCHAR *)ip, "Click on the main window and press the Escape key to cancel shutdown.", 1, FALSE, FALSE); if (GetLastError() != ERROR_SUCCESS)
{
ShowError();
}
return TRUE;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货