Приложение работает только если вы запускаете от имени администратора? - PullRequest
0 голосов
/ 02 июня 2011

Редактировать: эта проблема возникает только в Windows 7 и Vista из того, что я слышал.

У меня очень простое приложение, разработанное с использованием внешней графической библиотеки. Если я установлю это приложение в каталог программных файлов и запусту его, оно сразу же выйдет из строя, но нормально работает, с точно такими же файлами. Я понял, что это потому, что вам нужно запустить приложение от имени администратора, чтобы оно работало.

Я ценю, если это проблема, непосредственно связанная с графическим движком, который я использую, но я так не думаю (но я ничего не понимаю). Кто-нибудь может мне помочь?

Изменить для более подробной информации:
Исполняемый файл приложения и файлы, необходимые для его запуска, устанавливаются в каталог программ по умолчанию - для меня C: \ Program Files (x86). Если вы попытаетесь запустить без нажатия кнопки «Запуск от имени администратора», он просто остановится и скажет: «Приложение перестало работать. Windows проверяет решение проблемы ...». Мой вопрос в основном: как мне это сделать? так что запускать от имени администратора не нужно?

Ответы [ 3 ]

3 голосов
/ 02 июня 2011

(без дополнительных подробностей) Проблема, скорее всего, связана с тем, что ваша программа пытается записать в каталог, а затем исключает создание / изменение файла для фактического эффекта. UAC не позволяет приложениям записывать каталоги Program Files без прав администратора. Решение состоит в том, чтобы перепроектировать ваше приложение, чтобы оно не зависело от такого поведения, или хранить рассматриваемые файлы в одном из предполагаемых расположений (папки AppData и т. Д.).

3 голосов
/ 02 июня 2011

Когда программа не может выполнить операцию, она (операция) должна завершиться неудачно. Я предполагаю, что ваше приложение пытается сделать что-то, что оно не может сделать как обычный пользователь, а затем не может проверить код возврата, а затем происходит сбой. Вам необходимо определить, что делает ваша программа, которую она не должна делать как обычный пользователь. Например (от макушки головы):

  • Запись файла в Program Files (x86)
  • Написать в HKLM
1 голос
/ 02 июня 2011

Если вы щелкнете правой кнопкой мыши на EXE и перейдете к Properties -> Compatibility, есть несколько вариантов, которые могут помочь. Вы можете попробовать запустить приложение в режиме совместимости для предыдущей версии Windows или, если это не сработает, по крайней мере, пометить EXE-файл как администратора по умолчанию.

...