У меня есть приложение C ++, которое может дополнительно работать в качестве службы Windows на XP и взаимодействовать с рабочим столом (да, я знаю, что это плохая практика, но она существует уже давно!)
Переоснащение html справки, которую я обнаружил HtmlHelp()
не работает из службы. Я попытался запустить hh.exe, используя CreateProcess()
и ShellExecute()
, но безуспешно. С другой стороны, запуск Write с использованием 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);