2 Service Installer for NSIS script
6 Released under terms of IBM Open Source agreement for OpenAFS
14 int main(int argc, char *argv[])
20 printf("Insufficient arguments: Service ServiceName ServicePath DisplayName.\n");
24 SC_HANDLE hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);
29 printf("Could not open Service Control Manager. Aborting.\n");
34 if(*argv[1]!='u' && *argv[1]!='U')
36 if (!stricmp(argv[2] + strlen(argv[2]) - 3, "sys"))
38 type = SERVICE_FILE_SYSTEM_DRIVER;
39 start = SERVICE_DEMAND_START;
43 type = SERVICE_WIN32_OWN_PROCESS;
44 start = SERVICE_AUTO_START;
46 hService = CreateService(hSCM, argv[1],
53 NULL,NULL,NULL, NULL, NULL );
57 printf("Create Service failed (%d)\n", GetLastError() );
58 CloseServiceHandle(hSCM);
63 hService = OpenService( hSCM, argv[2], DELETE);
65 DeleteService( hService );
68 CloseServiceHandle(hService);
71 CloseServiceHandle(hService);
72 CloseServiceHandle(hSCM);