Программные файлы (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 используется?
С Уважением,
1 ответ
Это может быть просто наследие и %PROGRAMFILES%
смешивать. Самым простым решением было бы использовать символическую ссылку, например так:
mklink /j "C:\Program Files(x86)\Q_Kassa" "C:\Program Files\Q_Kassa\"
Таким образом, это будет работать независимо от того, где программа "думает", что это на самом деле. Кроме того, обратите внимание, что если он должен записывать в эту папку программных файлов, вам необходимо повысить его, чтобы он работал должным образом. Windows делает перенаправление в папку "VirtualRoot", но в лучшем случае она грязная.