Приложение C ++ использует ShellExecute
для открытия файла PDF. Я использую Windows 10 Enterprise LTSC (версия 1809, сборка ОС 17763.615) для запуска моего приложения. Если мое приложение запускается с правами администратора (щелкните правой кнопкой мыши Run as administrator
), оно не сможет открыть файл PDF. Однако, если мое приложение запускается без прав администратора (просто дважды щелкнув по нему), тогда Adobe (программа чтения PDF по умолчанию) запускается успешно, и PDF отображается правильно.
Мое приложение работает нормально (с * 1007 и без *) в Windows 7 и Windows 10 Pro. Эта проблема только началась, когда мы пытаемся использовать Windows 10 Enterprise LTSC.
Фактический код из моего приложения:
ShellExecute(NULL, NULL, full_path.toWideCharPointer(), NULL, NULL, SW_SHOWDEFAULT);
, где full_path
, например, равен "C:\\Faxitron\\Docs\\Guide.pdf"
.
В обоих случаях (администратор или нет), ShellExecute
всегда возвращает 42, а GetLastError
возвращает 0. Вот кое-что интересное: при запуске моего приложения в качестве администратора диспетчер задач показывает 2 процесса Adobe Acrobat Reader DC (32 bit)
под моим приложением , но программа Adobe никогда не запускается / не открывается.
Не уверен, является ли это актуальным или нет, но я использую последнюю версию Adobe Acrobat Reader DC (версия 19.012.20034).
Наконец, мое приложение должно быть запущено с правами администратора (чтобы другие функции работали правильно). Есть ли способ заставить ShellExecute
работать при запуске приложения от имени администратора?