Ejemplo n.º 1
0
    @Override
    public void run() {
      Logger.debug("run()");
      try {
        hHook =
            USER32_INSTANCE.SetWindowsHookEx(
                WinUser.WH_MOUSE_LL,
                WindowsMouseHook.this,
                Kernel32.INSTANCE.GetModuleHandle(null),
                0);
        MSG msg = new MSG();
        while ((USER32_INSTANCE.GetMessage(msg, null, 0, 0)) != 0) {
          // This code is never reached
          USER32_INSTANCE.TranslateMessage(msg);
          USER32_INSTANCE.DispatchMessage(msg);
          if (getHook() == null) {
            break;
          }
        }
      } catch (Exception e) {
        Logger.error("Mouse hook failure", e);
      }

      Logger.debug("mouse hook runnable exits");
    }
Ejemplo n.º 2
0
  public void run() {
    lib = User32.INSTANCE;
    HMODULE hMod = Kernel32.INSTANCE.GetModuleHandle(null);
    keyboardHook =
        new LowLevelKeyboardProc() {
          public LRESULT callback(int nCode, WPARAM wParam, KBDLLHOOKSTRUCT info) {

            if (nCode >= 0) {
              // To unhook press 'esc' key
              if (info.vkCode == 0x1B) {
                User32.INSTANCE.UnhookWindowsHookEx(hhk);
              }
              switch (info.vkCode) {
                case 0x5B:
                  System.err.println("l win");
                  return new LRESULT(1);
                case 0x5C:
                  System.err.println("r win");
                  return new LRESULT(1);
                case 0xA2:
                  System.err.println("l ctrl");
                  return new LRESULT(1);
                case 0xA3:
                  System.err.println("r ctrl");
                  return new LRESULT(1);
                case 0xA4:
                  System.err.println("l alt");
                  return new LRESULT(1);
                case 0xA5:
                  System.err.println("r alt");
                  return new LRESULT(1);
                default:
                  System.out.println("Key Pressed : " + info.vkCode); // do nothing
              }
            }
            return lib.CallNextHookEx(hhk, nCode, wParam, info.getPointer());
          }
        };
    hhk = lib.SetWindowsHookEx(13, keyboardHook, hMod, 0);
    // This bit never returns from GetMessage
    int result;
    MSG msg = new MSG();

    while ((result = lib.GetMessage(msg, null, 0, 0)) != 0) {
      if (result == -1) {
        break;
      } else {
        lib.TranslateMessage(msg);
        lib.DispatchMessage(msg);
      }
    }

    lib.UnhookWindowsHookEx(hhk);
  }