Linux - XFCE4 - Lazarus系统范围的热键

时间:2014-03-04 20:18:50

标签: linux ubuntu pascal lazarus xfce

我已经在Google上进行了相当多的搜索,虽然我可以找到使用WM_HOTKEY为Windows执行此操作的开关但我找不到Linux。

WM_HOTKEY Hook

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相关的内容。

1 个答案:

答案 0 :(得分:1)

Marco比大多数人更了解FPC(想想他写的)。

无论如何,您可能会在以下链接中找到有用的代码和/或代码库的其他部分:

http://code.google.com/p/ovoplayer/source/browse/trunk/src/platform/darwin/mmkeys.inc?spec=svn206&r=206