<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple id=MailContainerBody
name="Compose message area">
<div class=WordSection1>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If you runs the applications on different site, I will use email
</span><span style='font-size:11.0pt;font-family:Wingdings;color:#1F497D'>J</span><span
style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p>
<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>
<div>
<div>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>Have a nice day</span><span style='color:#1F497D'><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span style='color:#1F497D'> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>Regards</span><span style='color:#1F497D'><o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:#1F497D'>Leigh</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p></o:p></span></p>
<div>
<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>
<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>
delphi-bounces@delphi.org.nz [mailto:delphi-bounces@delphi.org.nz] <b>On Behalf
Of </b>John Bird<br>
<b>Sent:</b> Wednesday, 18 August 2010 8:49 p.m.<br>
<b>To:</b> NZ Borland Developers Group - Delphi List<br>
<b>Subject:</b> Re: [DUG] Sending notification between programs<o:p></o:p></span></p>
</div>
</div>
<p class=MsoNormal><o:p> </o:p></p>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I
had thought of something just like this, having something in the data being
what B looks for and acts on, otherwise sleeps. However this makes
it disk based, and B has to poll. I was hoping something simple in memory
could wake up B rather than referring to the filesystem.</span><span lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>The
main disadvantage of using one of the approaches mentioned is that there is two
things that have to work right for the communication, two things could
break.</span><span lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Slight
aside:</span><span lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>You
know there is one really cunning way to get A to signal to B that I have
used in the past that involves sending nothing at all:</span><span lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>B
in a timer monitors the foreground window title bar of A</span><span
lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>P:array[0..256]
of Char;</span><span lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>
GetWindowText(GetForeGroundWindow,p,256);<br>
ATNowNewTitle := p;</span><span lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>then
searches for certain text in it, if its there its a signal to do
something. This assumes A has focus which worked fine in my
case. I used it to automatically suspend an
automated time logging whenever the reporting program for said logging was
in focus, as it was likely to be searching the same data
file. It was spooky how well that worked! (Every time
the report program lost focus or closed the time logging resumed.)<o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'><o:p> </o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>John</span><span
lang=EN><o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><span lang=EN> <o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal><b><span lang=EN>From:</span></b><span lang=EN> <a
href="mailto:graham@wk.planet.gen.nz" title="graham@wk.planet.gen.nz">Graham
Marsden</a> <o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<p class=MsoNormal style='background:whitesmoke'><b><span lang=EN
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Sent:</span></b><span
lang=EN style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Wednesday,
August 18, 2010 7:54 PM<o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='background:whitesmoke'><b><span lang=EN
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>To:</span></b><span
lang=EN style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a
href="mailto:delphi@delphi.org.nz"
title="mailto:delphi@delphi.org.nz CTRL + Click to follow link">delphi@delphi.org.nz</a>
<o:p></o:p></span></p>
</div>
<div>
<p class=MsoNormal style='background:whitesmoke'><b><span lang=EN
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Subject:</span></b><span
lang=EN style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> [DUG]
Sending notification between programs<o:p></o:p></span></p>
</div>
</div>
</div>
<div>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
</div>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Keep
it simple .....</span><span lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><i><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>.....
will pass data from A to B - I will probably <b>use a file to put the data in</b>
because its quite structured.</span></i><span lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><i><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>B
will sleep on a timer loop until this something is triggered.</span></i><span
lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Why
not use the exis the very existance of the data transfer file as the trigger.</span><span
lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Program
A creates the file(s) with the data and then goes on with whatever else it
needs to do. Perhaps even creating another data file or appending to an
existing one.</span><span lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Program
B sleeps on a timer, wakes up, checks for the existance of a/the data file(s).
If one/some exist then process, if not then sleep another cycle.</span><span
lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>I
have use this method to pass both fax and email files and other messages to a
"server". Naming conventions, folder locations etc can all be used to
do any segregation of users/purposes as required.</span><span lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Using
this method A and B don't even have to be on the same machine.</span><span
lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Hope
this helps.</span><span lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<p class=MsoNormal><span lang=EN style='font-size:10.0pt;font-family:"Arial","sans-serif"'>Graham
Marsden</span><span lang=EN><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN><o:p> </o:p></span></p>
<div class=MsoNormal align=center style='text-align:center'><span lang=EN>
<hr size=2 width="100%" align=center>
</span></div>
<p class=MsoNormal><span lang=EN>_______________________________________________<br>
NZ Borland Developers Group - Delphi mailing list<br>
Post: delphi@delphi.org.nz<br>
Admin: http://delphi.org.nz/mailman/listinfo/delphi<br>
Unsubscribe: send an email to delphi-request@delphi.org.nz with Subject:
unsubscribe<o:p></o:p></span></p>
</div>
</body>
</html>