WEB开发网
开发学院软件开发VC 编写有图形界面的 Windows 服务程序 阅读

编写有图形界面的 Windows 服务程序

 2007-03-17 22:00:17 来源:WEB开发网   
核心提示: [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices]下增加子项test1;test1下增加:字符串型:"Description"="测试服务1"字符串型:"DisplayName"

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices]下增加子项test1;

test1下增加:

字符串型:"Description"="测试服务1"

字符串型:"DisplayName"="test1-displayname"

DWORD型:"ErrorControl"=dword:00000001

可扩充字符串值(即文件所在路径):

"ImagePath"=hex(2):43,00,3a,00,5c,00,74,00,65,00,73,00,74,00,31,00,2e,00,65,00,

78,00,65,00,00,00

字符串型:"ObjectName"="LocalSystem"

DWORD型,值为3表示是手动:"Start"=dword:00000003

DWORD型:"Type"=dword:00000020

test1下增加子项:

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices  est1Security]

里面的键值从其他的服务程序注册表值中复制。

如果test1这一程序只是一个普通的win32程序,那么这样做了之后还是不行,服务程序有它自己的一些结构特点。那么怎么编写这些服务程序?

建立一个服务程序的最简单的方法是用VC中的ATL COM向导。主菜单中选择新建,然后选Projects中的ATL COM AppWizard,输入一个项目名,选择了所在目录后,点OK按钮,在出现的对话框中选择Service(EXE),点Finish即可。然后编译生成test1.exe。

运行test1.exe /regserver可以注册程序为服务,test1.exe /unregserver是取消注册。test1.exe运行时的参数是在:

Project->Settings->Debug->Program arguments中设置。

三、怎么在建立的服务程序中加入自己的代码?

我们看一下刚才生成的test1项目的结构。

我们看到test1有一个类CServiceModule和一些Globals的内容。Globals包括一个_tWinMain函数,也就是程序的入口,其中使用了FindOneOf这一与分析命令行有关的函数,还剩下一个全局变量_Module。

上一页  1 2 3 4 5  下一页

Tags:编写 图形 界面

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接