Windows 7 - UAC - VB6 - Приложение не может видеть текстовый файл - PullRequest
1 голос
/ 12 августа 2010

У нас есть приложение VB6, которое читает простой текстовый файл с расширением .LIC.Когда все работает правильно, если файл существует в том же каталоге, что и исполняемый файл, он читает его.Если нет, он делает другие вещи.

У меня есть клиент с компьютерами Windows 7, и если он щелкает правой кнопкой мыши на EXE и «запускается от имени администратора», он «видит» файл LIC.Если он запускает EXE-файл как обычный пользователь, файл LIC не будет виден.

У меня было достаточно проблем с UAC, чтобы догадаться, что UAC запускает приложение из какого-то виртуального каталога, и поэтомуФайл LIC не виден.Мой клиент клянется, что он выключил UAC.

У кого-нибудь есть указатели для меня?Было бы здорово, если бы был способ сказать UAC «пусть это приложение делает то, что хочет в этом каталоге».Это вне моей компетенции.Я гуглил, пока мои пальцы не отвалились, и я не могу найти правильный ответ.

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 августа 2010

Если вы думаете, что виртуализация происходит (что может привести к тому, что она будет выглядеть где-то, кроме Program Files), дайте ему файл манифеста с именем foo.exe.manifest, где foo - ваше исполняемое имя, и пусть он поместит его в ту же папку, exe и .lic файл. Этот манифест должен установить требуемый уровень выполнения asInvoker. Это подавит виртуализацию, и вы можете исключить это как часть проблемы. Затем он может получить доступ к ошибкам доступа, но это поможет вам разобраться в проблеме.

0 голосов
/ 12 августа 2010

Это также могут быть разрешения? Если пользователь не вошел в систему как администратор, то ваша программа может не иметь прав на чтение файла .lic. Вы проверили, может ли пользователь открыть его в блокноте? Возможно ли, что ваш код пытается открыть его с правами на чтение / запись, что может привести к сбою?

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

...