[求助]一个小问题(40分)

  • 主题发起人 主题发起人 settingsun
  • 开始时间 开始时间
S

settingsun

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在启动主程序的同时再同时启动一外部监控程序,随主程序一起运行,在启动时<br>最小化监控程序,不要在工具栏显示,怎么实现,还有就是最后应如何关闭它。<br><br>各位帮帮忙。
 
Winexec('C:/aaa.exe',sw_hide);
 
关闭使用PostMessage函数或者SendMessage函数。
 
如果是Dos的程序我都不知道怎么關掉它!<br>windows的就好辦了﹐先 handle:=findwindow('',窗體名)<br>再<br>sendmessage(handle,wm_close,0,0);<br>就ok了
 
ShellExecute() 命令,使用方法看帮助
 
我要的是同时启动,是不是要建立一个新的线程。
 
有很多方法的,<br>用ShellExecute() 也启运它,<br>并可让它最小上化,并跑到拖盘里去<br>在退出时,再给它发一个关闭的消息就是。<br><br>
 
如何最小化放到托盘里去。
 
这是我写的一个小服务器的控制程序中用的。<br><br>{ ** 放入托盘程序 ** }<br>procedure TMainFrm.AddIco;<br>var<br>&nbsp; nid: TNotifyIconData;<br>begin<br>&nbsp; nid.cbSize := sizeof(nid);<br>&nbsp; nid.Wnd := Handle;<br>&nbsp; nid.uID := 0;<br>&nbsp; nid.hIcon := Application.Icon.Handle;<br>&nbsp; nid.szTip := '远程数据交换服务器 1.2';<br>&nbsp; nid.uCallbackMessage := MY_MESSAGE;<br>&nbsp; nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;<br>&nbsp; if not Shell_NotifyIcon(NIM_ADD, @nid) then<br>&nbsp; begin<br>&nbsp; &nbsp; ShowMessage('服务程序进驻失败!');<br>&nbsp; &nbsp; Application.Terminate;<br>&nbsp; end;<br>end;<br><br>{ ** 取消托盘程序 ** }<br>procedure TMainFrm.DelIco;<br>var<br>&nbsp; nid: TNotifyIconData;<br>begin<br>&nbsp; nid.cbSize := sizeof(nid);<br>&nbsp; nid.uID := 0;<br>&nbsp; nid.Wnd := Handle;<br>&nbsp; Shell_NotifyIcon(NIM_DELETE, @nid);<br>end;<br><br>{ ** 弹出托盘菜单 ** }<br>procedure TMainFrm.OnIconNotify(var Message: TMessage);<br>const<br>&nbsp; Busy: Boolean = false;<br>var<br>&nbsp; p: TPoint;<br>begin<br>&nbsp; if not Busy then begin<br>&nbsp; &nbsp; Busy := true;<br>&nbsp; &nbsp; if Message.LParam=WM_RBUTTONDOWN then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; GetCursorPos(p);<br>&nbsp; &nbsp; &nbsp; PopupMenu.Popup(p.x, p.y);<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; Busy := false;<br>&nbsp; end;<br>end;<br>
 
多人接受答案了。
 
后退
顶部