InitiateSystemShutdown
скиньте, плиз кусочек исходничка, было бы здорово! :-)
как с помощью InitiateSystemShutdown выключить машину в локалке? вроде бы делаю все, как рекомендуется в MSDN, но ничего не работает(((
скиньте, плиз кусочек исходничка, было бы здорово! :-)
Для этого тебе надо обладать правами администратора.
Для этого тебе надо обладать правами администратора.
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return FALSE;
LookupPrivilegeValue(NULL, SE_REMOTE_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)
{
if(!InitiateSystemShutdown(
"MVX",
"12345",
30,
FALSE,
TRUE))
if (GetLastError() != ERROR_SUCCESS) MessageBox(0, "error!", "", MB_OK);
}
У меня InitiateSystemShutdown возвращает NULL, а GetLastError() возвращает ERROR_SUCCESS! ошибка была, и ее не было! или я чего-то не понимаю (((
У меня InitiateSystemShutdown возвращает NULL, а GetLastError() возвращает ERROR_SUCCESS! ошибка была, и ее не было! или я чего-то не понимаю (((
SE_REMOTE_SHUTDOWN_NAME нужно устанавливать не на твоей, а на удалённой машине.
SE_REMOTE_SHUTDOWN_NAME нужно устанавливать не на твоей, а на удалённой машине.
Может конечно я чего-то не понимаю, если бы не одно НО...
сеть, в ней две машины... я со своей запускаю утилитку shutdown.exe из Виндовс - она срабатывает... Пробовал и LanShutdown - тоже работает! Тут же запускаю мою прогу, текст которой приведен выше, и - FAIL! просто ужас, неужели придется смотреть в отладчике, что да как, в какой последовательности вызывается?