![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в XP перезагрузить комп??? [D7, WinXP]
CAHEK © (2004-04-10 21:16:00)Hello всем,у меня есть вопрос:Как в XP перезагрузить комп???
(Продовал много разных спосодов-и НЕПРЁТ!).
AndersoNRules (2004-04-14 16:19:00) [1]a shtob App otvechala na WM_QUERYENDSESSION:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1081879825&n=5
AndersoNRules (2004-04-14 16:16:00) [2]Ato dlya tovo shtob vikliuchiti komp.
nu ti sam preobrazuyeshi, da?
Voila:
program Win_OFF;
uses
windows;
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; // one privelege to set
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0); end;
end.
TUser (2004-04-14 10:46:00) [3]AdjustTokenPrivileges
Kind (2004-04-14 00:28:00) [4]А вообще Floppy написал
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1081868205&n=2
Kind (2004-04-14 00:25:00) [5]В XP нужно сначала получить "разрешение" на то, чтобы выключить или перезагрузить комп. Называется это всё Привилегии, конкретно твоя SeShutdownPrivilege
Как сделать это в Делпфи был у меня примерчик, но потерял ... пришлось написать библиотеку в C++ и подключать её к программе на Делпфи. Если ничего не найдёшь пиши
CAHEK (2004-04-14 00:05:00) [6]КАК???
Dimaxx (2004-04-13 22:28:00) [7]Перехватить его!
CAHEK (2004-04-13 20:31:00) [8]Эй типа кто-нибудь:как сделать чтобы прога отвечала на WM_QUERYENDSESSION
CAHEK (2004-04-12 00:05:00) [9]Порносайтов в сети больше всего:)
Как раз такой способ я и пробовал:
"ExitWindowsex(EWX_REBOOT or EWX_FORCE,0);"
На счет WM_QUERYENDSESSION:Нет не отвечает,а как сделать чтобы отвечала?
Dimaxx (2004-04-11 23:26:00) [10]Мона еще попробовать добавить так: ExitWindowsex(EWX_REBOOT or EWX_FORCE,0);
AndersoNRules (2004-04-11 22:52:00) [11]kstati a mojet trouble ne v prozzedure perezagruzki. Tvoya programa otvechyaet na WM_QUERYENDSESSION ? esli net to ona ne budet znati shto ey nado zakrivazza, znachit WinXP ne perezagruzizza----u menya tochno tak ne delaet.
alexsandri (2004-04-11 22:38:00) [12]есть еще один тупой способ презагрузить
Usage: shutdown [-i | -l | -s | -r | -a] [-f] [-m \computername] [-t xx] [-c "comment"] [-d up:xx:yy]
тупо но работает как использовать вроде понятно стнадартная команда сиситемы
DrPass (2004-04-11 21:32:00) [13]Написать можно. Но суть в том, что сначала нужно учиться искать информацию, а уже потом - программировать. Тем более что материалов по твоей теме в инете больше, чем порносайтов
CAHEK (2004-04-11 20:37:00) [14]А чтобы долго не искать,нельзя ли написать???
DrPass (2004-04-11 12:15:00) [15]
> Продовал много разных спосодов-и НЕПРЁТ!).
> такой:ExitWindowsex(EWX_REBOOT,0);
> И еще такой же,только там OR было.
:-))))
Все верно. Только для WindowsXP нужна еще одна вещь. Найдешь - будешь молодцом.
CAHEK (2004-04-11 01:40:00) [16]такой:ExitWindowsex(EWX_REBOOT,0);
И еще такой же,только там ORбыло.
И др API ф-ю для завершения работы с системой:ExitWindows();
Результат:при компиляции не выдает ERROR'ов,но и ни чего не делает!
Dimaxx (2004-04-10 23:08:00) [17]Какие способы пробовал?
DrPass (2004-04-10 22:24:00) [18]>САНЕК
Попробуй еще. Наверняка попрет (этот вопрос всем уже натошнил задолго до появления ХР)
>uny
Ты, очевидно, и Windows недавно увидел? :)
uny (2004-04-10 21:46:00) [19]а комп новый? нам тут завезли, так нажимаешь на передней панели, а эффект такой будто "пуск завершение работы выключение"