[VB6] service (her)starten vanuit code ?

Pagina: 1
Acties:

  • mrFreeZe
  • Registratie: December 1999
  • Laatst online: 25-05-2025
Weet iemand hoe ik een Win 2000 / XP service kan herstarten/stoppen/starten vanuit code ?

Ik heb de hele online msdn uitgeplozen geloof ik, en kom een aantal simpele goede voorbeelden hiervan tegen, maar die schijnen alleen te werken vanuit VB .NET

Iemand enig idee hoe ik dit kan doen vanuit VB 6 ?

Like this yall...


Verwijderd

Voor zover ik weet heeft VB zelf geen functies aan boord voor het aansturen van services. Je zult dus gebruik moeten maken van de win32 API functies die daar voor zijn.
Ook een optie (als je een beetje C/C++ kent) is om een activex control of een dll te maken die deze dingen voor je doet en deze vanuit VB te gebruiken...

Edit: En een derde optie is om gewoon gebruik te maken van een extern programma. 'net start/stop' bijvoorbeeld, of 'sc' uit de diverse resource kits..

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:54

Crazy D

I think we should take a look.

Kijk in MSDN bij de Platform SDK \ Windows API en snor even de StartService API op, daar vandaan staan links naar de overige functies die je nodig hebt. Niet getest maar zo te zien zou het ook te doen moeten zijn vanuit VB.

Exact expert nodig?


Verwijderd

shell ("net start <servicename>") . . .shell ("net stop <servicename>")

  • henkleerssen
  • Registratie: December 2000
  • Niet online

henkleerssen

Your life is as you narrate it

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Const RSP_SIMPLE_SERVICE = 1
Const RSP_UNREGISTER_SERVICE = 0
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function RegisterServiceProcess Lib "kernel32" (ByVal dwProcessID As Long, ByVal dwType As Long) As Long
Public Sub MakeMeService()
    Dim pid As Long, reserv As Long
    'Get the current process ID
    pid = GetCurrentProcessId()
    'Register as service
    regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub
Public Sub UnMakeMeService()
    Dim pid As Long, reserv As Long
    'Get the current process ID
    pid = GetCurrentProcessId()
    'Unregister as service
    regserv = RegisterServiceProcess(pid, RSP_UNREGISTER_SERVICE)
End Sub

bovenstaand staan 2 api calls... hier wat aan?