Выполнение команды из VB6 в .net Сервис - PullRequest
1 голос
/ 27 июля 2011

В VB.net я могу выполнять пользовательские команды на Windows-сервисах:

Desktop:

Const SmartShutdown As Integer = 12  

Dim myService As New ServiceController("SampleService")
myService.ExecuteCommand(SmartShutdown)

Windows-Service:

Protected Overrides Sub OnCustomCommand(ByVal command As Integer)  

Можно ли выполнять команды из VB6 в .net Windows-Service?

Ответы [ 2 ]

1 голос
/ 28 июля 2011

Вы можете использовать функцию API ControlService для отправки любых управляющих кодов. Для этого требуется, чтобы вы вызвали OpenService с соответствующим доступом и чтобы ваш процесс работал на требуемом уровне. В Vista + это можно сделать с помощью обычного манифеста (всего процесса) или COM-повышение прав .

1 голос
/ 27 июля 2011

Попробуйте использовать функцию 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...