12

NotesやVLCなどの一部のアプリでは、次のものを使用できます。

tell application "Notes" to get the bounds of the window 1

上記の行をファイルに入れてsudo osascript thatfilenameそれを呼び出すために使用すると、それは機能します。

しかし、Angry Birds Spaceなどの一部のアプリでは、次の機能が機能しませんか?

tell application "Angry Birds Space" to get the bounds of the window 1

エラーを出す:

execution error: Angry Birds Space got an error: Can’t get bounds of 
  window 1. (-1728)

それを妨げるそのアプリの特別な何かがありますか?(ゲームであるため、またはウィンドウ1がないためですか?)

bounds一部のウィンドウのまたはのみを取得および設定することを検討してwidthいます(一部のウィンドウには特定のアスペクト比が必要なように見えるため、アスペクト比がない場合、特定の幅と高さに設定しても機能しない可能性があります)正しくありません)。

4

2 に答える 2

17

アプリケーションがスクリプト可能でない場合、この種の情報をアプリケーションから取得することはできません。[支援機器のアクセスを有効にする]の[システム環境設定]>[ユーザー補助]設定が設定されている場合は、システムイベントプロセススイートを使用して、ウィンドウサイズを取得/設定できます。次に例を示します。

tell application "System Events" to tell application process "Angry Birds Space"
    get size of window 1
end tell

注:アクセシビリティの有効化は、macOSのバージョンによって大きく異なります。MacOSXでアクセシビリティを有効にする方法 は良いガイドです。10.14以降、[セキュリティとプライバシー]>[ユーザー補助]オプション>[プライバシー]タブに移動し、[以下のアプリにコンピューターの制御を許可する]にアプリケーションを追加する必要があります。

于 2012-08-18T19:16:23.140 に答える
11

Angry Birds Spaceはスクリプト可能ですか?そうでなければ、何かをするように言ってもうまくいかないはずです。同様の例は次のとおりです。

tell application "Preview" to get the bounds of the window 1

Red Menaceが指摘しているように、次のような申請プロセスを使用できます。

tell application "System Events" to tell application process "Preview"
    tell window 1
        set {size, position} to {{1280, 800}, {50, 50}}
    end tell
end tell
于 2012-08-18T19:09:51.323 に答える