win32 アプリケーションをサービスに変換しようとしています。CreateService() を使用して、アプリケーションをサービスとして作成します (以下のコードを使用)。
SC_HANDLE schService = CreateService
(
schSCManager, /* SCManager database */
pName, /* name of service */
pName, /* service name to display */
SERVICE_ALL_ACCESS, /* desired access */
SERVICE_WIN32_OWN_PROCESS|SERVICE_INTERACTIVE_PROCESS , /*service type*/
SERVICE_AUTO_START, /* start type */
SERVICE_ERROR_NORMAL, /* error control type */
pPath, /* service's binary */
NULL, /* no load ordering group */
NULL, /* no tag identifier */
NULL, /* no dependencies */
NULL, /* LocalSystem account */
NULL
); /* no password */
実際のアプリケーションで引数がなければ、サービスを開始できます。引数を指定してサービスを開始しようとすると、問題が発生します。
LPCTSTR apszSvcArgv[32] = {"start","passwd"};
int nSvcArgc = 2;
if(StartService(schService, nSvcArgc,apszSvcArgv))
{
return TRUE;
}
メインプログラムで着信引数をダンプしようとしましたが、引数の数が常に1として表示されます。
私は何か間違ったことをしていますか?このような引数を win32 コンソール アプリケーションに渡すことは可能ですか。
私が間違っている場合は修正してください..事前に感謝します