我有一个以前没有在Server 2008 R2上需要UAC的VB6项目。我最近的版本在程序图标上有小UAC(用户访问控制)图标。当我尝试打开应用程序时,Windows会提示管理权限。
我所做的唯一更改是应用程序查找其设置文件的位置。以前,这些文件被锚定到C:\app\
中的静态位置。由于我更喜欢使用应用程序设置的.NET样式,因此我首先使用App.Path
在本地查找代码,然后在本地没有文件的情况下查看上一个静态位置。
答案 0 :(得分:1)
事实证明,App.Path
被确定为UAC提示的原因。我注释掉了一行代码并且盾牌图标消失了。似乎UAC的启发式假设我将写入Program Files
文件夹。
代码只读取文件,并且在使用ForReaading
FileSytemObject
方法时指定了OpenTextFile
。
我的替代
CurDir
似乎对我有用,因为文件只在启动时读取。需要注意的是,在调试时,CurDir
设置为IDE的exe路径。编译应用程序时它可以正常工作。
但是,如果您通过直接在文件夹中打开.vbp
文件(例如双击,例如)打开项目,CurDir
将是正确的。当您首次打开IDE然后从IDE中打开项目时,它只是IDE的exe路径。