Это InstallShield Express 4 или Windows 7, вызывающая у меня проблемы при установке приложения VB6 - PullRequest
0 голосов
/ 29 февраля 2012

Я использую очень старую версию InstallShield Express 4 для упаковки своего приложения VB6.Устанавливая его на XP, он прекрасно работает.Но когда я устанавливаю его на Windows 7, не используя «запуск от имени администратора», все кажется доступным только для чтения.Я не могу редактировать INI-файл, потому что access is denied.Приложение просто не работает должным образом.Как будто он даже не может получить доступ к папке.И он установлен в папке «программные файлы» по умолчанию.Я удаляю приложение, переустанавливаю с помощью опции «Запуск от имени администратора», устанавливаю совместимость ярлыка «Запуск от имени администратора», и все работает нормально.

Мой вопрос - это что-то унаследованное в VB6, где приложениедолжен запускаться от имени администратора или это проблема InstallShield?И если это проблема InstallShield Express, исправит ли это последняя версия InstallSheild Express 2012?Я бы предпочел, чтобы пользователь не беспокоился об установке или запуске приложения в качестве администратора.

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Нет ничего плохого в вашем приложении VB6.Я бы сказал, что это более старая версия InstallSheild, которая может быть проблемой в этом случае.

Эта функция называется Контроль доступа пользователя (UAC) , которая была представлена ​​в Windows Vista, и следующиеОперационные системы Microsoft для предотвращения произвольного доступа приложений к записи %ProgramFiles%.Вы все еще можете выполнить это вручную (путем копирования и вставки файлов в% ProgramFiles%), но UAC запросит ваше разрешение.

Чтобы приложение функционировало должным образом, сохраните настройки приложения в %APPDATA% или в реестре, NOT в каталоге% ProgramFiles%.Во время установки или удаления вашей программы, для которой требуется доступ на запись в %ProgramFiles%, вам придется запускать ее от имени администратора (если, конечно, у вас отключен контроль учетных записей, который представляет серьезную угрозу безопасности и настоятельно не рекомендуется).

2 голосов
/ 29 февраля 2012

Да, что-то не так с вашим приложением VB6. Он хранит свои данные в неправильном месте. Ваше приложение не может получить доступ к папке с файлами программы, если оно не запущено от имени администратора. Это связано с контролем учетных записей пользователей , как объяснено в ответе gsabil.

Вот несколько решений (лучшее из последних)

  • Всегда запускайте приложение VB6 от имени администратора.
  • Отключить контроль учетных записей. Это открывает некоторые дыры в безопасности и не рекомендуется
  • Заставьте вашу инсталляционную программу изменить разрешения для вашего инсталляционного каталога, предоставив права на запись всем пользователям. Это скорее взлом, но это может быть быстрый способ заставить вашу программу работать
  • Измените ваше приложение (не ваша программа установки), чтобы оно сохраняло свои данные в% AppData%, а не в каталоге установки. Это предпочтительнее. Вот несколько подробных советов о том, как это сделать в VB6
...