Hi, I want a macro to pause until one of 2 images are found on screen (text message), but the problem I'm having is that sometimes the notification banner (the image im looking for) has a light tint (if its over a window that is light) or a dark tint (if its over a window with a dark theme). I use the Pause until conditions are met, choosing the "any of the follow are true" and then have two searches for the two images. When I run the macro, it shows "currently true" for either image (like its supposed to) but doesn't advance to the next step in the macro.
I tested the macro by removing one (and then the other) and changing the Pause until "all of the following are true", and the macro continues correctly. The pause until condition is met works with either image, but doesn't work when I set "pause until any of the following are true".
I'm at a loss at why this is happening.
My approach to solving a problem like this, i.e., to figure out if the problem is in my head or in the KM Engine, is to modify your loop as follows:
WHILE (true)
If Image1 is found then Break loop
If Image2 is found then Break loop
End WHILE
By structuring your loop this way, you might learn something or see a different result. It could tell if, for example, if the multiple condition action is working as you expect.
I'm recommending this because I can't see what's wrong with your code, and I do this kind of thing all the time. Something is really odd here.
Part of this may be the fact that the "shows currently true" is something you are seeing in the KM Editor, while when the code is running it's the Engine. Remember, these are two different programs. The Engine doesn't get its results and evaluations from the Editor. Perhaps the Editors gets its results from the Engine, but the Editor seems to get its evaluations only once per second, while the Engine gets it only whenever it needs to (which can be more or less often than when the Editor needs to evaluate.)
What do you mean "break loop" in your if statement?
I don't understand what you mean. If the editor is running a macro and it shows "currently true" shouldnt it then go onto the next step?
The editor isn't the engine. These are two separate programs. They make their own evaluations of conditions at different times. Images can change over time. I can't see your screen, so I can't tell if the conditions are true both when your editor is open and when your engine is running. The Engine does NOT use the value that the editor uses, unless of course the conditions is true at the exact time that the Engine runs.
What I'm saying is true, but it's possible that what I'm saying does not apply to you if the images are always present when Engine is running. I can't tell if that's the case. I'm just giving you a theory to test. And I gave you some code that might help you with your tests. I'm only right about 80% of the time.
The editor asks the Engine for the evaluation of the condition, so if the editor is showing “currently true” then the Pause Until action should progress.
Perhaps try using the Macro Debugger to see what your macro is actually doing - maybe it is stuck somewhere else entirely.