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

 

Для того, чтобы отличить нажат левый или правый Ctrl, нужно перехватить событие WM_KEYDOWN. В зависимости от состояния 24-ого бита параметра LParam нажата правая или левая клавиша.

 

Code:

procedure EmptyKeyQueue;

var

msg: TMsg;

begin

while PeekMessage(msg, 0, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE or PM_NOYIELD) do

   ;

end;

 

begin

EmptyKeyQueue;

end.

 

Code:

if ((Word(GetKeyState(VK_LSHIFT)) and $8000) <> 0) then

begin

end;

 

if ((Word(GetKeyState(VK_RSHIFT)) and $8000) <> 0) then

begin

end;

 

Нужно ловить сообщение WM_INPUTLANGCHANGEREQUEST

 Проверяйте значение переменной key на равенство VK_RIGHT, VK_LEFT, VK_F1 и т.д. на событии KeyDown формы

Автор: Arx 

 

· Setup.bat

 

Code:

@echo off

copy HookAgnt.dll %windir%\system

copy kbdhook.exe %windir%\system

start HookAgnt.reg

 

Эта процедура посылает сообщение о нажатии клавиши.

 

Для этого можно воспользоваться функцией GetHeapStatus:

 

Code:

SendMessage(Handle,WM_SYSCOMMAND,SC_TASKLIST,0);

 Автор ответа: TwoK