Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перезагрузка


Ламер 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()


Наверх

Титульная страница Поиск, карта сайта Написать письмо