여기 소스를 보면 단축키 Ctrl+1을 저장을하고 메모장에 커서를 두고 단축키 Ctrl+1을 누르면 키보드 이벤트를 실행해서 숫자 '0'을 쓰도록 하는 예제로 만들고 있는데....
왜 안되는지.....
뭐가 잘못됐나요???
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
procedure WMHotKey(var Message: TMessage); message WM_HOTKEY;
procedure WriteText;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnregisterHotKey(Handle, 201);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
mHandle : THandle;
isRegisterd : Boolean;
begin
//레지스터에 단축키 등록
isRegisterd := RegisterHotKey(Handle, 201, MOD_CONTROL, Ord('1')); //Control + 1
if not isRegisterd then ShowMessage('등록실패');
end;
procedure TForm1.WMHotKey(var Message: TMessage);
begin
case Message.WParam of
201 : begin
//ShowMessage('');
WriteText;
end;
end;
end;
procedure TForm1.WriteText;
var
param : integer;
begin
param := 48;
Keybd_Event( param, MapVirtualkey( param, 0 ), 0, 0 );
Keybd_Event( param, MapVirtualkey( param, 0 ), KEYEVENTF_KEYUP, 0 );
end;
end.
|