Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ExitWindowsEx(EWX_SHUTDOWN,0);


Автор: Sergio 31.7.2006, 23:56
Хочу выключить кппьютер при нажатии кнопки

Прписал 

ExitWindowsEx(EWX_SHUTDOWN,0);

Оно копилит но не выключаэт. В чём проблема?

EWX_LOGOFF ---работает 

Автор: 586 1.8.2006, 00:14
прав не хватает
Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 HANDLE ht;
 TOKEN_PRIVILEGES tp;
 OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &ht);
 LookupPrivilegeValue(0, "SeShutdownPrivilege", &(tp.Privileges[0].Luid));
 tp.PrivilegeCount=1;
 tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(ht, 0, &tp, 0, 0, 0);
 ExitWindowsEx(EWX_SHUTDOWN,0);
}
  

Автор: Sergio 3.8.2006, 17:10
А как выключить компютер без сохранения даных (если включена игры и.т.д.)

Автор: DemoCode 3.8.2006, 17:32
Цитата(Sergio @  3.8.2006,  18:10 Найти цитируемый пост)
А как выключить компютер без сохранения даных (если включена игры и.т.д.) 

Добавить флаг EWX_FORCE

Автор: Sergio 3.8.2006, 17:39
А как именно прописпть ? Вот так?
Цитата(586 @  1.8.2006,  00:14 Найти цитируемый пост)
void __fastcall TForm1::Button1Click(TObject *Sender){ HANDLE ht; TOKEN_PRIVILEGES tp; OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &ht); LookupPrivilegeValue(0, "SeShutdownPrivilege", &(tp.Privileges[0].Luid)); tp.PrivilegeCount=1; tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(ht, 0, &tp, 0, 0, 0); ExitWindowsEx(EWX_SHUTDOWN,0);}


Добавлено @ 17:41 
Вот так нужно прописать?

void __fastcall TForm1::Button1Click(TObject *Sender)
    
{
    
 HANDLE ht;
    
 TOKEN_PRIVILEGES tp;
    
 OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &ht);
    
 LookupPrivilegeValue(0, "SeShutdownPrivilege", &(tp.Privileges[0].Luid));
    
 tp.PrivilegeCount=1;
    
 tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
    
 AdjustTokenPrivileges(ht, 0, &tp, 0, 0, 0);
    
 ExitWindowsEx(EWX_EWX_FORCE, 0);
    
}

Автор: DemoCode 3.8.2006, 17:49
Код

ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);

Автор: Link90 4.8.2006, 15:57
А ещё можно запустить системную утилиту с shutdown.exe параметром -s
Код

system("shutdown.exe -s");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)