function TTransparentForm.InstallService(ServiceName, DisplayName, FileName: string): boolean;
var
SCManager , Service : THandle ;
Args : pchar;
TempServiceStatus : TServiceStatus;
begin
Result := False;
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then Exit;
try
Service := CreateService(
SCManager,
PChar(ServiceName),
PChar(DisplayName),
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
PChar(FileName),
nil, nil, nil, nil, nil
); Args := nil;
//sleep(1000);
Service := OpenService(SCManager, PChar(ServiceName), SERVICE_ALL_ACCESS);
if Service <> 0 then
begin
StartService(Service, 0, Args);
CloseServiceHandle(Service);
end ;
finally
CloseServiceHandle(SCManager);
end;
Result := True;
在启动时要报1053错误!但是我用delphi自代的代码就没有问题!
var
SCManager , Service : THandle ;
Args : pchar;
TempServiceStatus : TServiceStatus;
begin
Result := False;
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then Exit;
try
Service := CreateService(
SCManager,
PChar(ServiceName),
PChar(DisplayName),
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS,
SERVICE_AUTO_START,
SERVICE_ERROR_IGNORE,
PChar(FileName),
nil, nil, nil, nil, nil
); Args := nil;
//sleep(1000);
Service := OpenService(SCManager, PChar(ServiceName), SERVICE_ALL_ACCESS);
if Service <> 0 then
begin
StartService(Service, 0, Args);
CloseServiceHandle(Service);
end ;
finally
CloseServiceHandle(SCManager);
end;
Result := True;
在启动时要报1053错误!但是我用delphi自代的代码就没有问题!
我在主窗体中加入了RzTrayIcon这个控件的,听说这样子服务启动时才看的见主窗体!
现在却看不见不知道是为什么!!!
StartService(Service, 0, Args);
CloseServiceHandle(Service);
end ;
还是启动不了!
在 StartService(Service, 0, Args); 这一句停好久就是启动不了!
Interective:=true;
不过楼主既然不这么做