можно ли отключить клавиши Windows с помощью java

можно отключить клавиши windows и alt + tab с помощью java …

One Solution collect form web for “можно ли отключить клавиши Windows с помощью java”

Вы можете использовать JNA для достижения этого.

Включите jna.jar и platform.jar в путь к classам и создайте следующий class. Этот class отключает левый ключ windows (0x5B) и правый ключ windows (0x5C). Таким образом, вы можете добавить другие коды в оператор case switch.

Вызовите KeyHook.blockWindowsKey () как можно скорее, когда начнется ваше приложение. С другой стороны, вызовите unblockWindowsKey () при завершении работы приложения.

Поскольку код выполняется только в том случае, если isWindows () истинно, вы всегда можете вызвать KeyHook.blockWindowsKey () даже при работе в другой ОС.

import com.sun.jna.platform.win32.Kernel32; import com.sun.jna.platform.win32.User32; import com.sun.jna.platform.win32.WinDef.HMODULE; import com.sun.jna.platform.win32.WinDef.LRESULT; import com.sun.jna.platform.win32.WinDef.WPARAM; import com.sun.jna.platform.win32.WinUser.HHOOK; import com.sun.jna.platform.win32.WinUser.KBDLLHOOKSTRUCT; import com.sun.jna.platform.win32.WinUser.LowLevelKeyboardProc; import com.sun.jna.platform.win32.WinUser.MSG; public class KeyHook { private static HHOOK hhk; private static LowLevelKeyboardProc keyboardHook; private static User32 lib; public static void blockWindowsKey() { if (isWindows()) { new Thread(new Runnable() { @Override 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) { switch (info.vkCode){ case 0x5B: case 0x5C: return new LRESULT(1); default: //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); } }).start(); } } public static void unblockWindowsKey() { if (isWindows() && lib != null) { lib.UnhookWindowsHookEx(hhk); } } public static boolean isWindows(){ String os = System.getProperty("os.name").toLowerCase(); return (os.indexOf( "win" ) >= 0); } } 
  • Множество TypeFace в одиночном TextView
  • Как проверить тип переменной в Java?
  • Как прокрутить до нижней части RecyclerView? scrollToPosition не работает
  • Измерьте время выполнения для Java-метода
  • как я могу получить случайную базу данных Firebase
  • Как изменить цвет значка гамбургера в ящике для рисования материалов
  • Почему я не могу использовать метод overulateViewHolder override?
  • BroadcastReceiver Vs WakefulBroadcastReceiver
  • завершение программы на выходе основного streamа?
  • Можем ли мы предположить значения массива по умолчанию в Java? например, предположим, что массив int задан для всех нhive?
  • Как вызвать веб-службу SOAP на Android
  • Давайте будем гением компьютера.