我已经在Google上进行了相当多的搜索,虽然我可以找到使用WM_HOTKEY
为Windows执行此操作的开关但我找不到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相关的内容。
答案 0 :(得分:1)
Marco比大多数人更了解FPC(想想他写的)。
无论如何,您可能会在以下链接中找到有用的代码和/或代码库的其他部分: