سلام
همونطور که می دونید ، وقتی خارج از فرم دلفی ، در محیط دسکتاپ و یا روی تسکبار و... کلیک می کنیم
فرم فوکوس رو از دست میده .
من چطور می تونم موقعی که فرم فوکوس نداره ، از کلید های کیبورد استفاده کنم و فرم ، فشردن کلید های کیبورد رو تشخیص بده؟
به عنوان مثال موقعی که فرم فوکوس نداره ، با فشردن کلید F از روی کیبورد فرم بسته بشه .
لطفا راهنمایی کنید
ممنون میشم
تذکر: دوستان و مدیران گرامی لطفا در مورد چگونگی نوشتن تروجان، کیلاگر و بدافزارهای مختلف در این بخش جدا خودداری کنن در غیر این صورت کامنت مورد نظر حذف یا ویرایش میشه.
با سپاس.
میتونین از hotkey استفاده کنید
کد:
type
TForm17 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
HotKey1 : Integer;
HotKey2 : Integer;
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
public
{ Public declarations }
end;
var
Form17: TForm17;
implementation
{$R *.dfm}
{ TForm17 }
procedure TForm17.FormCreate(Sender: TObject);
const
MOD_CONTROL = $0002;//0x0002
begin
// Register Ctrl + 1 hotkey
HotKey1 := GlobalAddAtom('Hotkey1');
RegisterHotKey(Handle, HotKey1, MOD_CONTROL, Ord('1'));
// Register Ctrl + 2 hotkey
HotKey2 := GlobalAddAtom('Hotkey2');
RegisterHotKey(Handle, HotKey2, MOD_CONTROL, Ord('2'));
end;
procedure TForm17.FormDestroy(Sender: TObject);
begin
//unregister the hotkeys
UnRegisterHotKey(Handle, HotKey1);
GlobalDeleteAtom(HotKey1);
UnRegisterHotKey(Handle, HotKey2);
GlobalDeleteAtom(HotKey2);
end;
procedure TForm17.WMHotKey(var Msg: TWMHotKey);
begin
if Msg.HotKey = HotKey1 then
begin
ShowMessage('Ctrl + 1 was pressed');
//do your stuff
end
else
if Msg.HotKey = HotKey2 then
begin
ShowMessage('Ctrl + 2 was pressed');
//do your stuff
end;
end;
lord_viper عزیز من جواب داده بودم مثل اینکه مدیر بخش دوست نداشتن پست را ویرایش کردن.......
از کیلاگر استفاده کرده بود.