2016-07-05 9 views
0

Ich arbeite an einem Software-Projekt mit Java. Ich benutze auch JavaFX für seine GUI. Wenn diese Software auf einem PC ausgeführt wird, sollte der Bildschirm des PCs gesperrt werden, bis eine gültige PIN eingegeben wird.Deaktivieren Sie einige PC-Tastaturtasten mit JNA

Ich möchte einige Tastaturtasten wie die Steuerung, alternative und Windows-Taste deaktiviert werden, wenn die Software ausgeführt wird.

Wie kann ich dies mit JNA tun?

+0

Was meinst du mit "deaktivieren"? Kannst du erklären, was du versuchst? Ihre Erwähnung des "Windows-Schlüssels" impliziert, dass dies Windows ist, aber welche Version (en)? –

+0

Von WinXP zu Win10 –

+0

Sie haben nicht den wichtigsten Teil meiner Frage beantwortet: Was meinst du mit "deaktivieren"? Welchen Effekt versuchen Sie zu erreichen? –

Antwort

1

können Sie KeyEvent verwenden, um festzustellen, ob die Zieltaste gedrückt wurde.

Wenn gedrückt, nichts tun.

und es nur ähnlich wie disable

detaillierte how to disable keyboard hotkey in java swing


in dieser Seite is it is possible to disable the windows keys using java

Sie Leitaktion über JNA-Schnittstelle erkennen können, aber Schlüssel funktioniert nach wie vor.

+0

Ich habe versucht, die [KeyHook Java-Klasse] (http://stackoverflow.com/a/7793900/4338203), aber ich bekomme diesen Fehler: inkompatible Typen: Zeiger kann nicht in LPARAM um diese Codezeile konvertiert werden: return lib.CallNextHookEx (hhk, nCode, wParam, info.getPointer()); –

+0

@InyavicSage anstatt 'info.getPointer()' zu schreiben, können Sie 'neue LPARAM (info.getPointer(). GetLong (0))' schreiben, die den Fehler reslove – itayrabin

0

Sie können den Windows-Desktop nicht sperren, ohne in den Anmeldevorgang des Betriebssystems zu integrieren, der Winlogon heißt.

Unter Windows Vista und neuer können Sie Ihren PIN-Prozess auf Winlogon Credential Provider setzen. Unter Windows XP müssen Sie eine Winlogon GINA hook hinzufügen.

Beachten Sie, dass es unmöglich ist, den Zugriff auf alle Benutzeroberflächenelemente des Betriebssystems ohne die Hilfe des Betriebssystems zu blockieren. Nicht zuletzt kann der Benutzer immer Strg-Alt-Entf verwenden, was direkt vom Kernel übernommen wird und nicht von Userland-Anwendungen abgefangen werden kann.

+0

Ich möchte nicht Strg-Alt blockieren -Del –

Verwandte Themen