Ekranı kilitlemek için AppleScript kullanma


11

shift+ ctrl+ Tuşlarına basarak aynı şekilde Mac'imi kilitleyen bir elyazısına ihtiyacım var eject. İki farklı yaklaşım denedim ama ikisi de başarısız oldu. Birincisi, başarısız olan bir komut dosyası için internette arama yapmaktı. Sadece ekran koruyucu veya istemediğim diğer uygulamalarla çözümler var. Sadece tarif ettiğim şeyi kullanmak istiyorum. İkincisi, el yazmasına, işe yaramayan üç tuşa basmasını söylemekti. Birisi bana Mac'imi nasıl kilitleyebileceğimi ya da elmalı yazıyı üç tuşa basmasını nasıl söyleyebilseydi, çok mutlu olurum, çünkü biraz sinirli oluyorum.

Yanıtlar:


13

Dan bilgi edinme Bu cevap ve bu cevap:

  1. Ekranın sağ üst tarafındaki Spot Işığı düğmesine basın ( Cmd+ Space)
  2. Ara Keychain Access. Bunu aç
  3. Açık Tercihler ( Cmd+ ,(virgül))
  4. Kontrol Show Status in Menu Bar
  5. Ekranın sağ üst tarafındaki Spot Işığı düğmesine basın ( Cmd+ Space)
  6. Ara Automator. Bunu seçin
  7. Yeni oluşturmak Service
  8. Ve düğmelerinin Run Applescriptyanında arama yapın. Bunu çift tıklayınActionsVariables
  9. Onay kutularının Service receives no input in any application
  10. Bu Applescript'i yapıştırın:

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

Bu Otomatikleştiriciyi aşağıdaki gibi kaydedin Lock screen(not: GIF'teki kod farklıdır!)

resim açıklamasını buraya girin


Kısayol yapmak için:

  1. Ekranın sol üst köşesindeki Apple düğmesine basın
  2. Tıklayın System Preferences
  3. Tıklayın Keyboard
  4. Tıklama Keyboard Shortcutssekmesi
  5. Tıklayın Services
  6. Yeni oluşturduğunuz hizmetin adını bulun
  7. Sağdaki boş alanı tıklayın
  8. Kısayolunuzu yazın

Kısayolunuzu herhangi bir uygulamada kullanın!

resim açıklamasını buraya girin


VEYA...:

  1. Alfred'i satın alabilirsin
  2. Cmd+ Shift+ KullanabilirsinizEject

3
Sadece şunu not edin: alfred ve cmd + shift + eject, makineyi askıya aldığında ağı öldürür. Bu sadece kullanışlı çünkü ekranı kilitliyor.
BeepDog

3
Komut dosyasını çalıştırdığımda, anahtarlık menüsünü açar ve takılır. Menüyü kapattığımda şu hatayı alıyorum: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. Adımları uyguladığınızdan emin misiniz? Ben de kodu güncelledim bu yüzden 1-4 adımlarını yaptıktan sonra deneyin :)
ᔕᖺᘎᕊ

@ ᔕᖺᘎᕊ Yukarıdaki ile aynı hatayı alıyorum, "Geçersiz Dizin"

7

Bunu başka bir cevapta buldum, ancak benim için aşağıdaki çalışmaları içeren bir AppleScript.

 tell application "Finder" to sleep

1
Bu cevabı kabul edilen cevapla birleştirdim ve çok iyi çalıştı. Belki kabul edilen cevap bunu içerebilir.
David Cullen

Kabul edilen yanıttaki kodun aksine, bu cevabın kodu kısayolunuzu kullanmak istediğiniz tüm uygulamalar için ayrıcalıkların ayarlanmasını gerektirmez ve ayrıca anahtarlık durumunun menü çubuğunda görünür olmasını gerektirmez.
valyron

Hava uyku gerçekten kilitleri tercihlerine bağlıdır. Ne yazık ki benim için bu işe yaramıyor çünkü organizasyonumuz uyuduktan sonra 1 dakika kilitlenmeye
zorlanıyor

3

macOS 10.11, El Capitan, AppleScripts'i kullanarak broken'nin cevabını kırmış gibi görünüyor , ancak Kilit Ekranı yüklediysem ve Automator Servisimi "Kilit Ekranı Paketini" açtıysam , sürecin geri kalanının istendiği gibi çalıştığını gördüm ( Hizmet "kilit ekranı", "Kilit Ekranı" değil: Görünüşe göre dosya adındaki boşluklar birçok macOS kullanıcısı için klavye kısayolunu kırıyor).

Adım adım açıklamalı kılavuz için Mac OS X'te ekran kısayolunu kilitleme konusuna bakın .


3

Bunun için basit bir astarım var. Ekranı Kilitle komutu için varsayılan tuş kombinasyonunu göndermek için Sistem Olayları'nı kullanır ve High Sierra'dan (10.13) tüm OSX sürümlerinde çalışır. Mojave bile! Uygulama için ek Güvenlik izinleri isteyecek olsa da, daha yeni OSX sürümlerinde

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

1
Bu soru 21 Haziran 14'te soruldu ve cevabınız o anda çalışan OS X sürümleri için geçerli değildir. Lütfen yanıtınızı, bunun hangi macOS sürümlerinde çalıştığını ilgili içeriği içerecek şekilde düzenleyin.
user3439894

1
OSX'in tüm sürümlerinde çalışır. Mojave dahil
user1270949

O değil OS X her sürümünde varsayılan klavye kısayolu ve aslında bir olsun OS X herhangi bir sürümü üzerinde çalışmaz ve sadece MacOS sürümü birinde tanıtıldı.
user3439894

1
Bak, sadece benim için işe yarayan bir cevap vermeye yardım etmeye çalışıyorum. Beğenmediniz mi? Silin. Daha az umursamadım
user1270949

2
Bir cazibe gibi çalışır (en azından benim için Mojave üzerinde yapar). Bu diğer yorumcunun neden işe yaramadığını söylediğinden emin değilim. Basit ve temiz bir çözüm. Paylaştığın için teşekkürler.
GDP2

2

Komut-L kısayolunu kabul etmek için bir makro kullanıyorum. Son zamanlarda Windows'tan Mac'e geçtikten sonra ekranımı kilitlemenin kolay yolu önemliydi. Windows'da, kişinin sadece Windows tuşuna basması ve L ve voila kilitli olması gerekir.

Keyboard Maestro kullanarak , Command-L kısayolu için esasen aynı olan bir makro oluşturdum (Command tuşunu Windows tuşuyla karşılaştırarak). Kısayol, ekranı kilitleyen "Oturum Açma Penceresi" işlevini tetikler. Kolay peasy, en azından benim için.

(Maestro Klavyesinde "Giriş Penceresi" işlevi Eylemler> Sistem Kontrolü altındadır.)


1

High Sierra (10.13) için, Anahtarlık Erişimi'nin Check Show Status in Menu Barseçeneği olmadığından kabul edilen cevap çalışmaz . Ancak, Lockscreen Uygulaması'nın kaynağını utanmadan yağmalamaya dayanarak (@Alice Purcell tarafından belirtildiği gibi), bu şık GUI komut dosyası geçici çözümünü keşfettim:

activate application "SystemUIServer"
tell application "System Events"
    tell process "SystemUIServer" to keystroke "q" using {command down, control down}
end tell
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.