philippe pons
phpons at gmail.com
Mon Jul 16 01:29:37 CDT 2007
Hi, I'm curious to have a look at that too ! Philippe 2007/7/16, Darren D <darrend at nimble.com.au>: > > Howdy > > Would love to see an example of this > > DD > > -----Original Message----- > From: Drew Wutka [mailto:DWUTKA at marlow.com] > Sent: Saturday, 14 July 2007 9:29 AM > To: Access Developers discussion and problem solving > Subject: [AccessD] Talking between Applications. > > 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 > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com >