Wie kann ein Auto-Hotkey-Skript die Desktop-Sperre überstehen?

567
Peter

Ich habe ein Auto-Hotkey-Skript

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. #Warn ; Recommended for catching common errors. SendMode Event ; Input worked hardly, "Event" is better. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. SetTitleMatchMode, 1 ; 1: A window's title must start with the specified WinTitle to be a match.  #IfWinActive Zooming Viewer ~RButton & WheelDown:: Send  return ~RButton & WheelUp:: Send  return 

Ref .: Wie mache ich die automatische Hotkey-Konvertierung "RButton down, Mausrad-Aktion, RButton up" in "MButton down, Maus bewegt sich auf und ab, MButton up" "

Wie mache ich, dass dieses Skript die Desktopsperre unter Win-7 überlebt? Nach dem Freigeben des gesperrten Computers verhält sich der Viewer wie ohne AHK-Skript. Wenn Sie im Benachrichtigungsbereich auf das Skriptmenü klicken und "Reload This Script" wählen, wird es wieder funktionieren. Dies ist jedoch etwas ärgerlich.

1

1 Antwort auf die Frage

0
user3419297

Versuchen

#Warn ; Recommended for catching common errors. SendMode Event ; Input worked hardly, "Event" is better. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. SetTitleMatchMode, 1 ; 1: A window's title must start with the specified WinTitle to be a match.  MsgBox, Reloading  OnMessage(0x2b1,"WM_WTSSESSION_CHANGE") Gui,+LastFound hwnd:=WinExist() DllCall("Wtsapi32.dll\WTSRegisterSessionNotification","UInt",hwnd,"UInt",0) Return   #IfWinActive Zooming Viewer  ~RButton & WheelDown:: Send  return ~RButton & WheelUp:: Send  return  #IfWinActive  WM_WTSSESSION_CHANGE(wParam,lParam){ static _0x1:="WTS_CONSOLE_CONNECT" ;A session was connected to the console terminal. ; ,_0x2:="WTS_CONSOLE_DISCONNECT" ;A session was disconnected from the console terminal. ; ,_0x3:="WTS_REMOTE_CONNECT" ;A session was connected to the remote terminal. ; ,_0x4:="WTS_REMOTE_DISCONNECT" ;A session was disconnected from the remote terminal. ,_0x5:="WTS_SESSION_LOGON" ;A user has logged on to the session. ; ,_0x6:="WTS_SESSION_LOGOFF" ;A user has logged off the session. ; ,_0x7:="WTS_SESSION_LOCK" ;A session has been locked. ,_0x8:="WTS_SESSION_UNLOCK" ;A session has been unlocked. ; ,_0x9:="WTS_SESSION_REMOTE_CONTROL" ;A session has changed its remote controlled status. To determine the status, call GetSystemMetrics and check the SM_REMOTECONTROL metric. Reload } 

https://autohotkey.com/board/topic/42717-wie-nach-execute-a-script-when-a-computer-is-locked/page-2#entry266488

Laut Quelle ist es für "Erkennen, wenn Workstation gesperrt wird". Ich möchte es nicht erkennen, ich möchte nur, dass das Skript das Sperren übersteht (oder eher das Entsperren?). Wenn das Skript nicht mehr läuft, wie sollte das Erkennen von Sperren helfen? Peter vor 5 Jahren 0
Auf meinem System funktioniert es. Ich erhalte die Meldung "Reloading", nachdem die Workstation lockIng (Win + L) und das LockIng (Anmelden) aufgehoben wurde. user3419297 vor 5 Jahren 0
Oder wollten Sie ein anderes Skript starten, das das andere Skript überwacht, und es gegebenenfalls erneut lädt? Peter vor 5 Jahren 0
Nein, während das Skript ausgeführt wird, drücke ich Win + L und nach der Anmeldung bekomme ich die Meldung "Reloading" vom selben Skript. user3419297 vor 5 Jahren 0
Wenn es funktioniert, denke ich, gibt es ein anderes zugrunde liegendes Problem, das durch einen Neustart gelöst wird. Wenn dieses Skript die Entriegelung erkennen kann, sollte es auch seine eigentliche Aufgabe erfüllen - die Scrollwheel-Übersetzung. Oder liege ich falsch? Peter vor 5 Jahren 0
Natürlich macht es das auf meinem System. Hast du es versucht? user3419297 vor 5 Jahren 0
Die Zeile "MsgBox, Reloading" dient nur zum Testen des Skripts. Sie können es entfernen, wenn das Skript funktioniert. user3419297 vor 5 Jahren 0