hier ist der Code meines Programms in Visual C++ geschrieben 6.0:Visual C++ und Fenster Dienste
#include <Windows.h>
#include "stdafx.h"
#include <stdlib.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
while(true)
{
int sleepInterval = rand()%15;
Sleep(sleepInterval*1000);
WinExec("notepad.exe" ,SW_SHOWNORMAL);
}
return 0;
}
Dann bewege ich die * .exe-Datei aus diesem Code erzeugt und es zu meinem Desktop. Ich fange es von dort an. Alles funktioniert, ich meine Notepad Editor Fenster erscheinen von Zeit zu Zeit. Dann habe ich Windows-Dienst mit dem folgenden Befehl von der Eingabeaufforderung erstellt: C: \ Dokumente und Einstellungen \ Administrator> sc create ThemesService2 binPath = "C: \ Dokumente und Einstellungen \ Administrator \ Desktop \ win32apphelloworld.exe" DisplayName = "Themen Service2 "start = auto
Das Ergebnis von der Eingabeaufforderung ist dies: [SC] CreateService SUCCESS Bis hier ist alles in Ordnung - ein Service erstellt wird und es muss automatisch gestartet werden, wenn Windows startet. Ich starte neu. Dann passiert nichts, die Fenster aus dem Notizblock erscheinen nicht. Ich öffne Services.msc über das Startmenü-> Ausführen. Der Dienst ist da, aber der Status ist leer, ich meine, sein Status ist nicht 'gestartet'. Der 'Starttyp' ist 'Automatisch', wie es sein sollte. Aber es ist nicht gestartet. Ich habe versucht, es manuell mit der rechten Maustaste zu starten und dann auf "Start" zu klicken. Es erscheint ein Hinweisfeld mit der Meldung: 'Fehler 1053: Der Dienst hat nicht rechtzeitig auf die Start- oder Steueranfrage reagiert'. Kann mir jemand sagen, aus welchem Grund dieser Dienst nicht startet? Dank
Die Dienste werden in einer anderen Sitzung ausgeführt, sodass Sie keines der Notizfenster sehen können. –
Nun, ich wusste das nicht.Ok, aber sollte nicht der Service-Status immer noch "Gestartet" auch ich nicht Notizblock Windows sehen, wenn ich den Dienst in Services.msc überprüfen? Im Moment ist es nicht "Gestartet", was ich selbst als "Nicht laufen" verstehe? – citroen
Ihr 'WinMain' kehrt nie zurück, was mit der Fehlermeldung übereinstimmt, die Sie erhalten. Das heißt, ich weiß nicht, ob Sie einen Dienst von einem regulären entschuldigen können. Ein Dienst ist erforderlich, um bestimmte Rückrufe zu implementieren. – IInspectable