10

マウスカーソルの位置に応じて、両方のディスプレイの現在のディスプレイ解像度を取得しようとしています。

つまり、マウスカーソルが最初のディスプレイにあるときに、このディスプレイの解像度を取得したいと思います。

シェルスクリプトを使用すると、両方の解決策を得ることができます。

set screenWidth to (do shell script "system_profiler SPDisplaysDataType | grep Resolution | awk '{print $2}'")

しかし、現在どのディスプレイが「アクティブ」であるかわかりません。

何か案は?

4

7 に答える 7

11

これはトリックを行います:

tell application "Finder"
set screen_resolution to bounds of window of desktop
end tell
于 2011-10-30T10:49:56.957 に答える
10

Applescript は、システム イベント経由であっても、カーソル位置にアクセスできません。ごめん。

[いくつかの商用ソリューションがありますが、この場合、それらは手間をかける価値がないと思いますか? 現在のカーソル位置を返すだけの簡単なコマンド ライン ツールを作成することもできると思います...手間をかける価値はありますか?]

ps awk は、一致する行を見つけるのに優れています。

set screenWidth to (do shell script "system_profiler SPDisplaysDataType | awk '/Resolution/{print $2}'")
于 2010-02-23T21:08:13.280 に答える
8

さらに完全にするために、特定のディスプレイ (メインまたは組み込み) の幅、高さ、および Retina スケールを取得するコードを次に示します。

これは、組み込みディスプレイの解像度と Retina スケールを取得するコードです。

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}'")

これは、メイン ディスプレイの解像度と Retina スケールを取得するコードです。

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}'")

コードは、Jessi Baughman によるこの投稿と、ここに記載されている他の回答に基づいています。

于 2014-05-04T02:54:03.763 に答える
6

以下はOPの問題を解決しませんが、AppleScriptで接続されているすべてのディスプレイの解像度を決定したい人には役立つかもしれません(ビルディングブロックの@JoelReidと@iloveitalyに感謝します):

set resolutions to {}
repeat with p in paragraphs of ¬
  (do shell script "system_profiler SPDisplaysDataType | awk '/Resolution:/{ printf \"%s %s\\n\", $2, $4 }'")
  set resolutions to resolutions & {{word 1 of p as number, word 2 of p as number}}
end repeat
# `resolutions` now contains a list of size lists;
# e.g., with 2 displays, something like {{2560, 1440}, {1920, 1200}}
于 2013-10-25T15:51:20.220 に答える
4

完全を期すために、画面の高さを取得するコードを次に示します。

do shell script "system_profiler SPDisplaysDataType | awk '/Resolution/{print $4}'"}
于 2011-06-29T17:14:02.570 に答える