Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.13;
Скачать: CL | DM;

Вниз

Блокировка системных клавиш в 2000   Найти похожие ветки 

 
Easter   (2004-12-10 12:27) [0]

Знаю-знаю, этот вопрос всех достал... Но ответа я так на него и не нашел. Мне надо заблокировать доступ к Ctrl+Alt+Del, Alt+F4 и прочему в win2000.

SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);
Не помогает...

Подскажите, плз.


 
DVM ©   (2004-12-10 12:40) [1]


> Ctrl+Alt+Del

считай что невозможно.

> Alt+F4

Низкоуровневый хук на клавиатуру

> прочему

тоже хук.


 
Manfred8   (2004-12-10 12:42) [2]

Что касается Ctrl+Alt+Del, на остальное вешается хук

//Для этого в реестре по адресу
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
//создайте ключ типа DWORD под названием DisableTaskMgr, и присвойте ему значение 1.
//Удалив этот ключ, или присвоив ему 0, вы вновь разрешите Task Manager.
//--------------------------------------------------------------
procedure TTaskManager.Disable;
var R:TRegistry;
begin
try
 R:=TRegistry.Create;
 R.RootKey:=HKEY_CURRENT_USER;
 R.OpenKey("Software\Microsoft\Windows\CurrentVersion\Policies\System", True);
 R.WriteInteger("DisableTaskMgr",1);
 R.CloseKey;
 R.Free;
except
  showmessage("Ошибка при запрете таск мэнеджера");
end;
end;


 
Manfred8   (2004-12-10 12:43) [3]

А еще мона c Gina.dll изврашаться


 
DVM ©   (2004-12-10 12:51) [4]


> Manfred8   (10.12.04 12:43) [3]

Не путайте одно с другим. Запретить таскменеджер и CAD - это не одно и то же, тем более, что в XP по умолчанию при нажатии CAD появляется вовсе не таскменеджер.


 
Manfred8   (2004-12-10 12:56) [5]

а вы попробуйте


 
VMcL ©   (2004-12-10 13:01) [6]

>>DVM ©  (10.12.04 12:51) [4]

Когда уже промелькивало на форуме. Как раз по умолчанию TM и вызывается. А вот после некой доработки напильником (не помню точно какой; Fast User Switching что ли...), что многие и делают, CAD вызывает окно Windows Security, TM вызывается по Ctrl+Shift+Esc.


 
DVM ©   (2004-12-10 13:06) [7]


> Manfred8   (10.12.04 12:56) [5]
> а вы попробуйте

Что пробовать то, я и так знаю как это выглядит. Дело в том, что не всегда срабатывает (см. [6]).

> VMcL ©   (10.12.04 13:01) [6]

Да я помню ветку. Я потом когда ставил XP - проверил. Зависит еще от пункта "Использовать страницу приветствия". Может не только от него. И еще от того компьютер в домене или нет.


 
Manfred8   (2004-12-10 13:10) [8]

Значит написание своей Gina.Dll рулит :)


 
Xaker ©   (2004-12-11 02:21) [9]

Manfred8   (10.12.04 13:10) [8]
я по другому делал :))


 
BURN ©   (2004-12-12 02:29) [10]

откл. Alt+F4


procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
const
KEY_ALT_F4=02;
begin
case ord(key) of
KEY_ALT_F4:
begin
key:=#0;
form1.show;
end;
end;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
 Shift: TShiftState);
begin
 if (Key = VK_F4) and (ssAlt in Shift) then begin
   MessageBeep(0); Key := 0;
 end;
end;


Alt+Tab


program Project1;
uses
 Forms,
 Windows,
 Unit1 in "Unit1.pas" {Form1};
{$R *.RES}
var ExtendedStyle : integer;
begin
 Application.Initialize;
 ExtendedStyle:=GetWindowLong(application.Handle, GWL_EXSTYLE);
 SetWindowLong(Application.Handle, GWL_EXSTYLE,
   ExtendedStyle or WS_EX_TOOLWINDOW
{AND NOT WS_EX_APPWINDOW});
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


Alt_CTRL+Del для NT/XP но нужно найти правильный Index

