Utilizzo di AppleScript per bloccare lo schermo


11

Ho bisogno di uno script di mele che blocchi il mio Mac allo stesso modo premendo shift+ ctrl+ eject. Ho provato due approcci diversi, ma entrambi hanno fallito. Il primo è stato quello di cercare su Internet una sceneggiatura che non è riuscita. Ci sono solo soluzioni con screensaver o altre applicazioni, che non voglio. Voglio solo usare quello che ho descritto. Il secondo era di dire a applecript di premere i tre tasti che non funzionavano. Se qualcuno potesse dirmi come bloccare il mio Mac o come dire a applecript di premere tre tasti, sarei davvero felice, perché mi sento un po 'frustrato.

Risposte:


13

Ottenere informazioni da questa risposta e questa risposta:

  1. Premi il pulsante Spotlight nella parte superiore destra dello schermo ( Cmd+ Space)
  2. Cerca Keychain Access. Apri questo
  3. Apri Preferenze ( Cmd+ ,(virgola))
  4. Dai un'occhiata Show Status in Menu Bar
  5. Premi il pulsante Spotlight nella parte superiore destra dello schermo ( Cmd+ Space)
  6. Cerca Automator. Seleziona questo
  7. Creare nuovo Service
  8. Cerca Run Applescriptaccanto ai pulsanti Actionse Variables. Fare doppio clic su questo
  9. Assicurati che le caselle di controllo siano Service receives no input in any application
  10. Incolla questo Applescript:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 of menu bar 1 where description is "Keychain menu extra")
        click
        click menu item "Lock Screen" of menu 1
    end tell
end tell

Salva questo Automator come qualcosa di simile Lock screen(nota: il codice in GIF è diverso!)

inserisci qui la descrizione dell'immagine


Per creare una scorciatoia:

  1. Premi il pulsante Apple nella parte superiore sinistra dello schermo
  2. Clic System Preferences
  3. Clic Keyboard
  4. Fare clic sulla Keyboard Shortcutsscheda
  5. Clic Services
  6. Trova il nome del servizio appena creato
  7. Fai clic sullo spazio vuoto a destra
  8. Digita il tuo collegamento

Usa il tuo collegamento in qualsiasi applicazione!

inserisci qui la descrizione dell'immagine


O...:

  1. Potresti comprare Alfred
  2. Puoi usare Cmd+ Shift+Eject

3
Solo per notare: Alfred e il cmd + maiusc + espulsione uccide la rete quando sospende la macchina. Questo è molto utile perché blocca semplicemente lo schermo.
BeepDog,

3
Quando eseguo lo script, si apre il menu del portachiavi e si blocca. Quando chiudo il menu, visualizzo questo errore:System Events got an error: Can’t get menu 1 of menu bar item 2 of menu bar 1 of application process "SystemUIServer". Invalid index.
Macil,

@AgentME sei sicuro di aver eseguito i passaggi 1-4? Ho anche aggiornato il codice, quindi provalo dopo aver eseguito i passaggi 1-4 :)
ᔕᖺᘎᕊ

@ ᔕᖺᘎᕊ Ottengo lo stesso errore di cui sopra, "Indice non valido"

7

Ho trovato questo su un'altra risposta, ma un AppleScript che contiene semplicemente le seguenti opere per me.

 tell application "Finder" to sleep

1
Ho combinato questa risposta con la risposta accettata e ha funzionato molto bene. Forse la risposta accettata potrebbe incorporare questo.
David Cullen,

Contrariamente al codice nella risposta accettata, il codice di questa risposta non richiede l'impostazione dei privilegi per tutte le app in cui si desidera utilizzare il collegamento e non richiede inoltre che lo stato del portachiavi sia visibile nella barra dei menu.
Valyron,

Dipende dalle preferenze che il sonno meteorologico effettivamente blocca. Sfortunatamente per me questo non funziona perché la nostra organizzazione forza l'impostazione a bloccarsi 1 minuto dopo aver dormito
quuxman

3

macOS 10.11, El Capitan, sembra aver rotto la risposta di using usando AppleScripts, ma ho scoperto che se avessi installato Lock Screen e avessi fatto aprire il mio "Blocco schermo" al mio servizio Automator, il resto del processo avrebbe funzionato come previsto (purché abbia chiamato il servizio "lock-screen", non "Lock Screen": apparentemente gli spazi nel nome del file interrompono la scorciatoia da tastiera per molti utenti macOS).

Consulta la sezione Blocca scorciatoia su Mac OS X per una guida dettagliata illustrata.


3

Ho una semplice fodera per questo. Utilizza gli eventi di sistema per inviare la combinazione di tasti predefinita per il comando Blocca schermo e funziona in tutte le versioni di OSX da High Sierra (10.13) in poi. Perfino il Mojave! Sebbene richiederà ulteriori autorizzazioni di sicurezza per l'app, nelle versioni più recenti di OSX

tell application "System Events" to keystroke "q" using {control down, command down}

1
Questa domanda è stata posta il 21 giugno 14 e la tua risposta non è applicabile alle versioni di OS X in esecuzione in quel momento. Modifica la tua risposta per includere il contesto pertinente di quali versioni di macOS funzionano.
user3439894

1
Funziona in tutte le versioni di OSX. incluso Mojave
user1270949

Non è una scorciatoia da tastiera predefinita in tutte le versioni di OS X e, di fatto, non funziona su nessuna versione di OS X ed è stata introdotta solo in una delle versioni di macOS.
user3439894

1
Senti, sto solo cercando di aiutare e fornire una risposta che ha funzionato per me. Non ti piace? Cancellalo. Non me ne potrebbe fregare di meno
user1270949

2
Funziona come un incantesimo (almeno per me su Mojave). Non sono sicuro del motivo per cui questo altro commentatore sta dicendo che non funziona. È una soluzione semplice e pulita. Grazie per averlo condiviso.
PIL2

2

Uso una macro per accettare il collegamento Comando-L. Di recente passato da Windows a Mac, era importante un modo semplice per bloccare lo schermo. In Windows, basta semplicemente premere il tasto Windows e L e, voilà, bloccato.

Usando Keyboard Maestro , ho creato una macro per la scorciatoia Comando-L, essendo sostanzialmente la stessa (confrontando il tasto Comando con il tasto Windows). Il collegamento attiva la funzione "Finestra di accesso", che blocca lo schermo. Facile, almeno per me.

(In Keyboard Maestro, la funzione "Finestra di accesso" si trova in Azioni> Controllo del sistema.)


1

Per High Sierra (10.13), la risposta accettata non funziona poiché Keychain Access non ha Check Show Status in Menu Baropzioni. Ma, basato sul spudoratamente saccheggio della fonte dell'app Lockscreen (come menzionato da @Alice Purcell), ho scoperto questa ingegnosa soluzione alternativa per gli script della GUI:

activate application "SystemUIServer"
tell application "System Events"
    tell process "SystemUIServer" to keystroke "q" using {command down, control down}
end tell
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.