オプションで XP 上の Windows サービスとして実行でき、デスクトップと対話できる C++ アプリがあります (はい、それが悪い習慣であることはわかっていますが、長い間使用されてきました!)
私が発見した HTML ヘルプのレトロフィットHtmlHelp()
は、サービスからは機能しません。CreateProcess()
を使用して hh.exe を実行しようとしましShellExecute()
たが、成功しませんでした。一方、Write using の実行CreateProcess
は問題なく動作するため、hh.exe には何か違いがあるはずです。いくらグーグルで調べても、何の光も当てていません。サービスから chm ファイルを起動するにはどうすればよいですか?
PROCESS_INFORMATION ProcInfo;
STARTUPINFO si;
memset(&si, '\0', sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
//si.lpDesktop = "winsta0\\default"; // <-- doesn't make any difference
char *helpcmd = "hh.exe c:\\help\myhelpfile.chm";
BOOL bSuccess = ::CreateProcess(NULL, helpcmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &ProcInfo);