function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall;
 external "KERNEL32.DLL" index XXX;

procedure TForm1.Button2Click(Sender: TObject);
begin
if not (csDesigning in ComponentState) then
 RegisterServiceProcess(GetCurrentProcessID, 0);
end;


 
Хакер ©   (2004-12-12 02:34) [11]


>Alt_CTRL+Del для NT/XP но нужно найти правильный Index
>
> function RegisterServiceProcess


LOL !


 
Alexis ©   (2004-12-12 15:18) [12]

Запрет Alt-Tab, Alt-F4, Alt-Esc можно реализовать переназначив нажатия этих клавиш функцией RegisterHotKey, CreateGlobalAtom. Далее в программе надо обрабатывать пришедшее сообщение WM_HOTKEY и выводить соответствующий MessageBox, к примеру.


 
DVM ©   (2004-12-14 10:03) [13]

Эксплорер узнает о нажатии Ctrl+Esc через хук. Заблокировать всякими хоткеями вряд-ли получится. Только хук.


 
Submarine   (2004-12-14 10:09) [14]

Задавался этим в свое время, сделал так
function KillTask(ExeFileName: string): integer;  
const  
 PROCESS_TERMINATE=$0001;  
var  
 ContinueLoop: BOOL;  
 FSnapshotHandle: THandle;  
 FProcessEntry32: TProcessEntry32;  
begin  
 result := 0;  

 FSnapshotHandle := CreateToolhelp32Snapshot  
                    (TH32CS_SNAPPROCESS, 0);  
 FProcessEntry32.dwSize := Sizeof(FProcessEntry32);  
 ContinueLoop := Process32First(FSnapshotHandle,  
                                FProcessEntry32);  

 while integer(ContinueLoop) <> 0 do  
 begin  
   if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =  
        UpperCase(ExeFileName))  
    or (UpperCase(FProcessEntry32.szExeFile) =  
        UpperCase(ExeFileName))) then  
     Result := Integer(TerminateProcess(OpenProcess(  
                       PROCESS_TERMINATE, BOOL(0),  
                       FProcessEntry32.th32ProcessID), 0));  
   ContinueLoop := Process32Next(FSnapshotHandle,  
                                 FProcessEntry32);  
 end;  

 CloseHandle(FSnapshotHandle);  
end;
А в таймере повесил: KillTask("taskmgr.exe"); -Все работает !!!!


 
DVM ©   (2004-12-14 10:25) [15]


> Submarine   (14.12.04 10:09) [14]

Заблокировать CAD и закрывать таскменеджер это не одно и то же.
Хотя чаще это и требуется.


 
Zuborob   (2005-01-29 11:27) [16]

А что если отключить Ctrl-Alt-Del не напрямую, а "обманом"? Я просто уничтожаю окно Диспетчера задач в таймере каждую долисекунду или как там в свойстве Timer1.Interval. Диспетчер не запускается, сл-но процесс не завершить (разве что сторонним Диспетчером других фирм). Да и то: понятно, стоит назвать неприглядным именем...
Вот текст:

procedure TForm2.TimerTaskTimer(Sender: TObject);
var TaskM:HWND;
begin
TaskM:=FindWindow(nil,"Диспетчер задач Windows");
SendMessage(TaskM,WM_Destroy,0,0);
end;

  Отработано в XP, как будет работать в других-не гарантирую, хотя у меня на кампе установлены все винты :-)



Страницы: 1 вся ветка

Текущий архив: 2005.03.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.06 c
1-1109314667
Alex7
2005-02-25 09:57
2005.03.13
Макроподстановки


4-1106132766
MLM
2005-01-19 14:06
2005.03.13
Уровень загрузки системы процессом


4-1107097368
s_ser
2005-01-30 18:02
2005.03.13
Поиск уже открытых дочерних окон в MDI


14-1109078258
Aleksandr
2005-02-22 16:17
2005.03.13
Тонер (порошок для заправки принтеров и ксероксов)


1-1109671828
JTAG
2005-03-01 13:10
2005.03.13
Как организовать задержку (стандартный таймер) сделал так: