在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
http://blog.csdn.net/haiou327/article/details/6106233
不用cmd用delphi如何实现启动停止windows服务
function StartService(AServName: string): Boolean; //use WinSvc var SCManager, hService: SC_HANDLE; lpServiceArgVectors: PChar; begin SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS); Result := SCManager <> 0; if Result then try hService := OpenService(SCManager, PChar(AServName), SERVICE_ALL_ACCESS); Result := hService <> 0; if (hService = 0) and (GetLastError = ERROR_SERVICE_DOES_NOT_EXIST) then Exception.Create('The specified service does not exist'); if hService <> 0 then try lpServiceArgVectors := nil; Result := WinSvc.StartService(hService, 0, PChar(lpServiceArgVectors)); if not Result and (GetLastError = ERROR_SERVICE_ALREADY_RUNNING) then Result := True; finally CloseServiceHandle(hService); end; finally CloseServiceHandle(SCManager); end; end; function StopService(AServName: string): Boolean; var SCManager, hService: SC_HANDLE; SvcStatus: TServiceStatus; begin SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS); Result := SCManager <> 0; if Result then try hService := OpenService(SCManager, PChar(AServName), SERVICE_ALL_ACCESS); Result := hService <> 0; if Result then try //停止并卸载服务; Result := ControlService(hService, SERVICE_CONTROL_STOP, SvcStatus); //删除服务,这一句可以不要; // DeleteService(hService); finally CloseServiceHandle(hService); end; finally CloseServiceHandle(SCManager); end; end; /////////////////////////////////////////////////////////////////////////////////// --------------------------------------------------------------- 可以将你的App Server加到ScktSrvr那个程序中,或ScktSrvr加到你的程序中,那个程序在VCL目录下,不管怎么,第一次还是得安装成NT服务,不然它自动会加? --------------------------------------------------------------- 把Scktsrvr加到启动程序中(我就是这样做的); --------------------------------------------------------------- --------------------------------------------------------------- 把Scktsrvr加到启动程序中 把它加启动程序中?不好吧。 --------------------------------------------------------------- --------------------------------------------------------------- Scktsrvr.exe加到启动程序中
在Delphi的安装目录下的/Source/Vcl目录下有ScktSrvr.dpr整个项目,你可以将的应用程序服务器加在这个项目里,就不用ScktSrvr.Exe了。 Scktsrvr是个服务 --------------------------------------------------------------- 把Scktsrvr加到启动程序中
先启动你的Scktsrvr; 那就只执行一次喽 在dpr中
第一 scktsrvr /install 安装到服务器中最好,因为在98下面启动是不行的,只有在2k下面或者NT下面才行; --------------------------------------------------------------- --------------------------------------------------------------- 我倒,早就有过这种讨论了,scktsrvr demo 中 TSocketDispatcher 可以独立成一个控件,那样你爱放哪就哪了? ------------------------------------------- 让它随server自动启动。(放到启动菜单) |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论