Dalam skrip saya mencoba menemukan jendela Terminal.app yang berisi perangkat tty tertentu dan menaikkan jendela itu ke atas. Inilah yang saya miliki di Applescript sejauh ini:
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
Di mana saya terjebak adalah bagian "menaikkan jendela".
Berikut beberapa hal yang tidak saya inginkan:
set frontmost of theWin to true
- ini membawa jendela ke depan kelompok Terminal.app windows tetapi tidak menaikkannya di atas jendela lain.
tell application "Terminal" to activate
- ini membawa setiap jendela Terminal ke depan dalam tumpukan besar. Saya hanya ingin satu jendela.
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
Ini hampir berhasil, tetapi yang dilakukannya adalah menaikkan jendela terminal ke posisi # 2, masih di bawah jendela aktif (jika aplikasi yang aktif adalah sesuatu selain Terminal.app.)
click theSysWin at {10,50}
- sepertinya tidak melakukan apa-apa.
click first static text of theSysWin
- sepertinya tidak melakukan apa-apa.
Apakah ada cara untuk melakukan ini? Tidak harus dalam Applescript.
EDIT Saya menemukan halaman web ini ( http://blog.coriolis.ch/2008/03/04/bring-any-window-to-the-front/ ) mengutip panggilan Obj-C / Cocoa:
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
Saya tidak akrab dengan ObjC atau Cocoa, dan ini (pada akhirnya) dipanggil dari skrip shell, jadi tidak yakin ke mana harus pergi dari sana.
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
Saya tidak cukup akrab dengan objc atau cocoa untuk tahu ke mana harus pergi dari sana.