我在 Google 中进行了很多搜索,虽然我可以找到用于 Windows 的开关,WM_HOTKEY
但在 Linux 上却找不到。
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 中放置一个系统范围的热键挂钩。我知道无论窗口管理器是什么,许多屏幕截图程序都可能一直这样做。
我需要让我的应用程序能够挂钩一个组合键来激活应用程序内部的某些东西,但是我在任何地方都找不到任何与 Linux 上的 Lazarus/Pascal 相关的东西。