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

Вниз

перехватчик клавиатуры без использования dll   Найти похожие ветки 

 
hook   (2003-08-17 17:44) [0]

как создать перехватчик клавиатуры без использования dll


 
Shluz ©   (2003-08-17 17:54) [1]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
private
public
end;

var
Form1: TForm1;
HookHandle: HHOOK;
implementation

{$R *.dfm}
function KeyboardProc (nCode:integer; wParam, LPARAM:Longint):Longint;stdcall;
var f: textfile;
begin
if nCode < 0 then
Result := CallNextHookEx(HookHandle,nCode, wParam, LPARAM)
else
Result := 0;
end;

function SetHook: boolean; stdcall;
begin
HookHandle := SetWindowsHookEx(WH_Keyboard, @KeyboardProc, hinstance, 0);
Result := HookHandle <> 0
end;
function RemoveHook: boolean; stdcall;
begin
Result := UnhookWindowsHookEx(HookHandle)
end;

procedure TForm1.FormCreate(Sender: TObject);

begin
if not sethook then showmessage("Не удалось установить ловушку...");
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if not Removehook then showmessage("Не удалось снять ловушку...");
end;

end.


 
DVM ©   (2003-08-17 17:55) [2]

Драйвер написать.


 
Shluz ©   (2003-08-17 17:57) [3]

хук в коде программы, например


 
PVOzerski ©   (2003-08-17 18:00) [4]

Через GetAsyncKeyState можно тоже.


 
miek ©   (2003-08-17 19:12) [5]

В KOL просто ловить через OnMessage. Но будет работать, только пока программа на переднем плане


 
Дмитрий В. Белькевич ©   (2003-08-18 01:27) [6]

Для hook: глобально - никак. Надежно - никак даже с длл. Только драйвер.


 
Игорь Шевченко ©   (2003-08-18 10:12) [7]

Без DLL никак. С DLL - очень хорошо, без всяких драйверов.


 
Дмитрий В. Белькевич ©   (2003-08-19 01:19) [8]

Для Игоря Шевченко: ну ну, ctrl+alt+del, alt+tab etc перехватишь?


 
Игорь Шевченко ©   (2003-08-19 09:10) [9]

Дмитрий В. Белькевич ©

А нафига их перехватывать ?


 
Song ©   (2003-08-19 14:15) [10]

WH_JOURNALRECORD


 
Дмитрий В. Белькевич ©   (2003-08-19 21:51) [11]

Для Игоря: случаи всякие бывают. Пример: компьютерный клуб. Очень полезная фишка.
Для Song: под 9х не существует, под NT+ afaik всё равно _всё_ не ловит, хотя могу ошибаться.


 
Ученик ©   (2003-08-20 08:17) [12]

>Дмитрий В. Белькевич © (19.08.03 01:19) [8]
А WH_KEYBOARD_LL разве не ловит ?

http://support.microsoft.com/default.aspx?scid=kb;en-us;226359


 
Игорь Шевченко ©   (2003-08-20 09:26) [13]

Дмитрий В. Белькевич © (19.08.03 21:51)

Для компьютерных клубов - нефига ставить туда NT-систему, в компьютерный клуб. Потребительской версии для этих клуюов хватает за глаза, в игрушки поиграться да по нету полазить. В этих версиях есть RegisterServiceProcess, который решает все проблемы. Если уж приспичило ставить NT, то используй policy для запрета снятия программы.
При ближайшем рассмотрении все эти горе-админы "компьютерных клубов" перехватывающие ctrl+alt+del оказываются обыкновенными пакостниками :)


 
Дмитрий В. Белькевич ©   (2003-08-21 05:42) [14]

Для Игоря: RegisterServiceProcess решает только то, что оболочки в списке задач невидно, а толку? Все равно "alt-tab" работает, и половина игрух после этого виснет. У нас инета нет, iexplore и explore я вообще удалил, оболочку пользую свою. Напсал vxd - позатыкал все непотребные комбинации. Поправил commdlg32, что бы fileopen(sdave)dialog не вызывался (дыра еще та). И усе - сижу курю ;) Усеры к файлам не лезут - никаких проблем. Написал вместо comdlg32 пару дллок, которые нужны для программ, типа редакторов карт или для winamp. Заодно классную примочку в dll"ке для winamp"a (_не в плагине_) запихал - навороченный редактор списков + быстрый поиск.
Для ученика: да, действительно, Applications can disable ALT+TAB or CTRL+ESC by installing a low-level keyboard hook. A low-level keyboard hook (WH_KEYBOARD_LL) is installed by calling SetWindowsHookEx. Что ж, это хорошо. Можно будет как попробовать на xp перелезть без извратов с vxd"шками.



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
7-89616
Proger_XP
2003-08-09 10:41
2003.10.27
<i>Как узнать</i> какие клавиши жал пользователь вне программы?


1-89362
john_ea
2003-10-16 07:03
2003.10.27
TStingGrid


1-89389
Farengeit
2003-10-15 15:53
2003.10.27
Какие события возникают при входе мыши на компонент


1-89347
Samael6
2003-10-16 12:01
2003.10.27
SoftIce+int 3+trouble!


14-89484
Knight
2003-10-06 13:54
2003.10.27
Снова об интуиции...