Como foco uma janela específica com o AppleScript sem ativar e trazer outras janelas para a frente?


18

Estou procurando um método w / AppleScript para selecionar / focar uma janela específica de um aplicativo sem realmente fazer um "ativar" que traga todas as janelas para a frente.

Aqui está o que eu tenho até agora:

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    

O problema é o "ativar" na última linha. Isso traz tudo para a frente, mas eu só quero a única janela.

Respostas:


15

Você está certo que o activatecomando levanta todas as janelas. O opencomando shell apenas gera uma janela:

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, isso é ótimo. Infelizmente, se o Chrome já estiver focado, a janela "qualquer que seja" pisca apenas para a frente e a janela atualmente focada vence. Se eu usar a técnica "clicar no item de menu" junto com a opção -a, ela parece funcionar, mas isso requer acessibilidade. Alguma idéia para contornar isso?
Aaron Jensen

11
Apenas adicionar um "atraso 0,05" entre suas duas linhas parece funcionar perfeitamente. Obrigado novamente!
Aaron Jensen

Não consegui reproduzir, mas você também pode tentar tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1.
Lri

3
Estou recebendo:execution error: The variable title is not defined. (-2753)
redolent 24/03

3
Re: erro de execução. Mude titlepara name.
Vaughan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.