Problem mit dem starten eines Dienstes
Verfasst: 06.08.2010 04:20
Also mein Problem ist folgendes...
ich wollte mal versuchen einen Dienst zu starten.
Und zwar hab ich folgendes getan...
Ich hab erstmal ein ganz simples Programm erstellt.
Danach habe ich einen Dienst erstellt.
Die Ausgabe im Debugger war:"Service wurde erfolgreich installiert"
So... nun das Problem...
Hiermit wollte ich dann den Dienst starten:
Dann gab der Debugger nach einiger Zeit "Service konnte nicht gestartet werden" aus...
Kann mir jemand erklären, warum der Service nicht gestartet werden konnte?
ich wollte mal versuchen einen Dienst zu starten.
Und zwar hab ich folgendes getan...
Ich hab erstmal ein ganz simples Programm erstellt.
Code: Alles auswählen
MessageRequester("Test","Test, ob der Dienst funktioniert.")
Code: Alles auswählen
EnableExplicit
Procedure Service_Install(Name$, Title$, Program$, Description$="")
Protected hSCManager, hServ, lResult, lpDescription.String
hSCManager = OpenSCManager_(#Null, #Null, #SC_MANAGER_ALL_ACCESS)
If hSCManager
hServ = CreateService_(hSCManager, Name$, Title$, #SERVICE_ALL_ACCESS, #SERVICE_WIN32_OWN_PROCESS, #SERVICE_AUTO_START, #SERVICE_ERROR_NORMAL, Program$, #Null, #Null, #Null, #Null, #Null)
If hServ
If Description$
lpDescription\s = ReplaceString(Description$, Chr(10), " ")
lResult = ChangeServiceConfig2_(hServ, #SERVICE_CONFIG_DESCRIPTION, @lpDescription)
EndIf
CloseServiceHandle_(hServ)
EndIf
CloseServiceHandle_(hSCManager)
EndIf
If hServ And lResult
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
If Service_Install("Dienst87","Titel von Dienst87","C:\Dokumente und Einstellungen\My\Eigene Dateien\Dienst87.exe","Beschreibung von Dienst87")=#True
Debug "Service wurde erfolgreich installiert"
Else
Debug "Service konnte nicht installiert werden"
EndIf
So... nun das Problem...
Hiermit wollte ich dann den Dienst starten:
Code: Alles auswählen
EnableExplicit
Procedure Service_Start(Name$)
Protected hSCManager, hServ, lResult
hSCManager = OpenSCManager_(#Null, #Null, #GENERIC_READ | #SC_MANAGER_CONNECT)
If hSCManager
hServ = OpenService_(hSCManager, Name$, #GENERIC_EXECUTE)
If hServ
lResult = StartService_(hServ, 0, #Null)
CloseServiceHandle_(hServ)
EndIf
CloseServiceHandle_(hSCManager)
EndIf
If hServ And lResult
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
If Service_Start("Dienst87")
Debug "Service wurde gestartet"
Else
Debug "Service konnte nicht gestartet werden"
EndIf
Kann mir jemand erklären, warum der Service nicht gestartet werden konnte?