Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

Помогите заблокировать клавиатуру   Найти похожие ветки 

 
Igi   (2005-10-18 00:58) [0]

Вот никак немогу зделать сие чудо :(

Пробовал так

  i := 0;
  g := 0;
  repeat
    inc(i);
    inc(g);
    RegisterHotKey(0, g, 0, i);
    inc(g);
    RegisterHotKey(0, g, MOD_ALT, i);
    inc(g);
    RegisterHotKey(0, g, MOD_CONTROL, i);
    inc(g);
    RegisterHotKey(0, g, MOD_SHIFT, i);
    inc(g);
    RegisterHotKey(0, g, MOD_WIN, i);
  until i > 255;


Блокируется - но если другое приложение использует хоткеи то непомогает.

Пробовал через хук

.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib

.const
WH_KEYBOARDHOOK  equ WM_USER+6
.data
hInstance dd 0

.data?
hHook dd ?
hWnd dd ?

.code
DllEntry proc hInst:HINSTANCE, reason:DWORD, reserved1:DWORD
push hInst
pop hInstance
     mov  eax,TRUE
     ret
DllEntry Endp

KeyProc proc nCode:DWORD,wParam:DWORD,lParam:DWORD
invoke CallNextHookEx,hHook,0,0,0
mov eax, 1
ret
KeyProc endp

InstallHook proc hwnd:DWORD
push hwnd
pop hWnd
invoke SetWindowsHookEx,WH_KEYBOARD,addr KeyProc,hInstance,NULL
mov hHook,eax
ret
InstallHook endp

UninstallHook proc
invoke UnhookWindowsHookEx,hHook
ret
UninstallHook endp

End DllEntry


Тоже помогло - но не очень, многие комбинации клавишь работают...

Масера, посоветуйте что-нибудь.


 
GanibalLector ©   (2005-10-18 01:00) [1]

А зачем все клавиши блокировать??? Вирусмейкер? Дык тогда на xakep.ru


 
Igi   (2005-10-18 01:00) [2]

Или может быть возможно сбросить чужие хоткеи - тогда первый способ должен заработать... скажите, такое возможно, очень нужно - бьюсь уже давно - а ничего неполучается :(


 
Германн ©   (2005-10-18 01:33) [3]

2 Igi   (18.10.05 00:58)
Интересно бы привести перечень "откуда и что ты содрал"? :)


 
Igi   (2005-10-18 01:50) [4]

2 Германн ©   (18.10.05 01:33) [3]

К первый код  - логическое продолжение этой статьи
http://delphiworld.narod.ru/base/hook_key_down.html

А каркас для хука брал тут
http://wasm.ru/article.php?article=1001024


 
Idx ©   (2005-10-18 05:58) [5]

aincity.narod.ru


 
Igi   (2005-10-18 09:59) [6]

Спасибо! Из приведенного на сайте исходника понял что нужно писать в
$64 порт $AE - для включения и $AD - для отключения клавы...
Буду пробовать, у меня в программе как раз используется драйвер с выходом в ring0...


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


> Буду пробовать, у меня в программе как раз используется
> драйвер с выходом в ring0...


Афигеть какие вирусы пошли...


 
Igi   (2005-10-18 11:02) [8]

Это не вирус - это нужно для защиты от скриншотмейкеров - чтобы горячие клавиши отрубить... конечно во многих таких программах используются таймеры - но о них не все юзеры знают :)


 
Игорь Шевченко ©   (2005-10-18 11:06) [9]

Igi   (18.10.05 11:02) [8]


> Это не вирус - это нужно для защиты от скриншотмейкеров


А...фотографировать цифровым фотоаппаратом уже не модно стало ?


 
Igi   (2005-10-18 11:14) [10]

Длинющее окно - это много фоток надо - потом мучаться склеивать и выравнивать... да и распознавать потом нужно...

Такая защита лучше чем вообще без неё. Да и если брать людей живущих дальше столичных окраин - цифровик есть не у каждого...


 
Fay ©   (2005-10-18 17:39) [11]

2 Igi   (18.10.05 11:14) [10]
http://www.faststone.org/FSCaptureDetail.htm



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

Форум: "WinAPI";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
14-1133098896
Alexis
2005-11-27 16:41
2005.12.18
На borland.com только Delphi 2005 .NET?


2-1133431193
FShadow
2005-12-01 12:59
2005.12.18
Выбор дочерних MDI-окон с помощью набора закладок TabControl. Как


2-1133129521
Diatel
2005-11-28 01:12
2005.12.18
Как сделать аналог дизассемблера IDA.


2-1133264260
Sysanin
2005-11-29 14:37
2005.12.18
реестр


2-1133112498
elysee
2005-11-27 20:28
2005.12.18
rar для текстовиков





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский