【问题标题】:Linux - XFCE4 - Lazarus system wide hotkeyLinux - XFCE4 - Lazarus 系统范围的热键
【发布时间】:2014-03-06 16:08:28
【问题描述】:

我在 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 找到任何相关内容。

【问题讨论】:

标签: linux ubuntu pascal lazarus xfce


【解决方案1】:

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

在任何情况下,您都可以在下面的链接中找到有用的代码和/或代码库的其他部分:

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

【讨论】:

    猜你喜欢
    • 2012-05-30
    • 2011-04-15
    • 2012-04-30
    • 1970-01-01
    • 2012-01-04
    • 2013-12-07
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多