我们有一个VB6应用程序,它读取一个带有.LIC文件扩展名的简单文本文件。当一切正常工作时,如果文件与可执行文件存在于同一目录中,则会读取该文件。如果没有,它会做其他事情。
我有一台使用Windows 7计算机的客户,如果他右键单击EXE并“以管理员身份运行”,它会“看到”LIC文件。如果他以基本用户身份运行EXE,则无法看到LIC文件。
我有足够的问题与UAC猜测UAC是从某种虚拟目录运行应用程序,这就是为什么看不到LIC文件。我的客户发誓他已经关闭了UAC。
任何人都有我的指示?如果有办法告诉UAC“让这个应用程序在这个目录中做它想做的事情”,那将是很棒的。那是出于我的专业知识。我一直在谷歌搜索,直到我的手指脱落,我找不到正确的答案。
谢谢!
答案 0 :(得分:1)
如果您认为虚拟化正在发生(这会导致它看起来不像Program Files),请给他一个名为foo.exe.manifest的清单文件,其中foo是您的可执行文件名,并让他将其放在同一个文件夹中exe和.lic文件。此清单应将所需的执行级别设置为asInvoker。这将抑制虚拟化,因此您可以将其作为问题的一部分进行排除。然后,他可能会获得访问被拒绝的错误,但这将帮助您解决问题。
答案 1 :(得分:0)
它也可能是权限?如果用户未以管理员身份登录,则您的程序可能无权读取“.lic”文件。您是否检查过用户是否可以在记事本中打开它?您的代码是否可能尝试使用读/写权限打开它,这更有可能失败?
您可能需要更改安装,以降低应用安装目录的权限。