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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 16:11   #1
Vold.khv
 
Регистрация: 22.01.2010
Сообщений: 7
По умолчанию object pascal; код программы выключающей комп в заданное время

Решил сделать прогу выключающую комп в заданное время.
На форме пара лейблов, кнопка, и вот требуется задействовать команду\процедуру которая будет корректно завершать работу компа с завершением всех процесов и прочее... ну как обычное выключение.
На прасторах инета нашел такую процедеру
Код:
procedure ShutdownComputer;
var
  ph: THandle;
  tp, prevst: TTokenPrivileges;
  rl: DWORD;
begin
   OpenProcessToken( GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph );
   LookupPrivilegeValue( nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid );
   tp.PrivilegeCount := 1;
   tp.Privileges[0].Attributes := 2;
   AdjustTokenPrivileges( ph, FALSE, tp, SizeOf( prevst ), prevst, rl );
   ExitWindowsEx( EWX_SHUTDOWN or EWX_POWEROFF, 0 );
end;
Хочу узнать насколько она корректно завершает работу компа и можно ли ее использовать в написании мною желаемого кода!?
Со всем остальным думаю справлюсь, заранее спс =)

Последний раз редактировалось Stilet; 22.01.2010 в 16:23.
Vold.khv вне форума Ответить с цитированием
Старый 22.01.2010, 16:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Хочу узнать насколько она корректно завершает работу компа
Тупо вырубает все программы принудительно. При этом могут быть потери данных.

Кстати в object pascal этот код работать не будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2010, 17:16   #3
Vold.khv
 
Регистрация: 22.01.2010
Сообщений: 7
По умолчанию

Цитата:
Кстати в object pascal этот код работать не будет.
проверил - работает...
проверял в дельфи7

Цитата:
Тупо вырубает все программы принудительно. При этом могут быть потери данных.
а как нибудь ее улучшить\исправить можно? или мб есть альтернативные варианты?
(в голове крутится одна: SendMessage(FindWindow('Progman','P rogram Manager'),WM_CLOSE, 0, 0) - вызваем окно завершения работы и нужно дописать, по возможности, еще команду "онклик" на кнопку завершения работы )
Vold.khv вне форума Ответить с цитированием
Старый 25.01.2010, 07:27   #4
Vold.khv
 
Регистрация: 22.01.2010
Сообщений: 7
По умолчанию

-------------------------------up-----------------------------
Vold.khv вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод изображений из папки через заданное время в секундах на PHP сайте Killer_djon JavaScript, Ajax 15 18.01.2013 07:19
Перевод кода из Pascal в Object Pascal zemskov77 Общие вопросы Delphi 1 03.01.2009 09:37
Выполнение действия в заданное время WOWan234 Помощь студентам 6 02.05.2007 01:52