Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-89572
pasha_golub
2003-10-07 15:11
2003.10.27
Kylix: не могу построить проект


1-89369
Piero
2003-10-15 20:32
2003.10.27
Непонятная ошибка компилятора


1-89271
RoLeX
2003-10-14 14:58
2003.10.27
Как сдлеать, чтобы программа сворачивалась в трей???


1-89312
Chlavik
2003-10-16 19:14
2003.10.27
Своё, что то типа DoubleBuffered


3-89140
Bless
2003-10-07 17:30
2003.10.27
Lookup-поле и unknown error





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский