Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2008, 12:40   #1
prog38
Пользователь
 
Аватар для prog38
 
Регистрация: 18.04.2008
Сообщений: 67
По умолчанию Выключение ПК с помощью checkBox

Уважаемые! Может кто подскажет почему у меня не работает выключение компа? Код такой:

Код:
     if CheckBox3.Checked=true then
     ExitWindowsEx(EWX_ShutDown,0);
     end;
prog38 вне форума Ответить с цитированием
Старый 08.08.2008, 12:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

потому что тебе нужно получить привелегии на такую операцию
Рули поиском по ExitWindowsEx на форуме - уже обсуждалось
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.08.2008, 12:58   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Аналогичная тема, только про перезагрузку:
http://www.programmersforum.ru/showthread.php?t=24248#7
Нужны соответствующие привилегии.
Arigato вне форума Ответить с цитированием
Старый 08.08.2008, 13:18   #4
prog38
Пользователь
 
Аватар для prog38
 
Регистрация: 18.04.2008
Сообщений: 67
По умолчанию

Уже смотрю по форуму, спасибо...
prog38 вне форума Ответить с цитированием
Старый 08.08.2008, 18:51   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

prog38, можете сделать так:

Код:
Procedure ShutDown;
Var
HToken: THandle;
Tkp: TTokenPrivileges;
ReturnLength: Cardinal;
Begin
If OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or
TOKEN_QUERY, HToken) Then
Begin
LookupPrivilegeValue(Nil, 'SeShutdownPrivilege', Tkp.Privileges[0].Luid);
Tkp.PrivilegeCount:=1;
Tkp.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED;
If AdjustTokenPrivileges(HToken, False, Tkp, 0, Nil, ReturnLength) Then
ExitWindowsEx(EWX_ShutDown, 0);
End;
End;
...
if CheckBox3.Checked=true then  
ShutDown; 
end;  
...
Всегда рад помочь!

Последний раз редактировалось Terran; 08.08.2008 в 18:55.
Terran вне форума Ответить с цитированием
Старый 09.08.2008, 06:30   #6
prog38
Пользователь
 
Аватар для prog38
 
Регистрация: 18.04.2008
Сообщений: 67
По умолчанию

Еще вчера нашла такой код на форуме, но все равно спасибо, Terran))
Правда, ругался сначала, типа -unsatisfied forward or external declaration TForm1.ShutDown. Пришлось извратиться немного добавила на форму кнопку сделал а невидимой и процедуру ShutDown заменила на батонКлик Изврат наверное, но работает))))
prog38 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CheckBox - глупый вопрос JRcoker Общие вопросы Delphi 3 17.08.2008 21:51
CheckBox zzzzz Компоненты Delphi 6 22.07.2008 12:35
ListView и встроенный CheckBox dsoft Win Api 0 25.06.2008 00:29
Снять галочку с CheckBox RIO Общие вопросы .NET 3 04.05.2008 22:39
Включение-выключение компьютера с помощью Delphi BLACK_KOT Помощь студентам 6 01.05.2007 09:55