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 ではどこにもこれが見つかりません。