اين هم يك نمونه كد هات کی : Hot Key
سلام
بعضی از دوستان در خواست کردند که یه نمونه هات کی بذاریم
هات کی یعنی هر جا که بودی کلیدی زدی وارد برنامه خودت بشه.
منظور از هر جا یعنی خارج از برنامه خودت.
چندتا کمپننت به درد به خور هم در همین رابطه هم دارم.
اگر خواستید خبرم کنید تا آپلود کنم.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کد:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Menus;
type
TForm1 = class(TForm)
HotKey1: THotKey;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
Hotkey_id : Integer;
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// WM_HOTKEY Hotkey Handler
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
if Msg.HotKey = Hotkey_id then
ShowMessage('Hotkey empfangen');
end;
// Transform TShortCut to use for RegisterHotKey
// TShortCut für RegisterHotKey umwandeln
procedure ShortCutToHotKey(HotKey: TShortCut; var Key : Word; var Modifiers: Uint);
var
Shift: TShiftState;
begin
ShortCutToKey(HotKey, Key, Shift);
Modifiers := 0;
if (ssShift in Shift) then
Modifiers := Modifiers or MOD_SHIFT;
if (ssAlt in Shift) then
Modifiers := Modifiers or MOD_ALT;
if (ssCtrl in Shift) then
Modifiers := Modifiers or MOD_CONTROL;
end;
// Register Hotkey
// Hotkey registrieren
procedure TForm1.Button1Click(Sender: TObject);
var
Key : Word;
Modifiers: UINT;
begin
ShortCutToHotKey(HotKey1.HotKey, Key, Modifiers);
Hotkey_id := GlobalAddAtom('MyHotKey_1');
RegisterHotKey(Handle, Hotkey_id, Modifiers, Key);
end;
// Remove Hotkey
// Hotkey entfernen
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
UnRegisterHotKey(Handle, Hotkey_id);
GlobalDeleteAtom(Hotkey_id);
end;