2015-11-15 40 views
0

OSX中有一種方法可以獲取屏幕上可見的所有應用程序列表嗎?我可以獲得每個應用程序的所有窗口列表,它們的大小和位置?在OSX屏幕上可見的列表窗口

+1

你可能想在這裏看看我的答案... http://stackoverflow.com/a/32842314/ 2836621 –

回答

2

您可以使用名爲wmctrl的工具來實現此目的。它可能不會在Mac OSX上安裝,但您可以通過brew install homebrew/x11/wmctrl(首先,如果不想混淆git repos和錯誤,先獲取brew或任何知道如何找到wmctrl的軟件包管理器)獲得它。

然後,你應該能夠得到積極的窗戶是這樣的:

BASH

wmctrl -l 

您可以使用該命令的輸出轉換成別的東西算賬:

BASH

./myProgram $(wmctrl -l) 

希望這有助於!


UPDATE:

如果您的窗口管理器是不兼容wmctrl,你最好的辦法就是使用的AppleScript了點。有很簡單的方法,就像這個answer建議的那樣。我認爲這種方法會讓你更容易獲得窗口屬性。

的AppleScript

tell application "System Events" 
    repeat with theProcess in processes 
     if not background only of theProcess then 

[...] 

有樂趣和好運:)

+0

正在運行'wmctrl -l'沒有輸出,'wmctrl -d'給我' 無法獲取桌面屬性的數量。 (_NET_NUMBER_OF_DESKTOPS或_WIN_WORKSPACE_COUNT)' –

+0

wmctrl -m 名稱:N/A 類:N/A PID:N/A 窗口管理器的 「顯示桌面」 模式:N/A –

+0

@FilipHaglund我想這是因爲wmctrl假設你正在使用一個你不是的給定的Windows管理器。我更新了我的答案,以添加更適合OSX的替代方案。 –