Bagaimana cara memfokuskan jendela tertentu dengan applescript tanpa melakukan aktivasi dan membawa jendela lain ke depan?


18

Saya mencari metode w / AppleScript untuk memilih / memfokuskan jendela aplikasi tertentu tanpa benar-benar melakukan "aktifkan" yang membawa semua jendela ke depan.

Inilah yang saya miliki sejauh ini:

tell application "Google Chrome"
    set windowTitle to title of first window whose title contains "whatever"
end tell
tell application "System Events" to tell process "Google Chrome"
    click menu item windowTitle of menu 1 of menu bar item "Window" of menu bar 1
end tell
tell application "Google Chrome" to activate    

Masalahnya adalah "aktifkan" di baris terakhir. Itu membawa segalanya ke depan, tapi saya hanya ingin satu jendela.

Jawaban:


15

Anda benar bahwa activateperintah itu memunculkan semua jendela. The openperintah shell hanya menimbulkan satu jendela meskipun:

tell application "Google Chrome" to set index of window 1 where title contains "whatever" to 1
delay 0.05
do shell script "open -a Google\\ Chrome"

Ah, ini luar biasa. Sayangnya, jika Chrome sudah fokus, jendela "apa pun" hanya berkedip ke depan dan jendela yang saat ini fokus menang. Jika saya menggunakan teknik "klik menu item" di sepanjang w-open, sepertinya berhasil, tetapi itu membutuhkan aksesibilitas. Ada ide untuk menyiasatinya?
Aaron Jensen

1
Hanya menambahkan "penundaan 0,05" di antara dua baris Anda tampaknya berfungsi dengan baik. Terima kasih lagi!
Aaron Jensen

Saya tidak bisa mereproduksi, tetapi Anda juga bisa mencobanya tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1.
Lri

3
Saya mendapatkan:execution error: The variable title is not defined. (-2753)
harum

3
Re: kesalahan eksekusi. Ubah titleke name.
Vaughan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.