2010-09-14 27 views
1

我一直在試圖從另一個應用程序獲得任何給定的窗口成爲最前面和最重點。製作另一個應用程序的窗口最前面和重點

這裏有兩種方法我都試過:

的AppleScript

tell application "Safari" 
    set index of window "Downloads" to 1 
    activate 
end tell 

爲什麼它不工作:雖然它似乎改變Z-順序,它不改變重點!之前的最前面的窗口,即使被模糊處理,仍保持焦點。

CoreGraphicServices

CGSWindowOrder(cid, wid, kCGSOrderAbove, nil) 

爲什麼它不工作:沒有被通用所有者,你不能改變另一個進程擁有一個窗口的順序。在這種情況下,讓自己成爲通用所有者不是一種選擇 - 我不想廢除Dock。

重溫

我需要一個窗口最前面,並從一個進程集中到另一個。 AppleScript無法集中注意力,因爲我沒有擁有該窗口,所以CGS不是一個選項。

任何解決方案/想法?

+0

您是否找到可以在今天工作的解決方案?未啓用輔助功能? – Noitidart 2015-08-10 04:13:17

回答

1

嘗試使用Accessibility API將AXPress動作發送到AXWindow。顯然,用戶需要訪問輔助設備。

+0

使用CGSWindow handle/id有沒有什麼方法可以創建AXWindow? – Edward 2010-09-14 08:34:24

+0

愛德華:不。獲得AXWindow的唯一方法是在AXApplication窗口中按標題查找窗口。這也意味着如果兩個窗口具有相同的標題,那麼就搞砸了。 – 2010-09-14 16:46:04

+0

這個AX的東西不再圍繞我認爲,這些日子有沒有任何非可訪問性的方法? :)感謝彼得! – Noitidart 2015-08-10 03:52:48

相關問題