Предотвратить виртуализацию UAC? - PullRequest
5 голосов
/ 05 июля 2010

У меня есть приложение VB6, которое я продаю уже более 12 лет.Иногда у меня есть пользователи, которым трудно запустить приложение.Запись данных идет в / Мои документы, поэтому ничего, кроме установочных файлов (EXE и т. Д.), Не попадает в C: \ Program Files (или C: \ Program Files (x86)).

Исправление дляИх проблема состоит в том, чтобы запустить приложение, даже если оно выглядит зависшим, а затем показать диспетчер задач, просмотреть процессы, щелкнуть правой кнопкой мыши процесс моего приложения и снять флажок виртуализации UAC.Затем я заставляю их восстановить установку, и все в порядке.

Почему мой процесс помещен под виртуализацию UAC и как я могу предотвратить это?Я также использую InstallShield 2010 Professional для создания установки, я не уверен, связана ли она с программой установки или с самим приложением.

1 Ответ

9 голосов
/ 05 июля 2010

Чтобы предотвратить виртуализацию, добавьте манифест в приложение.Если вы говорите asInvoker или requireAdministrator, вы больше не получите виртуализацию.Я думаю, что AsInvoker будет лучше для вас, так как приложение работает нормально, без поднятия.

Вы можете просто поместить foo.exe.manifest в ту же папку, что и исполняемый файл, или встроить его, что имеет некоторые хитрости, например, сделать манифест кратным 4 байтам. Этот вопрос охватывает некоторые кровавые детали встраивания.

...