Назад | Перейти на главную страницу

Программные файлы (x86) не интерпретируются прямо на Win7x64, если они не работают как локальный администратор

С Уважением,

У меня особая проблема с 32-битным программным обеспечением, которое переносится в среду x64 (Windows XP SP3 на Windows 7 X64. Вопрос в приложении - это электронный регистр / касса для наших офисов продаж конечных точек.

Приложение находится в:

"C:\Program Files(x86)\Q_Kassa"

Мы настроили все необходимые права доступа для пользователя, который будет запускать программное обеспечение как оболочку, включая все соответствующие права чтения / записи в папках, которые необходимы приложению. Однако, пока мы не запускаем от имени администратора или пока пользователь, который загружает программу, не является членом локальных групп администраторов, приложение не загружается, вызывая ошибку, что не может найти файл. находится в:

C:\Program Files\Q_Kassa\FileName

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

Итак, в итоге:

As local admin / Run-as-admin option used:

the application is fed info from C:\Program Files(x86)\Q_KASSA\
--> as it should be.

When run as a normal user the application tries to get it's info from 
    C:\Program Files\Q_Kassa
--> wrong folder

Кто-нибудь может объяснить, почему на каком уровне выполнения приложение, по-видимому, определяет, какой каталог Program Files используется?

С Уважением,

Это может быть просто устаревшая вещь и %PROGRAMFILES% смешивать. Самое простое решение - использовать символическую ссылку, например:

mklink /j "C:\Program Files(x86)\Q_Kassa" "C:\Program Files\Q_Kassa\"

Таким образом, он будет работать независимо от того, где программа «думает» о нем на самом деле. Также обратите внимание, что если это необходимо записывать в эту папку с программными файлами, вам нужно будет повысить свои права, чтобы она работала правильно. Windows выполняет перенаправление в папку «VirtualRoot», но в лучшем случае это беспорядочно.