怎样用Delphi实现一个系统服务的安装?

jayen 2010-04-07 05:06:28
有一些软件安装后会在系统中安装一些Driver,Service等的系统服务,例如很多大型的软件都会安装一些License Server的系统服务,通过还原文件跟注册表并不能安装那些系统服务,我用从Total Uninstall导出的注册表跟文件改动的信息,把文件按路径还原后导入注册表文件,然后用CreateService等 的API能把该服务注册成功并且在服务管理器里面能看到该服务,但想启动该服务的时候就出错。请问怎样能通过在Total Uninstall导出的信息用代码实现该服务的安装?
...全文
205 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
merrymin 2010-04-08
  • 打赏
  • 举报
回复
创建服务的例子得看看
sanguomi 2010-04-07
  • 打赏
  • 举报
回复
自己做个简单安装包就好了,把EXE或者DLL写到 资源文件里,然后释放到指定路径
用API和命令注册都可以,用INNO去注册服务有点折腾
jayen 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 pilicat 的回复:]

自己做安装程序有些麻烦了(除非你时间多),推荐使用 Inno Setup ,免费的,很好用,它也可以实现服务的安装:

http://www.jrsoftware.org/isdl.php
[/Quote]

看了一下Inno setup的源程序,它好像只能注册DLL,不能安装Driver,跟系统服务的。至少没有看到CreateService等API的调用。
jayen 2010-04-07
  • 打赏
  • 举报
回复
我用的是 在 Torry's delphi 下载的BtNTSvcMan(http://www.torry.net/pages.php?id=226)的组件来注册服务的,该组件你们带一个用delphi写的服务程序例子,然后用BtNTSvcMan能正确的安装该服务,但在安装其他软件的系统服务的时候能安装但不能启动,不知道是不是少了一些步骤?
pilicat 2010-04-07
  • 打赏
  • 举报
回复
自己做安装程序有些麻烦了(除非你时间多),推荐使用 Inno Setup ,免费的,很好用,它也可以实现服务的安装:

http://www.jrsoftware.org/isdl.php

jayen 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gyk120 的回复:]

仅仅是通过注册表没法安装服务,你要用CreateService建立相应的服务文件
[/Quote]

我用CreateService能把该服务注册成功并且在服务管理器里面能看到该服务,但启动该服务的时候就出错。
jayen 2010-04-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sqldebug_fan 的回复:]

你的这个问题方向错了,你应该要把程序写成服务,然后用命令行安装服务就可以了。给你一个帖子参考:http://hi.baidu.com/sqldebug/blog/item/8e2749213082c0589922ed61.html,安装服务可以直接在命令行中用 程序完整路径名 -install 来完成安装
[/Quote]

我不是要自己写服务程序,我是想重新打包定制现有的软件的安装,就相当于用Delphi制作一个软件的简易安装程序,但不是用现有的安装程序制作软件。
gyk120 2010-04-07
  • 打赏
  • 举报
回复
仅仅是通过注册表没法安装服务,你要用CreateService建立相应的服务文件
SQLDebug_Fan 2010-04-07
  • 打赏
  • 举报
回复
你的这个问题方向错了,你应该要把程序写成服务,然后用命令行安装服务就可以了。给你一个帖子参考:http://hi.baidu.com/sqldebug/blog/item/8e2749213082c0589922ed61.html,安装服务可以直接在命令行中用 程序完整路径名 -install 来完成安装

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