Sử dụng AppleScript để khóa màn hình


11

Tôi cần một applescript khóa Mac của tôi theo cùng cách nhấn shift+ ctrl+ eject. Tôi đã thử hai cách tiếp cận khác nhau, nhưng cả hai đều thất bại. Việc đầu tiên là tìm kiếm trên internet một kịch bản, thất bại. Chỉ có giải pháp với trình bảo vệ màn hình hoặc các ứng dụng khác mà tôi không muốn. Tôi chỉ muốn sử dụng những gì tôi mô tả. Cái thứ hai là nói với applescript để bấm ba phím không hoạt động. Nếu ai đó có thể cho tôi biết cách khóa máy Mac của tôi hoặc làm thế nào để nói với applescript để bấm ba phím, tôi sẽ thực sự hạnh phúc, vì tôi đang cảm thấy thất vọng.

Câu trả lời:


13

Nhận được thông tin từ này câu trả lời và này trả lời:

  1. Nhấn nút Spotlight ở phía trên bên phải màn hình ( Cmd+ Space)
  2. Tìm kiếm Keychain Access. Mở thứ này
  3. Mở Tùy chọn ( Cmd+ ,(dấu phẩy))
  4. Kiểm tra Show Status in Menu Bar
  5. Nhấn nút Spotlight ở phía trên bên phải màn hình ( Cmd+ Space)
  6. Tìm kiếm Automator. Chọn cái này
  7. Tạo mới Service
  8. Tìm kiếm Run Applescriptbên cạnh Actionsvà các Variablesnút. Nhấp đúp chuột vào đây
  9. Hãy chắc chắn rằng các hộp kiểm tra Service receives no input in any application
  10. Dán bản sao này:

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

Lưu Trình tự động này như một cái gì đó giống như Lock screen(lưu ý: mã trong GIF là khác nhau!)

nhập mô tả hình ảnh ở đây


Để tạo một phím tắt:

  1. Nhấn nút Apple ở phía trên bên trái màn hình
  2. Nhấp chuột System Preferences
  3. Nhấp chuột Keyboard
  4. Bấm vào Keyboard Shortcutstab
  5. Nhấp chuột Services
  6. Tìm tên của dịch vụ bạn vừa tạo
  7. Nhấp vào không gian trống bên phải
  8. Nhập phím tắt của bạn vào

Sử dụng phím tắt của bạn trong bất kỳ ứng dụng!

nhập mô tả hình ảnh ở đây


HOẶC LÀ...:

  1. Bạn có thể mua Alfred
  2. Bạn có thể sử dụng Cmd+ Shift+Eject

3
Chỉ cần lưu ý: alfred và cmd + shift + đẩy ra sẽ giết chết mạng khi nó tạm dừng máy. Điều này là siêu tiện dụng vì nó chỉ khóa màn hình.
BeepDog

3
Khi tôi chạy tập lệnh, nó sẽ mở menu móc khóa và bị kẹt. Khi tôi đóng menu, tôi gặp lỗi này: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 bạn có chắc là bạn đã thực hiện các bước 1-4 không? Tôi cũng đã cập nhật mã vì vậy hãy thử mà sau khi làm các bước 1-4 :)
ᔕᖺᘎᕊ

@ Tôi nhận được lỗi tương tự như trên, "Chỉ mục không hợp lệ"

7

Tìm thấy điều này trên một câu trả lời khác nhưng một AppleScript chỉ đơn giản chứa các tác phẩm sau đây cho tôi.

 tell application "Finder" to sleep

1
Tôi đã kết hợp câu trả lời này với câu trả lời được chấp nhận và nó hoạt động rất tốt. Có lẽ câu trả lời được chấp nhận có thể kết hợp điều này.
David Cullen

Trái với mã trong câu trả lời được chấp nhận, mã của câu trả lời này không yêu cầu thiết lập đặc quyền cho tất cả các ứng dụng mà bạn muốn sử dụng phím tắt và cũng không yêu cầu trạng thái móc khóa hiển thị trong thanh menu.
valyron

