问候,
对于正在迁移到x64环境的32位软件程序(Windows XP SP3朝向Windows 7 X64),我遇到了一个特殊的问题,应用程序的问题是电子注册/直到我们的terminal销售办事处。
该应用程序位于:
"C:\Program Files(x86)\Q_Kassa"
我们已经为用户运行软件的所有相关权限设置为shell,包括应用程序需要的文件夹的所有相关读/写权限。 但是,只要我们不“以pipe理员身份运行”或者只要加载程序的用户不是本地pipe理员组的成员,应用程序就不会加载抛出无法find文件的错误位于:
C:\Program Files\Q_Kassa\FileName
事情是,所有相关的configuration数据,configuration文件和注册信息告诉应用程序,它的数据是在Program Files(x86)目录中。 出于某种原因,当应用程序使用“运行身份pipe理”选项运行时,或者在用户位于本地pipe理员组中时运行,该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不会redirect到“虚拟根目录”文件夹,但最好是混乱。