Здраствуйте!
С огромным интересом прочитал весь тред. В процессе работы над проектом (сервер работающий в сервисе), сам пришел к тем же выводам, но возникли некоторые проблемы:
1) Запущенное под сервисом приложение (CreateProcess & CreateProcessAsUser) не видимо, даже при залогиненом пользователе. Никаких ошибок не возникает, программа запускается и прекрасно работает, аналогичный код не в сервисе работает как ожидалось.
2) Как правильнее из сервиса открыть зарегистрированный в системе документ (те открыть связанную программу и передать ей этот файл).
— ShellExecute [Ex] не подходят по причинам:
a) не позволяет запустить с правами требуемого пользователя
b) _как я понимаю_ не могут работать без загруженного шела... или могут?
— FindExecutable
a) дает только свзяанный exe, но не то как запускать
b) то же
— (самый экстремальный вариант) — самому читать из реестра, но
a) придется предусмотреть всё самому
b) часть программ (пр ACDSee) принимает параметры по DDE, я совсем этим не занимался и опять же безопасность NT + DDE = ?