Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
ВнизПерезагрузка Найти похожие ветки
← →
Daedr (2007-08-16 16:28) [0]Подскажити, как перезагрузить комп при выполнении условия "ProgressBar1.Position=ProgressBar1.max"?
← →
Ega23 © (2007-08-16 16:30) [1]Также, как и при условии Label1.caption="RTFM"
← →
Anatoly Podgoretsky © (2007-08-16 16:41) [2]> Daedr (16.08.2007 16:28:00) [0]
Ко мне на сайт
← →
Сергей М. © (2007-08-16 16:46) [3]Ну и нахрен мне надо, чтобы какой-то там Daedr перезагружал мой комп, когда у этого самого Daedr"а приключился катаклизм вида "ProgressBar1.Position=ProgressBar1.max" ?)
← →
Юрий Зотов © (2007-08-16 17:04) [4]> Сергей М. © (16.08.07 16:46) [3]
Это он делает диалог типа "компьютер будет перезагружен через N секунд". Например, для инсталлятора.
← →
DevilDevil © (2007-08-16 17:12) [5]перезагрузка - ладно... а как выключить, кто-нибудь знает?
← →
Ega23 © (2007-08-16 17:14) [6]
> перезагрузка - ладно... а как выключить, кто-нибудь знает?ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0);
?
← →
Юрий Зотов © (2007-08-16 17:15) [7]> DevilDevil © (16.08.07 17:12) [5]
Насколько помню, так же, только флаг другой указывается.
← →
Ega23 © (2007-08-16 17:16) [8]Точнее, вот такой код был для аварийного завершения при определённом уровне зарядки батарей:
function TStandartUPS.ShutdownOS: Boolean;
const
SE_SHUTDOWN_NAME="SeShutdownPrivilege";
var
hToken: THandle;
tkpNew, tkpPrevious: TTokenPrivileges;
iLength: Cardinal;
begin
Result:=False;
// Получаем токен процесса
if not OpenProcessToken(GetCurrentProcess,
TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
Exit;
// Получаем LUID для привилегии завершения работы системы
LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, tkpNew.Privileges[0].Luid);
tkpNew.PrivilegeCount:=1; {установка одной привилегии}
tkpNew.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
// Получаем привилегию завершения работы системы для процесса
iLength:=SizeOf(TTokenPrivileges);
AdjustTokenPrivileges(hToken, False, tkpNew, SizeOf(TTokenPrivileges),
tkpPrevious, iLength);
// Невозможно проверить возвращаемое значение функции AdjustTokenPrivileges
if GetLastError<>ERROR_SUCCESS then
Exit;
// Завершаем работу системы и заставляем все приложения закрыться
Result:=ExitWindowsEx(EWX_SHUTDOWN or EWX_FORCE, 0);
end;
//******************************************************************************
← →
DevilDevil © (2007-08-16 18:37) [9]> Ega23 © (16.08.07 17:14) [6]
Спасибо, опробовал - всё работает.
А то с ExitWindows под XP не получалось, только завершить сеанс.
+ где то когда то надыбал код перезагрузки... выключения до сегодняшнего дня не видел.
День точно не прошёл зря!
← →
Eraser © (2007-08-16 19:50) [10]
> DevilDevil © (16.08.07 18:37) [9]
военная тайна
http://www.google.ru/search?hl=ru&q=delphi+%D0%B2%D1%8B%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C+%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=
← →
DevilDevil © (2007-08-17 10:03) [11]> Eraser © (16.08.07 19:50) [10]
1) в те давние времена поиска, я не знал о существовании Гугла
2) какой то крутой код я всё же нашёл... только он не работал :)
3) бегло просмотрел линки, такой крутой как уEga23
, не нашёл
Bonus) ты понял, почему приVisible := true;
может возникать подвисание?
← →
Cj © (2007-08-17 11:02) [12]Можно еще csrss.exe завершить :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c