Nó phụ thuộc vào sở thích thời tiết ngủ thực sự khóa. Thật không may cho tôi, điều này không hiệu quả vì tổ chức của chúng tôi buộc cài đặt khóa 1 phút sau khi ngủ
quuxman

3

macOS 10.11, El Capitan, dường như đã phá vỡ câu trả lời của Apple khi sử dụng AppleScripts, nhưng tôi thấy rằng nếu tôi cài đặt Khóa màn hình và làm cho Dịch vụ tự động của tôi mở "Gói màn hình khóa", phần còn lại của quy trình hoạt động như dự định (với điều kiện tôi đã gọi Dịch vụ "khóa màn hình", không phải "Màn hình khóa": dường như khoảng trắng trong tên tệp phá vỡ lối tắt bàn phím cho nhiều người dùng macOS).

Xem Phím tắt màn hình trên Mac OS X để biết hướng dẫn từng bước minh họa.


3

Tôi có một lót đơn giản cho việc này. Nó sử dụng Sự kiện hệ thống để gửi tổ hợp phím mặc định cho lệnh Khóa màn hình và hoạt động trong tất cả các phiên bản OSX từ High Sierra (10.13) trở đi. Ngay cả Mojave! Mặc dù nó sẽ nhắc các quyền Bảo mật bổ sung cho Ứng dụng, nhưng trong các phiên bản OSX mới hơn

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

1
Câu hỏi này đã được hỏi vào ngày 21 tháng 6 năm 14 và câu trả lời của bạn không áp dụng cho các phiên bản OS X đang chạy tại thời điểm đó. Vui lòng chỉnh sửa câu trả lời của bạn để bao gồm bối cảnh có liên quan về phiên bản macOS này hoạt động.
user3439894

1
Nó hoạt động trong tất cả các phiên bản của OSX. bao gồm Mojave
user1270949

Đây không phải là lối tắt bàn phím mặc định trong tất cả các phiên bản OS X và thực tế là nó không hoạt động trên bất kỳ phiên bản OS X nào và chỉ được giới thiệu trong một trong các phiên bản macOS.
dùng3439894

1
Nhìn tôi chỉ đang cố gắng giúp đỡ và cung cấp một câu trả lời phù hợp với tôi. Đừng như vậy? Xóa đi. Tôi không thể quan tâm ít hơn
dùng1270949

2
Hoạt động như một lá bùa (ít nhất là đối với tôi trên Mojave). Không chắc chắn tại sao người bình luận khác nói rằng nó không hoạt động. Đó là một giải pháp đơn giản và sạch sẽ. Cảm ơn đã chia sẻ nó.
GDP2

2

Tôi sử dụng một macro để chấp nhận phím tắt Command-L. Gần đây đã chuyển từ Windows sang Mac, cách dễ dàng để khóa màn hình của tôi là rất quan trọng. Trong Windows, người ta chỉ cần nhấn phím Windows và L, và, thì bị khóa.

Sử dụng Bàn phím Maestro , tôi đã tạo một macro cho phím tắt Command-L, về cơ bản là giống nhau (so sánh phím Command với phím Windows). Phím tắt kích hoạt chức năng "Cửa sổ đăng nhập", khóa màn hình. Dễ dàng dễ dàng, ít nhất là với tôi.

(Trong Bàn phím Maestro, chức năng "Cửa sổ đăng nhập" nằm dưới Tác vụ> Điều khiển hệ thống.)


1

Đối với High Sierra (10.13), câu trả lời được chấp nhận không hoạt động vì Keychain Access không có Check Show Status in Menu Bartùy chọn. Nhưng, dựa trên việc cướp bóc một cách đáng xấu hổ nguồn của Ứng dụng Lockscreen (như được đề cập bởi @Alice Purcell), tôi đã phát hiện ra cách giải quyết kịch bản GUI tiện lợi này:

activate application "SystemUIServer"
tell application "System Events"
    tell process "SystemUIServer" to keystroke "q" using {command down, control down}
end tell
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.