![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перезагрузка
Ламер 2.Х © (2007-05-05 15:59:00)Здравствуйте! Подскажите пожалуйста команду на перезагрузку компа в Windows и на смену пользователей, чтобы не требовалось подтверждения со стороны пользователя.
DVM (2007-05-05 17:12:00) [1]
> Этого будет достаточно
BOOL MySystemShutdown()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );
// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,
SHTDN_REASON_MAJOR_OPERATINGSYSTEM |
SHTDN_REASON_MINOR_UPDATE |
SHTDN_REASON_FLAG_PLANNED))
return FALSE;
return TRUE;
}
Ламер 2.Х (2007-05-05 17:10:00) [2]
> в недостатке привелегий
Этого будет достаточно
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege';
иль нет?
TIF (2007-05-05 17:02:00) [3]Можно вопросик?
А как программно выполнить смену пользователей в ХР? Я имею в виду комбинацию Win+L
?
Буду очень благодарен
DVM (2007-05-05 16:54:00) [4]
> В чем может быть дело?
в недостатке привелегий
Ламер 2.Х (2007-05-05 16:45:00) [5]Еще такой вопрос почему данная функция работает только с таким параметорм ExitWindowsEx(EWX_LOGOFF or ewx_force,0);
А так ну ни в какую
//ExitWindowsEx(EWX_SHUTDOWN or ewx_force,0);
//ExitWindowsEx(EWX_REBOOT or ewx_force,0);
В чем может быть дело?
Ламер 2.Х (2007-05-05 16:16:00) [6]Спасибо;
DVM (2007-05-05 16:01:00) [7]ExitWindowEX()