Windows 7 vb6在Win7中读写文本文件

Windows 7 vb6在Win7中读写文本文件,windows-7,vb6,file-permissions,Windows 7,Vb6,File Permissions,我试图在Windows 7上执行一个.exe文件(由VB6创建)。 应用程序只需创建一个文本文件,然后读取文本文件的文本。 所有功能都已在Windows XP上成功测试。当我在Win7上执行.exe文件时,函数会像往常一样工作,但我创建的文件在特定路径(C:\test.txt)上不存在。最奇怪的是,尽管无法在文件资源管理器中找到文本文件,但我仍然可以从文本文件(通过.exe文件)中读取内容 然后我发现我必须选择[以管理员身份运行]来执行.exe文件,以便在C:驱动器上创建文件(test.txt)

我试图在Windows 7上执行一个.exe文件(由VB6创建)。 应用程序只需创建一个文本文件,然后读取文本文件的文本。 所有功能都已在Windows XP上成功测试。当我在Win7上执行.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

驱动器C受到Win7的保护,您仍然可以对其进行写入,但您确实不应该这样做

如果要以管理员身份运行应用程序:

  • 右键单击EXE
  • 选择属性
  • 进入兼容性选项卡
  • 选中“以管理员身份运行此程序”复选框
  • 单击“确定”
现在,每次运行应用程序时,它都将以管理员身份运行

  • 我建议您以管理员身份运行该程序,使用快捷方式中的功能(编译和安装后)
  • 如果您在调试模式下询问它-我相信如果您用来调试的用户是管理员-这就足够了
  • 我无法回答您的问题“我很好奇.exe文件如何在不存在的情况下仍能读取文本文件”
  • 不应直接将open指定为#1,而应使用FreeFile()函数

  • 祝你好运回答第三句话: Windows Vista和Windows 7用户访问控制(UAC)引入了名为VirtualStore的功能,该功能旨在为安装在Program Files文件夹下的应用程序添加额外的安全保护层。如果在硬盘上搜索该文件,您可能会在/User/AppData/Local/VirtualStore中找到该文件的第二个实例
    这就是为什么它仍然能够读取text.txt,尽管它不在您提到的位置。搜索UAC数据重定向:不要将垃圾塞进启动驱动器根目录,它是一个受保护的文件系统位置。感谢您的回复,但可以通过VB6代码强制以管理员身份运行。请尝试以下操作: