中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 13:36
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 用批处理添加一个系统服务为什么需要重启才生效?
可打印版本  1,173 / 4
第1楼 cnds 发表于 2010-03-19 14:21
初级用户 发帖 36 积分 37
用批处理添加一个系统服务为什么需要重启才生效?
代码如下:


上面这些代码,可以向系统写入一个名为“HZ_CommSrv”的系统服务,
但是写入后必须重启操作系统,服务方能在系统的服务列表里显示出来,
有没有办法写入后直接能启用这个服务的方法呢?请教各位了,谢谢。
第2楼 lslcxlsl 发表于 2010-03-19 14:36
初级用户 发帖 24 积分 52
用 sc 来创建
第3楼 cnds 发表于 2010-03-21 11:40
初级用户 发帖 36 积分 37
能否使用写入注册表的方式来启动一个服务?
我试过了,找不到注册表的变化。
第4楼 slore 发表于 2010-03-21 15:39
铂金会员 发帖 2,478 积分 5,212
net start不行么?
第5楼 Hanyeguxing 发表于 2010-03-21 15:44
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
// delphi新建服务
function CreateServices(Const SvrName,FilePath: String): Boolean;
var
a,b:SC_HANDLE;
begin
Result:=False;
if FilePath ='' then Exit;

a := OpenSCManager(nil,nil,SC_MANAGER_CREATE_SERVICE);

if a <= 0 then Exit;
try
b := CreateService(a,PChar(SvrName),
PChar(SvrName),
SERVICE_ALL_ACCESS,
SERVICE_INTERACTIVE_PROCESS or SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,
PChar(FilePath),nil,nil,nil,nil,nil);
if b <= 0 then begin
ShowMessage( SysErrorMessage( GetlastError ));
Exit;
end;
CloseServiceHandle(a);
CloseServiceHandle(b);

Result := True;
except
CloseServiceHandle(a);
CloseServiceHandle(b);
Exit;
end;
end;

[ Last edited by Hanyeguxing on 2010-3-21 at 17:14 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023