我在Google上search了很多东西,虽然我可以find使用WM_HOTKEY
为Windows执行此操作的开关,但我无法在Linux上find它。
WM_HOTKEY挂钩
uses ...,windows; var PrevWndProc: WNDPROC; const MY_ID=1; function WndCallback(Ahwnd: HWND; uMsg: UINT; wParam: WParam; lParam: LParam):LRESULT; stdcall; begin if (uMsg=WM_HOTKEY) and (WParam=MY_ID) then begin Application.Restore; end; result:=CallWindowProc(PrevWndProc,Ahwnd, uMsg, WParam, LParam); end; procedure TForm1.FormCreate(Sender: TObject); begin PrevWndProc:=Windows.WNDPROC(SetWindowLong(Self.Handle,GWL_WNDPROC,PtrInt(@WndCallback))); RegisterHotKey(Self.Handle,MY_ID,0,vk_F9); end; procedure TForm1.FormDestroy(Sender: TObject); begin UnRegisterHotkey(Self.Handle,MY_ID); end;
我期待在Linux机器上的XFCE4和/或XWindows中放置一个系统范围的热键钩子。 我知道,无论窗口pipe理器是什么,许多截图程序都可以做到。
我需要我的应用程序能够钩一个组合键来激活应用程序内的东西,但我不能find任何东西在任何地方与Linux上的Lazarus / Pascal。
Marco比大多数人更了解FPC(想想他写的)。
无论如何,您可能会在以下链接中找到有用的代码和/或代码库的其他部分: