È piuttosto difficile da spiegare senza prima mostrare il codice, quindi ecco qui:
Questo è il codice:
#l::
{
SoundGet, mutestate, , MUTE
if mutestate = Off
Send {Volume_Mute}
Sleep 200
DllCall("LockWorkStation")
Sleep 200
SendMessage,0x112,0xF170,2,,Program Manager
Return
}
E questo è l'output del registro:
002: {
003: SoundGet,mutestate,,MUTE
004: if mutestate = Off
005: Sleep,200 (0.20)
006: DllCall("LockWorkStation")
007: Sleep,200 (0.20)
008: SendMessage,0x112,0xF170,2,,Program Manager
009: Return (16.63)
Ora al vero "problema".
C'è una parte del codice effettivo che non viene visualizzato nel registro (ma viene comunque eseguito), che è il file Send {Volume_Mute}
. Ho provato che funziona ancora impostando il volume al massimo, quindi attivando il tasto di scelta rapida. Blocca il computer, quindi lo disattiva, che è esattamente quello che dovrebbe fare.
Mi chiedo solo perché non compare affatto nel registro. La mia unica ipotesi sarebbe che le parentesi graffe stiano probabilmente causando il "problema".
#l::
{ << This brace
SoundGet, mutestate, , MUTE
if mutestate = Off
Send {Volume_Mute} << The 2 braces here
Sleep 200
DllCall("LockWorkStation")
Sleep 200
SendMessage,0x112,0xF170,2,,Program Manager
Return
} << And this brace
Non sono davvero sicuro se questo è ciò che sta causando il problema, ma mi piacerebbe davvero sapere qual è esattamente la causa.