Bir komut dosyasında belirli bir tty aygıtı içeren Terminal.app penceresini bulmaya ve bu pencereyi yukarı kaldırmaya çalışıyorum. Applescript'te şu ana kadar neler var:
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
Sıkıştığım yer "pencereyi kaldırmak" kısmı.
İşte tam olarak istediğim şey olmayan bazı şeyler:
set frontmost of theWin to true
- Bu, pencereyi Terminal.app pencereleri grubunun önüne getirir, ancak diğer pencerelerin üzerine yükseltmez.
tell application "Terminal" to activate
- Bu, her Terminal penceresini büyük bir yığın halinde öne getirir. Sadece bir pencere istiyorum.
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
Bu neredeyse yapar, ancak yaptığı şey, terminal penceresini hala etkin pencerenin altında # 2 konumuna yükseltmektir (etkin uygulama Terminal.app dışında bir şeyse).
click theSysWin at {10,50}
- hiçbir şey yapmıyor gibi görünüyor.
click first static text of theSysWin
- hiçbir şey yapmıyor gibi görünüyor.
Bunu yapmanın bir yolu var mı? Applescript'te olması gerekmez.
EDIT Obj-C / Kakao çağrısı alıntı yapan bu web sayfasını ( http://blog.coriolis.ch/2008/03/04/bring-any-window-to-the-front/ ) buldum :
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
Ben ObjC veya Kakao ya aşina değilim ve bu (nihayetinde) bir kabuk komut dosyasından çağrılıyor, bu yüzden oradan nereye gitmek emin değilim.
SetFrontProcessWithOptions(&psn, kSetFrontProcessFrontWindowOnly);
buldum : objc veya kakao hakkında yeterince bilgim yok oradan nereye gidileceğini bilmek.