[AccessD] Talking between Applications.

Arthur Fuller fuller.artful at gmail.com
Fri Jul 13 18:41:33 CDT 2007


I've done something similar a few years back in PowerBuilder, but would love
a look at your method. I don't have any immediate use for it, but this old
dog does like to learn occasional new tricks.

Arthur


On 7/13/07, Drew Wutka <DWUTKA at marlow.com> wrote:
>
> Ya learn something new every day, don't ya?  I've been re-writing an
> application I built 7 years ago.  The new version is already in
> production, but I'll be adding new features probably for years to come.
> It's a help desk application, and one issue I'm working on is that there
> are several things that are 'monitored' events.  Some events are
> lightning fast, some are a bit slower.  The slower ones slow down the
> interface a bit, because it's all running in the same .exe.  To fix this
> I thought about multithreading, but decided on just creating another
> application to do the monitoring.  So how do you have one application
> talk to another?
>
>
>
> Before, I have used winsocks to do this. But it involves making socket
> connections, etc.  This time, I dug into Window Messaging.  I've done a
> lot of things with windows (in Windows) before, but I had to share this
> little tidbit with the List.
>
>
>
> To bring everyone up to snuff, every window on your machine has an hWnd
> value.  That's the ID of each window.  Windows sends all sorts of
> messages to each window, for every single thing that you do.  When you
> move the mouse over a window, windows is firing window messages to that
> window with the mouse position.  Clicking, typing, resizing, redrawing
> and more are all sent to the windows through window messages.  When you
> close an application, that too is a window message.
>
>
>
> The fun part is, we can use that same process for our own purposes.
> There's a simple API call, called SendMessage, that requires the hWnd of
> the window you want to send a message too, the message ID (every process
> has a static ID, but you can use RegisterWindowMessage to create your
> own messageid (Unique to that particular machine)) and then two
> parameters (both long integers).  Hey, but wait, if all I can send
> between two applications is two integers, what's the point?  Well, you
> can also create a window on the fly, with a single API, you can then set
> it's window text to anything you want, and your recipient applications
> can read that window text and destroy the window.
>
>
>
> I have this process in place (the communication part, now I'm on to
> actually doing something with the comms), and it works great.  Virtually
> no overhead in the communication process, runs as smoothly as moving a
> window across your screen.
>
>
>
> If there's interest in something like this, I'll post some code for it.
>
>
>
> Drew
>
>
>
>
> The information contained in this transmission is intended only for the
> person or entity to which it is addressed and may contain II-VI Proprietary
> and/or II-VI BusinessSensitve material. If you are not the intended
> recipient, please contact the sender immediately and destroy the material in
> its entirety, whether electronic or hard copy. You are notified that any
> review, retransmission, copying, disclosure, dissemination, or other use of,
> or taking of any action in reliance upon this information by persons or
> entities other than the intended recipient is prohibited.
>
>
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>



More information about the AccessD mailing list