使用AppleScript锁定屏幕


11

我需要一个applescript,以按shift+ ctrl+ 的相同方式锁定我的Mac eject。我尝试了两种不同的方法,但是都失败了。第一个是在互联网上搜索脚本,但失败了。只有屏幕保护程序或其他应用程序的解决方案是我不想要的。我只想使用我描述的内容。第二个是告诉applescript按下三个无效的键。如果有人可以告诉我如何锁定Mac或如何告诉applescript按下三个键,我会很高兴,因为我有点沮丧。

Answers:


13

从获取信息这个答案,这个答案:

  1. 按屏幕右上方的Spotlight按钮(Cmd+ Space
  2. 搜索Keychain Access。打开这个
  3. 打开首选项(Cmd+ ,(逗号))
  4. 校验 Show Status in Menu Bar
  5. 按屏幕右上方的Spotlight按钮(Cmd+ Space
  6. 搜索Automator。选择这个
  7. 创建新的 Service
  8. Run ApplescriptActionsVariables按钮旁边搜索。双击此
  9. 确保复选框为 Service receives no input in any application
  10. 粘贴此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

将此Automator保存为类似Lock screen(注意:GIF中的代码是不同的!)

在此处输入图片说明


捷径:

  1. 按屏幕左上方的Apple按钮
  2. 请点击 System Preferences
  3. 请点击 Keyboard
  4. 点击Keyboard Shortcuts标签
  5. 请点击 Services
  6. 查找您刚刚创建的服务的名称
  7. 单击右侧的空白
  8. 在输入您的快捷方式

在任何应用程序中使用您的快捷方式!

在此处输入图片说明


要么...:

  1. 你可以买阿尔弗雷德
  2. 您可以使用Cmd+ Shift+Eject

3
仅需注意:alfred和cmd + shift + eject在挂起计算机时会杀死网络。这非常方便,因为它只是锁定屏幕。
BeepDog

3
当我运行脚本时,它会打开钥匙串菜单并卡住。当我关闭菜单时,出现以下错误: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您确定已完成步骤1-4?我还更新了代码,以便尝试做步骤1-4 :)后
ᔕᖺᘎᕊ

@ᔕᖺᘎᕊ我收到与上面相同的错误,“无效索引”

7

在另一个答案上找到了这个但是一个AppleScript仅包含以下对我有用的作品。

 tell application "Finder" to sleep

1
我将此答案与公认的答案结合在一起,并且效果很好。也许被接受的答案可以包含这一点。
David Cullen

与接受的答案中的代码相反,此答案的代码不需要为要使用快捷方式的所有应用设置特权,也不需要在菜单栏中可见钥匙串状态。
valyron'4

这取决于偏好,天气睡眠实际上会锁定。对我来说不幸的是,这是行不通的,因为我们的组织强迫睡眠后1分钟锁定设置
quuxman

3

macOS 10.11 El Capitan 使用AppleScripts 似乎无法解决,的问题,但是我发现,如果我安装了Lock Screen并使Automator Service打开其“ Lock Screen Bundle”,则其余过程按预期工作(假设我叫服务是“锁定屏幕”,而不是“锁定屏幕”:文件名中的空格显然会破坏许多macOS用户的键盘快捷键)。

有关图示的逐步指南,请参见Mac OS X上的“锁定屏幕快捷方式”


3

我为此有一个简单的衬板。它使用系统事件发送“锁定屏幕”命令的默认键组合,并且可以在High Sierra(10.13)及更高版本的OSX的所有版本中使用。甚至莫哈韦!尽管会提示您为该应用提供其他安全权限,但在较新的OSX版本中

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

1
这个问题是在2014年6月21日问到的,您的回答不适用于当时运行的OS X版本。请编辑您的答案,以包括适用于此版本的macOS的相关上下文
。– user3439894

1
它适用于所有版本的OSX。包括Mojave
user1270949 '19

不是所有版本的OS X的默认键盘快捷键,事实上,它不适用于任何版本的OS X,并且仅在macOS的一个版本中引入。
user3439894 '19

1
看,我只是在尝试帮助并提供对我有用的答案。不喜欢吗 删除它。我不在乎
user1270949 '19

2
就像魅力一样工作(至少在Mojave上对我有用)。不知道为什么其他评论者说这行不通。这是一个简单干净的解决方案。感谢分享。
GDP2

2

我使用宏接受快捷键Command-L。最近从Windows切换到Mac,锁定屏幕的简便方法非常重要。在Windows中,只需按Windows键和L,然后锁定即​​可。

使用Keyboard Maestro,我为快捷键Command-L创建了一个宏,该宏基本相同(将Command键与Windows键进行比较)。该快捷方式触发功能“登录窗口”,该功能锁定屏幕。至少对我来说容易。

(在Keyboard Maestro中,“登录窗口”功能位于“操作”>“系统控制”下。)


1

对于High Sierra(10.13),无法接受答案,因为“钥匙串访问”没有Check Show Status in Menu Bar选择。但是,基于无私掠夺Lockscreen App的源代码(如@Alice Purcell所述),我发现了这个漂亮的GUI脚本解决方法:

activate application "SystemUIServer"
tell application "System Events"
    tell process "SystemUIServer" to keystroke "q" using {command down, control down}
end tell
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.