2014-01-31 74 views
0

我基本上想弄明白這一點,因爲我想用我的iMac作爲我的MacBook Air的外接顯示器。我也想爲我的MacBook Air使用iMac鍵盤,但由於某些原因,Apple決定一旦按住Command F2來激活目標顯示模式(意味着它現在是外部顯示器),則與iMac配對的鍵盤不能與iMac無法配對。Applescript按住⌘F2 5秒鐘?

爲了解決這個問題,我想我最初只需將鍵盤與macbook air配對(不帶鍵盤的iMac),然後創建一個Applescript宏來模擬鍵盤並按住Command F2五秒鐘,需要去購買另一個蘋果鍵盤。

這是我到目前爲止,它不起作用。它告訴我F2是不正確的。我很確定F2的關鍵代碼是120.

tell application "System Events" 
    key down Command 
    key down F2 
    delay 5 
    key up Command 
    key up F2 
end tell 

有沒有人知道我可能會做到這一點?

+0

這可能是更好的要求在http://apple.stackexchange.com –

回答

3

意見爲OS X 10.9.1的:

有與你發送F2的方式有問題(你需要使用(key code 120),而不是僅僅120),但更大的問題是,key up/down只有作品如預期與修改器鍵。

雖然NON-修改鍵可以(使用(key code <n>)語法),所述向上/向下方面被忽略,使得無論key down (key code <n>)key up (key code <n>)語句有效相同key code <n>(即,Key Down事件被髮送緊接着一個Key Up事件被髮送)。

有一個建議的解決方法here的基礎上,短序列重複發送鍵擊 - 這是值得一試的,但是從技術角度看,它是不一樣保持鍵[組合] 按住,所以我不確定它會起作用。

適合您的情況(與key code更換key down),我們得到:

tell application "System Events" 
    set now to the seconds of the (current date) 
    set later to now + 5 
    if later > 60 then set later to later - 60 
    key down command 
    # Workaround: send F2 repeatedly. 
    repeat while the seconds of the (current date) is not later 
     key code 120 
    end repeat 
    key up command 
end tell 

正如我所說的:這可能無法正常工作;還要注意,循環是「緊」,這意味着它會讓你的機器非常繁忙(如果重複發送密鑰,但不一定儘可能快就是一個選項,你可以插入一個簡短的delay)。

一些可選的背景資料

  • key upkey down命令,同時還要求System Events背景下,是不是在System Events.sdef暴露,應用程序的字典(僅key codekeystroke列) - 此可能表明蘋果公司並未正式支持它們。
  • 在OS X 10.9.1上(與OS X 10.8不同 - 不知道早期版本),有一個奇怪的錯誤,當您將key down(keycode <n>)說明符一起使用時,會發送額外的「a」按鍵。確定鍵碼值的
  • 方式(從其他各種SO答案蒐集,大多):
    • Key Codes,在交互使用免費的GUI應用程序 - 非常方便。
    • 系統(十六進制格式代碼的列表)上的下面的頭文件:
      /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
    • List of decimal codes (incomplete)
+0

太謝謝你了!我無法讓它工作,但您嘗試幫助我的努力非常感謝!非常有知識。我會完全給你迴應的給予好評但是我不是15尚未...我有2個級別去。 –

1

我已經開始了一個項目,做同樣的事情,即監控iMac和自動觸發目標顯示模式和的MacBook被連接時切換爲關閉藍牙。您可以從https://github.com/duanefields/VirtualKVM下載它。