Win32 Windowsサービスを開始する StartService
Windowsサービスを開始するには、StartService関数を用いる。
StartService関数のプロトタイプは以下のとおり。
BOOL StartService( SC_HANDLE hService, // サービスのハンドル DWORD dwNumServiceArgs, // 引数の数 LPCTSTR *lpServiceArgVectors // 複数の引数からなる 1 つの配列 );
#include <windows.h> #include <stdio.h> int main() { SC_HANDLE hSCM = NULL; SC_HANDLE hService = NULL; LPCTSTR lpszServiceName = TEXT("iPod Service"); hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_CONNECT); if (hSCM == NULL) { printf("OpenSCManager error: %d\n", GetLastError()); goto EXIT_FUNC; } hService = OpenService(hSCM, lpszServiceName, SERVICE_START); if (hService == NULL) { printf("OpenService error: %d\n", GetLastError()); goto EXIT_FUNC; } if (StartService(hService, 0, NULL)) { printf("StartService Success\n"); } else { printf("StartService error: %d\n", GetLastError()); } EXIT_FUNC: CloseServiceHandle(hSCM); CloseServiceHandle(hService); return 0; }
注意:このプログラムを実行するには、管理者権限が必要となる場合がある。
http://msdn.microsoft.com/ja-jp/library/cc429360.aspx