![]() |
|
#1
|
|||
|
|||
![]() Вот такая задача - нужно отключить/включить клавиатуру. Как это сделать и какие модули использовать?
Есть такой пример: Код:
// используемые переменные var Dummy : ildKbHook : HHook=0; impementation function KbHook( code: Integer; wparam: Word; lparam: LongInt ): LongInt; stdcall; begin if code<0 then Result:=CallNextHookEx( oldKbHook, code, wparam, lparam ) else Result:=1; end; // включение клавы procedure TForm1.KeyBoardOn(Sender: TObject); begin if OldKbHook <> 0 then begin UnHookWindowshookEx( OldKbHook ); OldKbHook := 0; end; SystemParametersInfo( SPI_SETFASTTASKSWITCH, 0, 0, 0); SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, 0, 0); end; // выключение клавы procedure TForm1.KeyBoardOff(Sender: TObject); begin SystemParametersInfo( SPI_SETFASTTASKSWITCH, 1, @Dummy, 0); SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @Dummy, 0); OldKbHook := SetWindowsHookEx( WH_KEYBOARD, @KbHook, HInstance, 0 ); end; но он не работает((( Помогите плз... Последний раз редактировалось Admin, 25.05.2010 в 14:49. |
#2
|
||||
|
||||
![]() хуки должны находиться в dll. У меня твой пример работает.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
|||
|
|||
![]() Дай плз работающую программу, чтоб можно было отключить и включить клаву
|
#4
|
||||
|
||||
![]() Отключить клаву:
Код:
var dirWin: array[0..255] of char; begin GetWindowsDirectory(dirWin,255); WinExec(PChar(WinDir + ' undll32.exe keyboard,disable'),SW_SHOWNORMAL); end; |