var
Form1: TForm1;
KeyHook: HHOOK;
function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult; stdcall;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
KeyHook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHook, 0, GetCurrentThreadID);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHookWindowsHookEx(KeyHook);
end;
function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult;
begin
if nCode > -1 then begin
if (wParam = VK_TAB)and(GetKeyState(VK_CONTROL)<0) then begin
Result := -1;
exit;
end;
end;
Result := CallNextHookEx(KeyHook, nCode, wParam, lParam);
end;
요즘 질문이 잦아지네요. MDIForm 이구요... MDI Child 열어놓구 여러 버튼중 하나를 'Ctrl+F4'로 잡아놨습니다. 근데 Child 폼이 자꾸 죽는거에요. 나중에 알았는데 Ctrl+F4하고 Ctrl+F6키가 시스템 키로 사용되고 있더라구요. 이 두 키...
까치
•
2005.02.01 07:12
KeyboardHook 을 직접 컨트로하면 될것 같습니다.
이곳에서 검색하면 여러 방법이 나옵니다.
...
KeyboardHook 을 직접 컨트로하면 될것 같습니다.
이곳에서 검색하면 여러 방법이 나옵니다.
-- 아래는 그중에 하나 -- 컨트롤 탭키를 제어하는 방법입니다.
var
Form1: TForm1;
KeyHook: HHOOK;
function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult; stdcall;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
KeyHook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardHook, 0, GetCurrentThreadID);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHookWindowsHookEx(KeyHook);
end;
function KeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LResult;
begin
if nCode > -1 then begin
if (wParam = VK_TAB)and(GetKeyState(VK_CONTROL)<0) then begin
Result := -1;
exit;
end;
end;
Result := CallNextHookEx(KeyHook, nCode, wParam, lParam);
end;