2016-12-20 4 views
0

Ich baue eine universelle Windows-App und muss den Desktop sperren, damit der Benutzer nicht aus dem Programm ausbrechen kann. Also muss ich den Windows-Schlüssel und Strg + Alt + Entf vorübergehend deaktivieren.Deaktivieren von Windows-Tasten bei laufendem UWP

konnte ich einen Event-Handler wie so hinzuzufügen:

Window.Current.CoreWindow.KeyDown += (s, e) => 
{ 
    if(e.VirtualKey == VirtualKey.LeftWindows || e.VirtualKey == VirtualKey.RightWindows) 
    { 
     e.Handled = true; 
    } 
} 

Aber das KeyPress-Ereignis feuert noch.

Ich fand auch eine Methode mit dem, was ich glaube, sind Windows-Hooks von der Benutzer32-Bibliothek.

[DllImport("user32", SetLastError = true)] 
[return: MarshalAs(UnmanagedType.Bool)] 
public static extern bool RegisterHotKey(IntPtr hwnd, int id, uint fsModifiers, uint vk); 
[DllImport("user32", SetLastError = true)] 
public static extern int UnregisterHotKey(IntPtr hwnd, int id); 
[DllImport("kernel32", SetLastError = true)] 

Ich fand einige Beispiel-Code here, aber ich denke, ich werde es für eine einfache Windows-Taste drücken zwicken müssen.

Ist die Windows-Hook-Methode (wie im Beispiel Link verwendet) der Weg zu gehen?

+4

Sie können Strg + Alt + Entf nicht mit Code deaktivieren, also ist dies eine Sackgasse. Lösen Sie stattdessen dieses Problem mithilfe von Gruppenrichtlinien. Stellen Sie Fragen dazu auf Serverfehler, da es sich um ein Verwaltungsproblem handelt und nicht um ein Programmierproblem. –

Antwort

Verwandte Themen