Отключение кнопки windows ("Пуск")

10.10.2012
Исходный код библиотеки предназначенной для отключения кнопки win на клавиатуре.
Не только перестает выдвигаться меню пуск, но и перестают срабатывать сочетания с этой кнопкой.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
library dll_name;

uses
  SysUtils, Windows, Classes;

const
  WM_KEYUP            = $0101;
  WM_KEYDOWN          = $0100;

type

  pKBDLLHOOKSTRUCT = ^TKBDLLHOOKSTRUCT;
    TKBDLLHOOKSTRUCT = record
    vkCode: DWORD;
    scanCode: DWORD;
    flags: DWORD;
    time: DWORD;
    dwExtraInfo: DWORD;
   end;

var
  Hk :HHOOK;
  strct :pKBDLLHOOKSTRUCT;


function LowLewelKeyboardProc(nCode:integer;wParam:Longint;lParam:Longint):Longint;stdcall;
begin
   Result:=1;
   if (wParam=WM_KEYUP) or (wParam=WM_KEYDOWN) then strct:=pKBDLLHOOKSTRUCT(lParam);

   case  strct.vkCode of
    91,92 :begin end
    // 91 - left Win
    // 92 - right Win
   else Result:=CallNextHookEx(Hk,nCode,wParam,lParam);
   end;
end;


function DisableStart(): Boolean;
begin
  Hk:=SetWindowsHookEx(13,@LowLewelKeyboardProc,HInstance,0);
  Result:=True;
end;

function EnableStart(): Boolean;
begin
  UnhookWindowsHookEx(Hk);
  Result:=True;
end;

exports
 EnableStart, DisableStart;

begin
end.

Категории: Delphi
Яндекс.Метрика