一个应用程序如何发消息给另一个应用程序(100分)

  • 主题发起人 主题发起人 wind.prince
  • 开始时间 开始时间
W

wind.prince

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp; &nbsp;一个用Delphi6编写的应用程序A如何使另一个用VC编写的应用程序B开始运行?并且A <br>程序中止后B 也中止?<br>&nbsp; &nbsp; 再有B程序开始执行后能不能发一个消息使A程序的定时器开始动作?或者不用消息<br>用别的机制?
 
1.createprocess &amp; terminateprocess<br>2.使用内存映射文件<br>
 
我只知道用api的winexec可以执行另个程序,其他的就不知道了.<br><br>:)
 
//一个用Delphi6编写的应用程序A如何使另一个用VC编写的应用程序B开始运行?并且A <br>&nbsp; 程序中止后B 也中止?<br>调用外部程序用WinExec()即可,如:WinExec('*.exe',SW_SHOWNORMAL);<br>至于中止外部程序方法很多,可以找Caption然后Kill,也可以发送消息sendmessage()。<br><br>//再有B程序开始执行后能不能发一个消息使A程序的定时器开始动作?或者不用消息<br>&nbsp; 用别的机制?<br>方法也很多,如通过监测B程序进程,用GetWindowText()或者GetExitCodeProcess(),<br>也可以用FindWindow()寻找窗口标题确定。<br>下面给你一个函数:<br>Function ApplicationUse(fName : string ) : boolean; <br>var<br>&nbsp; HFileRes : HFILE; <br>begin<br>&nbsp; Result := false;<br>&nbsp; if not FileExists(fName) then exit;<br>&nbsp; HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,0, nil,<br>&nbsp; &nbsp; &nbsp;OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);<br>&nbsp; Result := (HFileRes = INVALID_HANDLE_VALUE);<br>&nbsp; if not Result then CloseHandle(HFileRes); <br>end;
 
用RegisterWindowMessage可以自定义消息<br>关闭程序也可以用消息WM_CLOSE
 
sendmessage(findwindow(...),WM_SYSCOMMAND,WM_QUIT,0,0)
 
后退
顶部