主要是在用 inf 添加服务时,Imagepath 无法生成这样的带参数路径
[DefaultInstall.Services]
AddService=myserv,,myserv_install
[myserv_install]
.
.
ServiceBinary="%01%\myprogram.exe" "%01%\myprogram.cfg" --service
.
.
这样建立的服务,Imagepath成了
d:\Program Files\test\myprogram.exe d:\Program Files\test\myprogram.cfg --service
(假设程序路径为 d:\Program Files\test\)
多加双引号也没用。
因此想在服务安装完之后,用AddReg是不是可以达到效果。可是也不行。
[DefaultInstall]
AddReg=AddReg
[AddReg]
hklm,"SYSTEM\CurrentControlSet\Services\myserv","ImagePath",0x00020000,""d:\Program Files\test\myprogram.exe" "d:\Program Files\test\myprogram.cfg" --service"
如果安装服务能解决这个问题就更好了。用 [AddReg] 是没办法,但至少要比直接的Reg文件容易修改路径。当然,如果实在没办法,就只好用 reg 文件了(或导出的reg文件转成inf)。
ServiceBinary="""%01%\myprogram.exe""" """%01%\myprogram.cfg""" --service
这么修改一下。
印象中要写进入的双引号是用两个双引号表示的。