안녕 하세요?
BacTeria 박종민입니다.
아래와 같이 HotKey로 등록해 가로채는 방법도 생각해 볼 수 있겠죠?
(아래의 코드에선 F10키를 가로챕니다.)
가장 막강한 궁극적인 해결책으론 키보드 훅킹을 하시는게 나을듯 싶네요.
훅킹에 관해서는 이미 자료가 많이 있으니 참고하세요.
제가 윈도우키가 없는 구형 키보드라 윈도우키를 테스트를 못 합니다. 흑! 흑!
이만... 청주에서 박종민...
------------------------------------------------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure OnWMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{ TForm1 }
procedure TForm1.OnWMHotKey(var Msg: TWMHotKey);
begin
Case Msg.HotKey of
100: Caption := 'Ok';
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Handle, 100, 0, VK_F10);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Handle, 100);
end;
end.
|