2017-09-13 3 views
1

Ich möchte verhindern, dass der Benutzer das Fenster wechselt (ähnlich wie bei Kioskanwendungen). Allerdings möchte ich dieses Verhalten od (und off) jederzeit per Tastaturkürzel für jede Anwendung ändern.Programm ausführen, wenn der Fensterbenutzer das aktive Fenster wechselt

Das beste, was ich erreicht habe, war ein AutoHotkey-Skript, das auf die Aktivierung der Tastaturkürzel wartet und Änderungen des aktiven Fensters erkennt und wenn das aktive Fenster geändert wird, führt es ein Programm aus (Clearlock in meinem Fall), aber das Sperren des Computers wäre auch gut für mich.

Ich benutze dies, wenn ich etwas mit jemandem auf meinem Computer mache und wenn ich vorübergehend gehen und den Computer nicht vollständig sperren möchte. Das könnten meine Freunde, Freundin oder Kollegen verstehen, wenn ich ihnen nicht vertraue.

Hier wird das autohotkey Skript Ich habe:

Gui +LastFound 
hWnd := WinExist() 
DllCall("RegisterShellHookWindow", UInt,Hwnd) 
MsgNum := DllCall("RegisterWindowMessage", Str,"SHELLHOOK") 
OnMessage(MsgNum, "ShellMessage") 
Return 

ShellMessage(wParam,lParam) 
{ 
    WinGetTitle, title, ahk_id %lParam% 
    If (wParam=4) { ;HSHELL_WINDOWACTIVATED 
     global kiosk 
     If (kiosk) { 
      global kiosk 
      kiosk := 0 

      Run "%PORTABLE_APPS%\utility\clearlock\ClearLock.exe" 
     } 
    } 
} 

kiosk := 0 

^!K:: 
    global kiosk 
    global kiosk 
    If (kiosk) { 
     kiosk := 0 
     ToolTip "unlocked`n%kiosk%" 
    } Else { 
     kiosk := 1 
     ToolTip "The screen will be locked if necessary`n%kiosk%" 
    } 
    sleep 1000 
    ToolTip 
    Return 

Das Skript funktioniert einwandfrei auf Windows 7. Allerdings ist es nicht alles auf Windows tun 10.

Was das Problem verursachen könnte? Wie löse ich es? Ich möchte entweder das Skript korrigieren. Oder eine andere Lösung, wie Sie den Computer unsichtbar sperren oder eine Anwendung in den Kios-Modus schalten oder verhindern, dass Anwendungen gewechselt werden.

Allerdings brauche ich es nicht zu super sicher. Weil ich möchte, dass die Leute, die ich davon abhalten möchte, irgendetwas Unartiges zu tun, Freunde sind.

+0

Warum Sie nicht über einen richtigen Kiosk tun –

+0

Versuchen Sie es als Administrator ausgeführt wird. – Oleg

+0

David Heffernan: Proper Kiosk ist für verschiedene Anwendungsfälle. Ich stelle mir vor, dass ich normal arbeite, was auch immer ich doofe und dann, wenn ich den Computer temporär verlassen möchte, verschließe ich den Computer unsichtbar, ohne dass andere bemerken, dass der Computer gesperrt ist. –

Antwort

1

Wenn die größtmögliche Sicherheit nicht im Fokus ist, dann wäre die einfachste Lösung so etwas wie dieses:

F3:: 
Loop 
{ 
WinActivate, Untitled - Notepad 
Sleep, 50 
if getkeystate("Esc", "p") 
    {   
     break 
    } 
} 
return 
Verwandte Themen