John, Hi. What I'd suggest is you use FILE_NOTIFY_CHANGE_FILE_NAME. Program A creates the file and writes to it using a temporary filename. When it is done writing, it renames the file to something that program B recognises. This will trigger a FILE_NOTIFY_CHANGE_FILE_NAME and B can then pick up the file. Actually, creating the file will also trigger a FILE_NOTIFY_CHANGE_FILE_NAME, but A is using a temporary filename that B does recognise, B ignores it.
Regards, Dennis. -------------------------------------------------- From: "John Bird" <johnkb...@paradise.net.nz> Sent: Wednesday, August 18, 2010 6:02 PM To: "NZ Borland Developers Group - Delphi List" <delphi@delphi.org.nz> Subject: Re: [DUG] Sending notification between programs > The property > FILE_NOTIFY_CHANGE_LAST_WRITE > > looks like a possibility, as if structured data has just been written to a > file this event should be triggered. The only gotcha seems to be that > the > better the caching is the less likely the event will fire - according to > the > help. Tricky. > > John > >> >> John, >> >> Hi. What you want to use is WinAPI: FindFirstChangeNotification, >> FindNextChangeNotification and FindCloseChangeNotification in program B. >> Essentially, A writes to a file, and renames it. This causes the handle >> returned by FindFirstChangeNotification to be signaled. You can test for >> this using a loop and WaitForSingleObject / WaitForMulitipleObjects. You >> can even specify a timeout in the WaitXXX calls so that B wakes >> periodically, even if there are nothing signaled. When the WaitXXX >> function >> returns, you can check for the existence of the file. >> >> Regards, >> Dennis. >> >> -------------------------------------------------- >> From: "John Bird" <johnkb...@paradise.net.nz> >> Sent: Wednesday, August 18, 2010 4:43 PM >> To: "NZ Borland Developers Group - Delphi List" <delphi@delphi.org.nz> >> Subject: [DUG] Sending notification between programs >> >>> Which way would you favour to do the following ? >>> >>> I have two Delphi programs (A and B) that I will pass data from A to B - >>> I >>> will probably use a file to put the data in because its quite >>> structured. >>> B will sleep on a timer loop until this something is triggered. >>> >>> What I want to do is send a simple notification from program A to B that >>> there is something to do - i.e. trigger an event in B to wake and do >>> something to process this. >>> >>> There are various ways I could communicate this notification >>> >>> 1 - Has to add minimal overhead of size and processing to programs A and >>> B >>> 2 - A can tolerate B not responding immediately without freezing but >>> preferably will know >>> >>> The ways I have considered to be candidates are >>> >>> a - Windows messaging >>> b - TCP/IP Indy (which could send the data too. (adds complexity of >>> needs to be done in a thread to not affect the main program A) >>> c - make program B a DLL >>> d - Roll my own - make a timer in B which polls for for some condition >>> and >>> otherwise continues to sleep >>> e - something else. >>> >>> Kindly share your favoured options how you might do this. >>> >>> John >> >> >> >>> _______________________________________________ >>> NZ Borland Developers Group - Delphi mailing list >>> Post: delphi@delphi.org.nz >>> Admin: http://delphi.org.nz/mailman/listinfo/delphi >>> Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: >>> unsubscribe >> >> _______________________________________________ >> NZ Borland Developers Group - Delphi mailing list >> Post: delphi@delphi.org.nz >> Admin: http://delphi.org.nz/mailman/listinfo/delphi >> Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: >> unsubscribe > > > _______________________________________________ > NZ Borland Developers Group - Delphi mailing list > Post: delphi@delphi.org.nz > Admin: http://delphi.org.nz/mailman/listinfo/delphi > Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: > unsubscribe > _______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: delphi@delphi.org.nz Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: unsubscribe