我不認爲你可以按你的意願去做。如果您查看frontApp的屬性,則沒有屬性會指示它處於哪個屏幕上。但是,你可以做的是檢查應用程序窗口的位置。如果你得到一個進程窗口的屬性,那麼你會看到它有一個「位置」屬性。您可以檢查這些座標以確定它位於哪個屏幕上。
例如,我有2個屏幕。我的筆記本電腦設置爲主屏幕。我知道主屏幕的屏幕分辨率是1680x1050。因此,如果我檢查一個窗口,並且它的位置在這些座標之外,那麼我知道它必須在第二個顯示器上。這是我能做到的。
注意:我可以告訴哪些應用程序在第二個顯示器上有窗口,但不知道第二個顯示器上的哪個應用程序是最前面的......就像你問的那樣。你必須爲此找出其他的東西。我向你展示這是一個想法,也許你可以適合你的情況。
在這裏,我只在第二臺顯示器上獲得第一個應用程序的窗口。這應該告訴你這個想法,你可以根據需要調整代碼。
set mainScreenResX to 1680
set mainScreenResY to 1050
tell application "System Events"
set firstFoundAppOnSecondScreen to missing value
set visibleApps to application processes whose visible is true
repeat with visibleApp in visibleApps
try
tell visibleApp
set {x, y} to position of window 1
if x > mainScreenResX or x < 0 or y > mainScreenResY or y < 0 then
set firstFoundAppOnSecondScreen to name
exit repeat
end if
end tell
end try
end repeat
return firstFoundAppOnSecondScreen
end tell
任何獲取鼠標所在應用程序窗口名稱的方法? – AdamGold
結束點擊以便應用程序將獲得焦點,並使用您的腳本確保它不被聚焦。謝謝。 – AdamGold
很高興你找到了解決方案。祝你好運。 – regulus6633