Форум: "WinAPI";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Внизперехватчик клавиатуры без использования 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c