vb6在win 7中读写文本文件

问题描述 投票:0回答:3

我正在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
windows-7 vb6 file-permissions
3个回答
0
投票
  1. 我建议您使用快捷方式中的功能(在编译和安装之后)以管理员身份运行程序。
  2. 如果您在调试模式下问过它-我相信,如果您用来调试的用户是管理员-就足够了。
  3. 我对您的问题“我很好奇,即使不存在该.exe文件仍能读取该文本文件,我还是很好奇”
  4. 您不应该直接将open指定为#1,而是使用FreeFile()函数代替Look here for a sample

祝你好运


0
投票

驱动器C受Win7保护,您仍然可以对其进行写入,但实际上不应该。

如果您想以管理员身份运行该应用程序:

  • 右键单击EXE
  • 选择属性
  • 进入兼容性选项卡
  • 选中以管理员身份运行此程序复选框
  • 单击确定

现在,每次您运行该应用程序时,它将以管理员身份运行


0
投票

回答第三句话:Windows Vista和Windows 7用户访问控制(UAC)引入了一项称为VirtualStore的功能,该功能旨在为安装在Program Files文件夹下的应用程序添加额外的安全保护层。如果您在硬盘上搜索文件,则可能会在/ User / AppData / Local / VirtualStore中找到该文件的第二个实例这就是为什么它仍然能够读取text.txt的原因,尽管在您提到的位置不存在。

© www.soinside.com 2019 - 2024. All rights reserved.