首页
社区
课程
招聘
[求助]DIY系统服务遇到的问题
发表于: 2009-10-9 20:49 3943

[求助]DIY系统服务遇到的问题

2009-10-9 20:49
3943
初学编程,无意件对系统服务感兴趣了,首先我用OpenSCManagerA,OpenServiceA,ChangeServiceConfigA,CloseServiceHandlE,这个几个函数来改变系统服务的参数,比如启动方式,启动文件路径等等,这些也成功实现,可发现一个问题,假如我随便利用系统服务来启动一个任意的EXE文件,可是发现服务启动不了,EXE打开后也自己关闭,在网上找了一些这方面的资料:Windows NT的服务都是通过一般的可执行程序实现的,不同的是,它遵循内部的一个特定协议来设计,以便它们能够与服务控制管理器(SCM,Service Control Manager)进行正确的交互。其实为服务设计的可执行文件和一般的程序并没有多少的区别。可是害是不是很明白,请大家给我指点下,谢谢了。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
服务程序必须要有和服务管理器交互的功能啊,有基本的编写框架,可以找找冷风那个服务程序模板
2009-10-9 20:54
0
雪    币: 177
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
创建个新的服务是这样的,可我现在没有创建新的啊,我现在只是用原来已停止的系统服务来启动一个任意的EXE文件,原来的系统服务本来就有和服务控制器交互的功能吧。
2009-10-9 21:01
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
嗯,不和SCM交互会被杀掉的。
2009-10-9 21:10
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
原来的系统服务是有交互功能,可是你的EXE没有啊,交互功能是在程序内部实现的,而不是靠什么参数和配置
2009-10-9 21:33
0
雪    币: 722
活跃值: (123)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
6
不是所有EXE程序都能够被当成服务启动的。以服务方式启动的EXE程序在启动后必须迅速调用StartServiceCtrlDispatcher与服务控制管理器进行交互,否则服务控制管理器等待超时之后便会认为该服务没有正常启动,从而终止该进程。
2009-10-9 23:54
0
雪    币: 177
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
楼上的解释的很好,我看了下这个函数,可是这个函数的参数弄不明白。
2009-10-10 11:15
0
游客
登录 | 注册 方可回帖
返回
//