我正在尝试在Windows 7上执行.exe文件(由VB6创建)。 应用程序将做的只是创建一个文本文件,然后读取文本文件的文本。 所有功能都在Windows XP上成功测试。当我在Win 7上执行.exe文件时,这些函数照常运行,但我创建的文件在特定路径(C:\ test.txt)上不存在。最奇怪的是,尽管无法在文件浏览器上找到文本文件,我仍然可以从文本文件中读取内容(通过.exe文件)。
然后我发现我必须选择[以管理员身份运行]来执行.exe文件,以便在C:驱动器上创建文件(test.txt)。我很好奇.exe文件如何仍然可以读取文本文件,即使它不存在,我如何强制.exe文件以管理员身份运行?
这是编写和读取文件的编码。
Open "C:\" & "test.txt" For Output As #1
Print #1, cDrive.Text
Close #1
Open "C:\" & "test.txt" For Input As #1
Input #1, msg
Close #1
cDrive.Text = msg
Exit Sub
答案 0 :(得分:1)
要回答第三点: Windows Vista和Windows 7用户访问控制(UAC)引入了一项称为VirtualStore的功能,该功能旨在为安装在Program Files文件夹下的应用程序添加额外的安全保护层。如果您在硬盘上搜索文件,则可能会在/ User / AppData / Local / VirtualStore中找到该文件的第二个实例 这就是为什么它仍然能够读取text.txt的原因,尽管在您提到的位置不存在。
答案 1 :(得分:0)
驱动器C受Win7保护,你仍然可以写入它,但你真的不应该。
如果您想以管理员身份运行该应用:
现在每次运行应用程序时,它都将以管理员身份运行
答案 2 :(得分:0)