Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

как отрубить CTRL+ALT+DEL или спрятать свою прогу [D6, D7, Win2k, WinXP]


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо