Programmatisch starten eines Windows-Dienstes
Ich weiß, das kann man in C#/.Net, aber ich Frage mich, ob es getan werden kann, aufrufen der Windows-API?
Habe ich einen Dienst, der Dienst DHCP-Anfragen, wenn ich aktualisieren möchten, müssen Sie die Konfiguration für den service, den ich brauchen, um den Dienst zu beenden, schreiben Sie den INI-Datei und starten Sie dann den Dienst erneut.
Jede Hilfe dankbar!
InformationsquelleAutor der Frage Nick | 2011-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Ferruccio
Sicher, es gibt eine ganze Reihe von C-API-Funktionen siehe zum Beispiel http://msdn.microsoft.com/en-us/library/ms682108%28v=vs.85%29.aspx.
InformationsquelleAutor der Antwort Neil Butterworth
Sind Sie auf der Suche nach so etwas wie dieses: Starten und stoppen von Diensten ?
InformationsquelleAutor der Antwort Robb
Müssen Sie öffnen Sie den Dienststeuerungs-manager (OpenSCManager), dann öffnen Sie den Dienst selbst (OpenService) und schließlich Fragen Sie ihn, zu starten (StartService). Schließen Sie alle handles, die Sie verwendet haben, auf dem Weg, dann bist du fertig.
Wow, handling services in C++, wirklich bringt mich zurück...
Glück,
InformationsquelleAutor der Antwort Adrian Conlon
In einer dos-box,
net start [Dienst]
würde tun, was Sie brauchen. Wenn Sie nicht finden, eine API-Lösung, können Sie immer einen Prozess starten, fürnet.exe
mitstart [service]
als Parameter.InformationsquelleAutor der Antwort takrl
Können Sie auch verwenden Sie WMI,. Der Beispielcode zu diesem link ist VB, aber es sollte Recht einfach zum Hafen nur etwa jeder Sprache auf Windows.
Wenn Sie sind in der Automatisierung unter Windows-WMI ist gut zu lernen, weil es bietet eine sprachunabhängige Objekt-orientierte Schnittstelle zu den meisten interessanten Objekte auf dem system.
InformationsquelleAutor der Antwort Nemo
Ich bin zu spät für die Partei, aber ich würde vorschlagen, die offizielle, detaillierte Beispiele für beide starten und beenden eines Dienstes. Der Vorteil gegenüber der anderen Antworten hier ist, dass Sie auch Fehler-handling, Grenzfälle und abhängige Dienste -
Stop: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686335(v=vs. 85).aspx
Start: http://msdn.microsoft.com/en-us/library/windows/desktop/ms686315(v=vs. 85).aspx
InformationsquelleAutor der Antwort Itaypk
Manchmal möchte man den Dienst neu starten, von dem Dienst selbst. Diese Lösung funktionierte für mich. Ich ließ das eher trivial timer-code für Klarheit. Beachten Sie, dass diese Lösung funktioniert nur, weil der Anrufer ein Dienst und läuft auf einem erhöhten Niveau.
InformationsquelleAutor der Antwort Michaël Roy