11. FAQ o Win API |
Q> As зашутдаунить the remote computer?
A>
int main (int argc, char ** argv)
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
//-------------------
char *name = "";//address of name of computer to shut down
char *msg = "";//address of message to display in dialog box
DWORD time=0;//time to display dialog box
bool force=true;//force applications with unsaved changes flag
bool reboot=true;//reboot flag
//---------------------------------------------------------------------
OpenProcessToken (GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
&hToken);
if (! LookupPrivilegeValue (name, SE_SHUTDOWN_NAME,&tkp.Privileges [0].Luid)) {
printf ("SE_SHUTDOWN_NAME Privilege a regional ohm \n");
return 1;};
tkp. PrivilegeCount =1;
tkp. Privileges [0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges (hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0);
if (! LookupPrivilegeValue (name,
SE_REMOTE_SHUTDOWN_NAME,&tkp.Privileges [0].Luid)) {
printf ("SE_REMOTE_SHUTDOWN_NAME Privilege a regional ohm \n");
return 2;};
tkp. PrivilegeCount =1;
tkp. Privileges [0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges (hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0);
if (InitiateSystemShutdown (name, msg, time, force, reboot))
printf ("%s shutdown Ok\n", name);
else printf ("Can't shutdown %s \n", name);
return 0;
}
|
2000 (c) DM