4980 2008-4-28 20:52
问一个比较难的问题delphi的
我用delphi创建了一个Service application,把他安装为服务,当系统启动的时候他自动启动了,这个服务(我们叫A.EXE)主要是:
1、负责启动程序B.EXE,
2、监控程序B是否关闭,如果B被人为关闭了,服务A就再次把B.EXE启动了,
现在的问题是我必须把服务的service的interactive属性设成True,才能看到B.EXE的界面,否则看不到B的界面,
但是我看到好多服务程序的interactive是False,但是也能看到界面,因为看到了托盘,在右下角。不知道那些服务是怎么做的?
4980 2008-4-28 22:33
我的服务程序非常简单就是直接用 winexec打开B.exe
enthappy 2008-4-29 23:08
:o 关了就是用户不再愿意看到程序B了,别再启动了好不?
航海士 2008-4-30 07:46
很多病毒就是这么做的,莫非楼主要写......:o
somehend 2008-4-30 08:30
应该不存在你描述的问题,需要交互就处理进程间通信交互的问题,
看你的需求不需要,所以是GOOGLE比较简单守护进程之类的知识就是了.
B的进程是否看到,没有遇到过,这个如果一种方式不行,换其他启动方式看看,再不行,
直接就命令行方式启动,绝对不会有问题.
我猜测你的B程序没有自己作好自己的工作而已,这个应该是不相关的.
顺便提示一下,你的母程序除了做一个服务,还要拥有反侦察,防止BE KILLED的功能,
所以也最好带自监控的功能,
最后要说的是不要太过分了哦,
CodeCoolie 2008-4-30 12:04
[quote]原帖由 [i]4980[/i] 于 2008-4-28 22:33 发表 [url=http://www.cnsw.org/bbs/redirect.php?goto=findpost&pid=351703&ptid=80693][img]http://www.cnsw.org/bbs/images/common/back.gif[/img][/url]
我的服务程序非常简单就是直接用 winexec打开B.exe [/quote]
用ShellExecute试一试呢?
还没想好 2008-4-30 12:40
需要切换桌面,service是运行在Station0的,用户桌面是在StationN。
shuihan20e 2008-5-9 00:59
我感觉可以加一个计时器,不停启动,在启动时写段代码防止 多个实例运行吧
我是根据前面的回答来回答的,不知道是不是词不达意:lol