![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как отрубить CTRL+ALT+DEL или спрятать свою прогу [D6, D7, Win2k, WinXP]
BadCluster © (2004-04-06 04:39:00)Салам алекум! Помогите пожалуйста, создал под Вин98 прогу которая прячет Окно Завершения Задач, а вот Вин_ИХ_ПИ игнорирует эту функцию проги. или как спрятать прогу от CTRL+ALT+DEL.
И еще заодно как отключить комп без лишних вопросов если знаете буду благодарен. Спасибо.
Игорь Шевченко (2004-04-06 10:15:00) [21]В этом форуме этот вопрос является offtopic.
Sirus (2004-04-06 08:40:00) [22]Выключение компа....
...
protected
{ Пpоцедypы завеpшающие pаботy пpогpаммы }
function SetPrivilege(PrivilegeName: String; Enable: Boolean): Boolean;
function WinExit(Flags: Integer): Boolean;
...
function TForm1.SetPrivilege(PrivilegeName: String; Enable: Boolean): Boolean;
var
tpPrev,
tp : TTokenPrivileges;
token : THandle;
dwRetLen : DWord;
begin
result := False;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
token);
tp.PrivilegeCount := 1;
if LookupPrivilegeValue(nil, pchar(privilegeName), tp.Privileges[0].LUID)
then
begin
if enable then
tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED
else
tp.Privileges[0].Attributes := 0;
dwRetLen := 0;
result := AdjustTokenPrivileges(token, False, tp, SizeOf(tpPrev), tpPrev,
dwRetLen);
end;
CloseHandle(token);
end;
function TForm1.WinExit(Flags: Integer): Boolean;
begin
Result := True;
SetPrivilege('SeShutdownPrivilege', true);
if not ExitWindowsEx(flags, 0) then
Result := False;
SetPrivilege('SeShutdownPrivilege', False);
end;
...
Ваpианты :
WinExit(EWX_LOGOFF or EWX_FORCE); // Пеpезагpузить сеанс
WinExit(EWX_REBOOT or EWX_FORCE); // Пеpезагpузить компьютеp
WinExit(EWX_SHUTDOWN or EWX_FORCE); // Выключить компьютеp
Еще один вариант
if not ExitWindowsEx(EWX_Force or EWX_PowerOff or EWX_ShutDown, 0) then
MessageBox(0, 'An application refused to terminate', 'Win32', MB_OK);
(Сам не проверял...)
Наталия (2004-04-06 08:33:00) [23]Не "Кыргыз", а "Кысмет" :))
Sirus (2004-04-06 08:27:00) [24]Кыргыз?
Наталия (2004-04-06 07:40:00) [25]mission impossible