Как проверить приложение, запущенное с помощью ShellExecuteEx (если приложение уже запущено)

Я хочу, чтобы запустить приложение, как оболочка Windows, когда дважды щелкнул файл (.doc;.xls) ИЛИ ярлык (.LNK) или и exe. Затем я хочу получить pid и дескриптор окна запущенного приложения.

В настоящее время я использую ShellExecuteEx для запуска приложения-расшифровщика (File, .lnk или.exe). и получение pid из дескриптора, возвращенного ShellExecuteEx. Это не работает для нескольких приложений, таких как (AdobeReader, outlook и т. Д.), Но я попытался справиться с этим, получив "список запущенных приложений раньше" и принимая во внимание разницу после вызова ShellExecuteEx, чтобы получить только что запущенное приложение для таких случаев.

Но в случае, если приложение уже запущено (для открытого слова doc) ИЛИ в случае приложений с интерфейсом с вкладками (который не обязательно порождает новый процесс). Когда я запускаю ShellExecuteEx, он просто выводит это приложение в начало, возвращаемый дескриптор равен 0, а также я не получаю никакой разницы в pids (так как не новый процесс порожден)

Так что в этом случае я не могу получить pid или дескриптор окна запущенного приложения.

Может кто-нибудь, пожалуйста, предложить любой надежный способ решить эту проблему

заранее спасибо

0 ответов

Другие вопросы по тегам