Dans un script, j'essaie de trouver la fenêtre Terminal.app contenant un périphérique tty spécifique et de relever cette fenêtre vers le haut. Voici ce que j'ai dans Applescript jusqu'à présent:
tell application "System Events"
set foundWin to false
if (name of processes) contains "Terminal" then
tell application "Terminal"
set theTabs to first tab of every window where tty is "$(tty)"
repeat with theTab in theTabs
if class of theTab is tab then
set theWin to (first window whose tabs contains theTab)
set selected tab of theWin to theTab
set foundWin to true
end if
end repeat
end tell
end if
if foundWin then
--RAISE THE WINDOW?!
end if
end tell
Là où je suis coincé, c'est la partie "lever la fenêtre".
Voici quelques choses qui ne sont pas tout à fait ce que je veux:
set frontmost of theWin to true
- cela amène la fenêtre à l'avant du groupe de fenêtres Terminal.app mais ne la place pas au-dessus des autres fenêtres.
tell application "Terminal" to activate
- cela amène chaque fenêtre du terminal à l'avant dans une grande pile. Je veux juste une seule fenêtre.
tell application "System Events"
set theSysWin to first window of process "Terminal" whose name is (name of theWin)
perform action "AXRaise" of theSysWin
end tell
Cela le fait presque, mais ce qu'il fait est de soulever la fenêtre du terminal à la position n ° 2, toujours sous la fenêtre active (si l'application active est autre chose que Terminal.app.)
click theSysWin at {10,50}
- ne semble rien faire.
click first static text of theSysWin
- ne semble rien faire.
Y a-t-il un moyen de faire cela? Il n'est pas nécessaire que ce soit en Applescript.
EDIT J'ai trouvé cette page Web ( http://blog.coriolis.ch/2008/03/04/bring-any-window-to-the-front/ ) citant un appel Obj-C / Cocoa:
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
Je ne suis pas familier avec ObjC ou Cocoa, et cela est (finalement) invoqué à partir d'un script shell, donc je ne sais pas où aller à partir de là.
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
je ne connais pas assez bien objc ou cacao pour savoir où aller à partir de là cependant.