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

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

Как в XP выключить комп??? [D7, WinXP]


beetlehead ©   (2004-07-04 17:33:00) 

Вопрос в принципе вот в чем. Если использовать ExitWindowsEx, то происходит просто завершение сеанса. Думаю дело в том, чтобы поднять приоритет. Пишу следующее:

procedure ShutdownMyBestLovedComp;
var   hToken,p,o: cardinal;
    tkp: TOKEN_PRIVILEGES;
    SE_SHUTDOWN_NAME:PAnsiChar;
begin
  OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
  LookupPrivilegeValue(NIL, SE_SHUTDOWN_NAME,tkp.Privileges[0].Luid);

  p:=0;  o:=0;
  tkp.PrivilegeCount:=1;
  tkp.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED;
  AdjustTokenPrivileges(hToken,false,tkp,p,PTokenPrivileges(0),o);

  ExitWindowsEx(EWX_POWEROFF,0);
end;

Просто этот код переписывал из сишного. Возникает проблемма со строчкой AdjustTokenPrivileges(hToken,false,tkp,p,PTokenPrivileges(0),o);
Еррора такая, что компилятор не знает какую из перезагруженных версий загружать по введенным параметрам.
В С++ все пахало, а здесь не хотит. Вся проблемма в этой строчке.
P.S. Если просто оставить одну строчку ExitWindowsEx(EWX_POWEROFF,0) и изменить в свойствах проги, на эмуляцию 98 винды, то комп выключается с сообщением "ТЕПЕРЬ ПИТАНИЕ КОМПЬЮТЕРА МОЖНО ВЫКЛЮЧИТЬ"
Заранее спасибо всем кто откликнулся, если таковые будут :)


KADAN   (2004-07-09 13:37:00) [1]

FAQ


Anatoly Podgoretsky   (2004-07-09 13:31:00) [2]

Sairex   (09.07.04 11:53) [3]
И ты естественно пробовал это выполнить!


Sairex   (2004-07-09 11:53:00) [3]

Не только есть еще проще выход :)))
windows.ExitWindowsEx(EWX_POWEROFF,EWX_SHUTDOWN);
Заставляет вырубить комп.


beetlehead   (2004-07-04 17:46:00) [4]

Гениально!!!


NikotiN   (2004-07-04 17:39:00) [5]

Пуск\выполнить\shutdown -s -t 10


Наверх

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