在VB.net中,我可以在Windows服务上执行自定义命令:
桌面:
Const SmartShutdown As Integer = 12
Dim myService As New ServiceController("SampleService")
myService.ExecuteCommand(SmartShutdown)
Windows的服务:
Protected Overrides Sub OnCustomCommand(ByVal command As Integer)
是否也可以执行从VB6到.net Windows-Service的命令?
答案 0 :(得分:1)
考虑使用VB6 Shell函数和sc.exe
命令行工具来控制Windows服务,例如:
Shell("cmd /C 'sc stop SampleService > %APPDATA%\svc.log'")
<强>更新强>
发送自定义命令,例如:
Shell("cmd /C 'sc control SampleService 128 > %APPDATA%\svc.log'")
自定义命令应在128-255范围内。
答案 1 :(得分:1)
您可以使用ControlService API函数发送任何控制代码。 这确实要求您使用适当的访问权限调用OpenService,并且您的进程正在所需级别运行。 在Vista +上,可以使用普通清单(流程范围)或COM elevation来完成此操作。