對於更完整起見,這裏是代碼得到的寬度,高度,和一個特定顯示器(主或內置)的視網膜規模。
這是代碼即可獲得內置顯示的高解析規模:
set {width, height, scale} to words of (do shell script "system_profiler SPDisplaysDataType | awk '/Built-In: Yes/{found=1} /Resolution/{width=$2; height=$4} /Retina/{scale=($2 == \"Yes\" ? 2 : 1)} /^ {8}[^ ]+/{if(found) {exit}; scale=1} END{printf \"%d %d %d\\n\", width, height, scale}'")
這是代碼來獲取主顯示器的分辨率和視網膜規模:
set {width, height, scale} to words of (do shell script "system_profiler SPDisplaysDataType | awk '/Main Display: Yes/{found=1} /Resolution/{width=$2; height=$4} /Retina/{scale=($2 == \"Yes\" ? 2 : 1)} /^ {8}[^ ]+/{if(found) {exit}; scale=1} END{printf \"%d %d %d\\n\", width, height, scale}'")
的代碼是基於this post由傑西鮑曼這裏給出的答案。
,只有擁有一個顯示效果雖然。 – user495470 2011-10-30 11:22:04
對於多個顯示器,「桌面窗口邊界」的邊界根據其在系統偏好設置中定義的空間佈置報告*單個組合*大小,該大小是圍繞所有顯示器*的包圍矩形。 換句話說:你不能分辨出有多少個顯示,並且報告的矩形可能包含實際上不可顯示的區域。 類似地,標準套件窗口對象(AppleScriptable應用程序的窗口,通過'bounds')和Process Suite'窗口'對象(通過'position'的上下文'「System Events」')報告它們的座標組合矩形。 – mklement0 2013-10-25 15:42:16