c++关机,怎么关LAN中的机器。
//ShutDown.cpp
#include "stdafx.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[]){
TOKEN_PRIVILEGES tkp;
HANDLE hToken;
if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
//MessageBox("OpenProcessToken failed!");
cout<<"OpenProcessToken failed!";
}
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("AdjustTokenPrivileges enable failed!");
cout<<"AdjustTokenPrivileges enable failed!";
}
BOOL fResult =InitiateSystemShutdown(
NULL, // 要关的计算机用户名,可在局域网网中关掉对方的机器,NULL表示关本机
"由于系统不稳定,WINDOWS将在上面的时间内关机,请做好保存工作!", // 显示的消息
10, // 关机所需的时间
TRUE,
TRUE); //设为TRUE为重起,设为FALSE为关机
if(!fResult)
{
//MessageBox("InitiateSystemShutdown failed.");
cout<<"InitiateSystemShutdown failed.";
}
tkp.Privileges[0].Attributes = 0;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES) NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
{
//MessageBox("AdjustTokenPrivileges disable failed.");
cout<<"AdjustTokenPrivileges disable failed.";
}
ExitWindowsEx(EWX_SHUTDOWN,0); //开始关机
return 0;
}
以上程序可以关机,但怎么关LAN中的指定机器?
谢谢!