簡體   English   中英

使用xlib的全局熱鍵

[英]global hotkeys using xlib

我試圖讓我的C應用程序在按下ctrl + k按鈕時執行某些任務(或不確定CTRL SHIFT K),文檔有點兒麻煩,但是我能夠找到一個cpp示例並嘗試模仿碼:

 Display* dpy = XOpenDisplay(0);
  Window root = DefaultRootWindow(dpy);
  XEvent ev;
  unsigned int modifiers = ControlMask | ShiftMask;
  int keycode = 45;
  int pointer_mode = GrabModeAsync;
  int keyboard_mode = GrabModeAsync;
  XGrabKey(dpy, keycode, modifiers, root, 0, pointer_mode, keyboard_mode);
  XSelectInput(dpy, root, KeyPressMask);
  while(0)
  {
    XNextEvent(dpy, &ev);
    if (ev.type == KeyPress)
      printf("key has been pressed\n");
  }

我知道按鍵是由XGrabKey函數捕獲的,xnext事件會讀取事件並將其存儲在ev中,我正在將其與按鍵Xevent類型進行比較,消息未得到打印,我已經嘗試過ctrl + k和shift + k和ctrl + shift + k

您永遠不會調用XNextEvent() ,因為while(0)循環永遠不會運行。 (您可能是指while(1) !)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM