Windows Dienst der nach Installation startet



  • Hi an alle, habe gerade einen Dienst programmiert. Jetzt möchte ich dass dieser Dienst nach dem Installieren gestartet wird.

    In einem Tutorial habe ich gelesen, dass es folgendermaßen funktionieren müsste:

    if(InstallService())
    	  {
    			printf("\n\nService Installed Sucessfully\n");
    			SERVICE_TABLE_ENTRY ServiceTable[2];
    			ServiceTable[0].lpServiceName = L"David Report Service";
    			ServiceTable[0].lpServiceProc = (LPSERVICE_MAIN_FUNCTION)ServiceMain;
    
    			ServiceTable[1].lpServiceName = NULL;
    			ServiceTable[1].lpServiceProc = NULL;
    			// Start the control dispatcher thread for our service
    
    			if(!StartServiceCtrlDispatcher(ServiceTable))
    			{
    				DWORD dw = GetLastError();
    				TCHAR szBuf[80];
    				LPVOID lpMsgBuf;
    				FormatMessage(
    					FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    					FORMAT_MESSAGE_FROM_SYSTEM,
    					NULL,
    					dw,
    					MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
    					(LPTSTR) &lpMsgBuf,
    					0, NULL );
    
    			  wsprintf(szBuf, 
    				L"StartServiceCtrlDispatcher failed with error %d: %s", 
    				 dw, lpMsgBuf);
    			  WriteToLog(reinterpret_cast<char*>(szBuf));
    			}
    
    	  }
    

    Leider stürzt der Service beim Aufruf von StartServiceCtrlDispatcher ab mit der Meldung 1063: The service process could not connect to the service controller.
    Was ist hier falsch???

    Gruß

    mr.main


Anmelden zum Antworten