ใช้ AppleScript เพื่อล็อคหน้าจอ


11

ฉันต้อง AppleScript ซึ่งล็อคฉัน Mac ในลักษณะเดียวกับการกดshift+ ctrl+ ejectจะ ฉันลองสองวิธีที่ต่างกัน แต่ทั้งคู่ล้มเหลว คนแรกคือการค้นหาสคริปต์อินเทอร์เน็ตซึ่งล้มเหลว มีวิธีแก้ไขเฉพาะกับสกรีนเซฟเวอร์หรือแอปพลิเคชั่นอื่น ๆ ซึ่งฉันไม่ต้องการ ฉันแค่ต้องการใช้สิ่งที่ฉันอธิบาย อย่างที่สองคือบอก applescript ให้กดสามปุ่มที่ใช้ไม่ได้ หากมีใครสามารถบอกฉันได้ว่าจะล็อก Mac ของฉันอย่างไรหรือจะบอก applescript ให้กดปุ่มสามปุ่มได้อย่างไรฉันก็จะมีความสุขมาก ๆ เพราะฉันรู้สึกหงุดหงิด

คำตอบ:


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 Applescriptถัดจากปุ่มActionsและ Variablesคลิกสองครั้งที่นี่
  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
เพียงเพื่อทราบ: อัลเฟรดและ 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

มันขึ้นอยู่กับการตั้งค่าการนอนหลับสภาพอากาศจริง ๆ ล็อค น่าเสียดายสำหรับฉันนี่ไม่ทำงานเพราะองค์กรของเราบังคับให้การตั้งค่าเพื่อล็อค 1 นาทีหลังนอน
4323 quuxman

3

macOS 10.11, El Capitan, ดูเหมือนว่าคำตอบของ broken จะหักโดยใช้ AppleScripts แต่ฉันพบว่าถ้าฉันติดตั้งLock Screenและทำให้ Automator Service เปิด "Lock Screen Bundle" กระบวนการที่เหลือก็ทำงานตามที่ตั้งใจไว้ บริการ "ล็อคหน้าจอ" ไม่ใช่ "ล็อคหน้าจอ": ดูเหมือนว่ามีช่องว่างในชื่อไฟล์ทำลายแป้นพิมพ์ลัดสำหรับผู้ใช้ macOS หลายคน)

ดูทางลัดล็อคหน้าจอใน Mac OS Xเพื่อดูคำแนะนำทีละขั้นตอนที่แสดงไว้


3

ฉันมีหนึ่งซับง่ายสำหรับเรื่องนี้ มันใช้เหตุการณ์ระบบเพื่อส่งคำสั่งผสมคีย์เริ่มต้นสำหรับคำสั่งล็อคหน้าจอและทำงานใน OSX ทุกรุ่นจาก High Sierra (10.13) บน แม้แต่ซ้อม! แม้ว่ามันจะพร้อมท์ขอการอนุญาตด้านความปลอดภัยเพิ่มเติมสำหรับแอพในเวอร์ชัน OSX ที่ใหม่กว่า

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

1
คำถามนี้ถูกถามเมื่อวันที่ 21 มิถุนายน '14 และคำตอบของคุณไม่สามารถใช้ได้กับ OS X เวอร์ชันที่ทำงานในเวลานั้น โปรดแก้ไขคำตอบของคุณเพื่อรวมบริบทที่เกี่ยวข้องกับเวอร์ชันของ macOS ที่ใช้งานได้
user3439894

1
ใช้งานได้กับ OSX ทุกรุ่น รวมถึง Mojave
user1270949

มันไม่ใช่แป้นพิมพ์ลัดเริ่มต้นในทุกรุ่นของ OS X และที่จริงแล้วมันไม่ทำงานบน OS X ทุกรุ่นและเปิดตัวใน MacOS รุ่นเดียวเท่านั้น
user3439894

1
ดูสิฉันแค่พยายามช่วยและให้คำตอบที่เหมาะกับฉัน ไม่ชอบเหรอ ลบมัน. ฉันไม่สน
หรอก

2
ทำงานเหมือนมีเสน่ห์ (อย่างน้อยมันก็ใช้ได้กับฉันในโมฮาวี) ไม่แน่ใจว่าทำไมผู้วิจารณ์คนอื่นถึงบอกว่ามันไม่ทำงาน มันเป็นวิธีที่ง่ายและสะอาด ขอขอบคุณที่แบ่งปัน
GDP2

2

ฉันใช้มาโครเพื่อยอมรับ Command-L ทางลัด เมื่อเร็ว ๆ นี้การเปลี่ยนจาก Windows เป็น Mac เป็นวิธีที่ง่ายในการล็อคหน้าจอของฉันเป็นสิ่งสำคัญ ใน Windows หนึ่งต้องกดปุ่ม Windows และ L และและ voila ถูกล็อค

การใช้คีย์บอร์ดมาสโทรฉันสร้างแมโครสำหรับช็อตคัต Command-L โดยพื้นฐานแล้วจะเป็นแบบเดียวกัน (เปรียบเทียบคีย์คำสั่งกับคีย์ Windows) ช็อตคัตทริกเกอร์ฟังก์ชัน "หน้าต่างเข้าสู่ระบบ" ซึ่งล็อคหน้าจอ peasy ง่ายอย่างน้อยสำหรับฉัน

(ใน Keyboard Maestro ฟังก์ชั่น "หน้าต่างเข้าสู่ระบบ" อยู่ภายใต้การกระทำ> การควบคุมระบบ)


1

สำหรับ High Sierra (10.13) คำตอบที่ยอมรับไม่ทำงานเนื่องจาก Keychain Access ไม่มี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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.