Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

DonK KijotE

macrumors newbie
Original poster
Mar 25, 2013
8
0
Madrid / Spain
Hi,

I'm writing a little Applescript which waits for a window to open in order to close it automatically.

The things is, how can I wait for the window to open? I don't want to run an endless loop which checks for a window with a certain title...

Could anyone give me some directions on how to achieve this in the most efficient way?

Thanks on beforehand, any help would be appreciated!

Cheers
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,558
6,058
What window are you waiting for to open?

If your Applescript is opening the window, then I see no issue with just inserting a 0.3 delay after opening the window and having it close the window at that point... I know I've done exactly that before.
 

DonK KijotE

macrumors newbie
Original poster
Mar 25, 2013
8
0
Madrid / Spain
The window is opened by another application.

This window will appear when a user clicks a certain button so, how wait for that without using 100% cpu ?

For testing purposes I put my code into an endless repeat loop and it works, but cycling endlessly through the script is nor efficient nor elegant IMO.

I hope I clarified the script scenario a bit better this time.

Just in case someone thinks I just want someone to code for me that's not the case. Any hints on a workaround/solution will be appreciated, I will investigate further on by myself and update this post so it works as a future reference for others :)

Thanks again!

Current Loop Code:

repeat

tell application "System Events"

if exists window "Window_Title" of process "Target_Process" then

-- Do bla bla bla

end repeat

Window_Title and Target_Process are just substitutes for the real values, as I wouldn't like to give any hints on what I'm working on... Don't wan't any "idea thieves" buzzing around :p
 
Last edited:

Mark FX

macrumors regular
Nov 18, 2011
159
17
West Sussex, UK
Is your Aplescript run once or is it a stay open Applescript ?

If its a stay open Applescript then you could use an on idle Handler.

Code:
on idle
    -- perform periodic tests
    return 1 -- return the number of seconds between the next on idle call
end idle

Regards Mark
 

Sayer

macrumors 6502a
Jan 4, 2002
981
0
Austin, TX
Pay for the software that is periodically popping up a window asking you to pay for it periodically will make it go away.
 

DonK KijotE

macrumors newbie
Original poster
Mar 25, 2013
8
0
Madrid / Spain
Is your Aplescript run once or is it a stay open Applescript ?

If its a stay open Applescript then you could use an on idle Handler.

Code:
on idle
    -- perform periodic tests
    return 1 -- return the number of seconds between the next on idle call
end idle

Regards Mark

Mark, I understand the "on idle" will start executing if I don't do anything on the system right ?

The thing is I want to perform the routine above explained only when I click a certain button in the software, it's precisely when it's idle that I don't want it to do anything, just wait for me to click and open the referred window...

If I'm not understanding your point correctly let me know :)

Thanks on beforehand!

I see the user who posted right after you and I don't even know what he's talking about...
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.