EventGhost

Ad blocker detected:
Our software and support is 100% free. This website is not.
You can donate in 2 ways, by turning off your ad blocker or by pressing the Donate button.

************ NOTICE ************

UPDATE YOUR BOOKMARKS!!!

We have an issue that there is no way around as of yet.
I have done all I can to try and prevent this from happening.
We are going to be losing the .com, .org and .de domains.
We have not been able to contact the original author of EventGhost
(the person that owns those domains) to redirect them to the new web server.
I set in motion when we first moved a redirection from the old server to the new server.
I also put in markers so that search engines would see this change and update any pointers
they have. We still have the .net domain for the production site. and the .rocks for the test site.
For the past few months you have been getting redirected to the .net site if you used one of the 3
domains mentioned above. I just wanted to tell everyone so they can make any changes needed.

I just made a plugin for controling of DVB Dream but i have a little problem with it.

If i close dvbdream and start it imediately there is a delay of about 30 seconds untill it start to receive commands again. Probably FindWindow still sends the messages to the old window, but i don't know how to fix this.

The problem is, that you only look for the "Tfmain" window class and every Delphi application is using this. So you mainly have two options:

1. Ask the developers of DVB Dream to use a unique window class.
2. Use a more sophisticated FindWindow to get the handle. Pako has used the FindWindow of the Window plugin in his Billy plugin. This allows to limit the search on windows of a specific executable.

Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

thnx for including me,
I discovered a problem and i also have a posible solution to it,

I noticed that controling dvbdream from eventghost does not work wile dvbdream is in fullscreen mode.

I do testing of send message function with a macro composed of a remote trigger, find window event, and sendmessage event.
When in dvbdream full screen "search invisible items also" must be checked into Find a window plugin, otherwise dvbdream do not receive messages.

WindowMatcher takes the same parameters as FindWindow. Some parameters are ignored for Enumerate() (like the timeout and stopMacro). So your call should be:
WindowMatcher(u'dvbdream.exe', None, None, None, None, None, True, 1.0, 0).Enumerate

Keep in mind, that FindWindow and WindowMatcher return a list of windows. Possibly you have more than one hit. The SendMessage action will then send to all found windows, while your code will most likely only send to the first.

Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!

There is a small regress compared to the version before. The idea behind WindowMatcher is, that it compiles its parameters to a more computation friendly form. So the call on the Enumerate method of the compiled WindowMatcher is faster than to build and call it everytime. That's why you should create some global WindowMatcher instance and use the object repeatedly.

The other thing is, that calling the instance and calling Enumerate have some small differences. The __call__ method of the object has side effects that are needed for the FindWindow action and should be avoided by other plugins. To make it short. Don't do:
WindowMatcher(u'dvbdream.exe', None, u'Tfmain', None, None, None, True, 1.0, 0)()[0]
but:

This is probably because the window changes its hierarchic position, but i cannot send directly to the window name because it will only work for me, because the window name is:
"DVB Dream v1.4f - BDA Native (DVB-S) - TechnoTrend BDA/DVB-S Tuner"

Bitmonster wrote:The SendMessage action will then send to all found windows, while your code will most likely only send to the first.

How good is the support of the DVBDream developers? Actually the best solution would be, if they would give the needed target a unique and consistent window class name like "DVBDream Main Window" instead of "Tfmain" (shouldn't be a big problem for them). Then it would also be possible to use the more resource-friendly FindWindow of the Windows API.

Please post software-related questions in the forum - PMs will only be answered, if really private, thanks!