Utiliser AppleScript pour verrouiller l'écran

11

J'ai besoin d'un applescript qui verrouille mon Mac de la même manière en appuyant sur shift+ ctrl+ eject. J'ai essayé deux approches différentes, mais les deux ont échoué. La première consistait à rechercher un script sur Internet, ce qui a échoué. Il n'y a que des solutions avec économiseur d'écran ou d'autres applications, dont je ne veux pas. Je veux juste utiliser ce que j'ai décrit. La seconde consistait à dire à applescript d'appuyer sur les trois touches qui ne fonctionnaient pas. Si quelqu'un pouvait me dire comment verrouiller mon Mac ou dire à applescript d'appuyer sur trois touches, je serais vraiment heureux, car je suis un peu frustré.

Lavaking
la source

Réponses:

13

Obtenir des informations de cette réponse et de cette réponse:

  1. Appuyez sur le bouton Spotlight en haut à droite de l'écran ( Cmd+ Space)
  2. Cherchez Keychain Access. Ouvre ça
  3. Ouvrir les préférences ( Cmd+ ,(virgule))
  4. Vérifier Show Status in Menu Bar
  5. Appuyez sur le bouton Spotlight en haut à droite de l'écran ( Cmd+ Space)
  6. Cherchez Automator. Sélectionnez ceci
  7. Créer un nouveau Service
  8. Recherchez à Run Applescriptcôté des boutons Actionset Variables. Double-cliquez sur ce
  9. Assurez-vous que les cases à cocher sont Service receives no input in any application
  10. Collez cet 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

Enregistrez cet Automator comme quelque chose comme Lock screen(remarque: le code dans GIF est différent!)

entrez la description de l'image ici


Pour créer un raccourci:

  1. Appuyez sur le bouton Apple en haut à gauche de l'écran
  2. Cliquez sur System Preferences
  3. Cliquez sur Keyboard
  4. Cliquez sur l' Keyboard Shortcutsonglet
  5. Cliquez sur Services
  6. Trouvez le nom du service que vous venez de créer
  7. Cliquez sur l'espace vide à droite
  8. Tapez votre raccourci dans

Utilisez votre raccourci dans n'importe quelle application!

entrez la description de l'image ici


OU...:

  1. Vous pouvez acheter Alfred
  2. Vous pourriez utiliser Cmd+ Shift+Eject
ᔕᖺᘎᕊ
la source
3
Juste à noter: alfred et le cmd + shift + eject tue le réseau quand il suspend la machine. C'est super pratique car il ne fait que verrouiller l'écran.
BeepDog
3
Lorsque j'exécute le script, il ouvre le menu du trousseau et se bloque. Lorsque je ferme le menu, j'obtiens cette erreur: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 êtes-vous sûr d'avoir effectué les étapes 1 à 4? J'ai également mis à jour le code, essayez donc après avoir effectué les étapes 1 à 4 :)
ᔕᖺᘎᕊ
@ ᔕᖺᘎᕊ J'obtiens la même erreur que ci-dessus, "Index invalide"
7

J'ai trouvé cela sur une autre réponse, mais un AppleScript qui contient simplement les œuvres suivantes pour moi.

 tell application "Finder" to sleep
Alistair McMillan
la source
1
J'ai combiné cette réponse avec la réponse acceptée et cela a très bien fonctionné. Peut-être que la réponse acceptée pourrait intégrer cela.
David Cullen
Contrairement au code de la réponse acceptée, le code de cette réponse ne nécessite pas de privilèges de configuration pour toutes les applications où vous souhaitez utiliser votre raccourci et ne nécessite pas non plus que l'état du trousseau soit visible dans la barre de menus.
valyron
Cela dépend des préférences météo, le sommeil se verrouille. Malheureusement pour moi, cela ne fonctionne pas parce que notre organisation force le paramètre à se verrouiller 1 minute après avoir dormi
quuxman
3

macOS 10.11, El Capitan, semble avoir brisé la réponse de ᔕᖺᘎᕊ en utilisant AppleScripts, mais j'ai trouvé que si j'installais Screen Lock et que mon service d'automatisation ouvrait son "Lock Screen Bundle", le reste du processus fonctionnait comme prévu (à condition que j'appelle le Service "lock-screen", pas "Lock Screen": apparemment des espaces dans le nom de fichier cassent le raccourci clavier pour de nombreux utilisateurs de macOS).

Voir Raccourci d'écran de verrouillage sur Mac OS X pour un guide illustré étape par étape.

Alice Purcell
la source
3

J'ai une doublure simple pour cela. Il utilise les événements système pour envoyer la combinaison de touches par défaut pour la commande Verrouiller l'écran et fonctionne dans toutes les versions d'OSX à partir de High Sierra (10.13). Même Mojave! Bien qu'il demande des autorisations de sécurité supplémentaires pour l'application, dans les nouvelles versions OSX

tell application "System Events" to keystroke "q" using {control down, command down}
user1270949
la source
1
Cette question a été posée le 21 juin 14 et votre réponse ne s'applique pas aux versions d'OS X en cours d'exécution à ce moment-là. Veuillez modifier votre réponse pour inclure le contexte pertinent des versions de macOS dans
lesquelles
1
Il fonctionne dans toutes les versions d'OSX. y compris Mojave
user1270949
Ce n'est pas un raccourci clavier par défaut dans toutes les versions d'OS X, et en fait, il ne fonctionne sur aucune version d'OS X et n'a été introduit que dans l'une des versions de macOS.
user3439894
1
Écoutez, j'essaie juste d'aider et de fournir une réponse qui a fonctionné pour moi. Vous ne l'aimez pas? Supprime-le. Je m'en fous
user1270949
2
Fonctionne comme un charme (du moins pour moi sur Mojave). Je ne sais pas pourquoi cet autre commentateur dit que cela ne fonctionne pas. C'est une solution simple et propre. Merci de le partager.
GDP2
2

J'utilise une macro pour accepter le raccourci Commande-L. Ayant récemment changé de Windows pour Mac, il était important de verrouiller facilement mon écran. Sous Windows, il suffit d'appuyer sur la touche Windows et L, et, voila, verrouillé.

À l'aide de Keyboard Maestro , j'ai créé une macro pour le raccourci Command-L, étant essentiellement la même (en comparant la touche Commande à la touche Windows). Le raccourci déclenche la fonction "Fenêtre de connexion", qui verrouille l'écran. Peasy facile, au moins pour moi.

(Dans Keyboard Maestro, la fonction "Fenêtre de connexion" se trouve sous Actions> Contrôle du système.)

bifjamod
la source
1

Pour High Sierra (10.13), la réponse acceptée ne fonctionne pas car l'accès au trousseau n'a pas d' Check Show Status in Menu Baroption. Mais, basé sur un pillage sans vergogne de la source de l'application Lockscreen (comme mentionné par @Alice Purcell), j'ai découvert cette astucieuse solution de script GUI:

activate application "SystemUIServer"
tell application "System Events"
    tell process "SystemUIServer" to keystroke "q" using {command down, control down}
end tell
ijoseph
la source