0

osascript を書いているときに問題が発生します。1 つの Java プロセス (GUI) に何かを実行するように「指示」する必要がありますが、同じプロセス名「java」(GUI) を持つ他の Java プロセスがあるため、以下のサンプル コードは機能しません。

  osascript \
    -e "tell application \"System Events\"" \
       -e "tell process \"java\"" \
          -e "click button \"MyButton\" of tab group 1 of window \"MyWindow\"" \
       -e "end tell" \
    -e "end tell"

だから私の質問は、そのようなシナリオで異なる Java プロセスを区別する方法ですか?

4

1 に答える 1

0

私のコメントに対するあなたの反応に基づいて、私は次のようなことをします。私はこれをテストしていないので、おそらく微調整する必要があることに注意してください。ただし、これらの特定の名前を確認する方法を示しています。幸運を。

tell application "System Events"
    set javaProcesses to processes whose name is "java"
    repeat with aJavaProcess in javaProcesses
        tell aJavaProcess
            try
                set windowName to name of window 1
                set buttonNames to title of buttons of tab group 1 of window 1
                if windowName is "Java Control Panel" and "Update Now" is in buttonNames then
                    click (first button of tab group 1 of window 1 whose title is "Update Now")
                    exit repeat
                end if
            end try
        end tell
    end repeat
end tell

編集:おそらく、このような適切なプロセスに到達できます...

tell application "System Events"
    set javaIDs to unix id of processes whose name is "java"
    repeat with i from 1 to count of javaIDs
        set aJavaProcess to (first process whose unix id is (item i of javaIDs))
        tell aJavaProcess
            -- do the stuff in the tell block from the code above
        end tell
    end repeat
end tell
于 2013-01-25T02:05:30.867 に答える