ايران ويج

نسخه‌ی کامل: تشخیص فشردن کلید های کیبورد موقعی که فرم فوکوس نداره
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام
همونطور که می دونید ، وقتی خارج از فرم دلفی ، در محیط دسکتاپ و یا روی تسکبار و... کلیک می کنیم
فرم فوکوس رو از دست میده .
من چطور می تونم موقعی که فرم فوکوس نداره ، از کلید های کیبورد استفاده کنم و فرم ، فشردن کلید های کیبورد رو تشخیص بده؟
به عنوان مثال موقعی که فرم فوکوس نداره ، با فشردن کلید 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 عزیز من جواب داده بودم مثل اینکه مدیر بخش دوست نداشتن پست را ویرایش کردن.......
از کیلاگر استفاده کرده بود.