vb6在win 7中读写文本文件

时间:2013-07-18 09:57:51

标签: windows-7 vb6 file-permissions

我正在尝试在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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

驱动器C受Win7保护,你仍然可以写入它,但你真的不应该。

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

  • 右键单击EXE
  • 选择物业
  • 进入COMPATABILITY标签
  • 选中“将此程序作为管理员运行”复选框
  • 点击确定

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

答案 2 :(得分:0)

  1. 我建议您使用快捷方式中的功能(编译和安装后)以管理员身份运行程序。
  2. 如果您在调试模式下询问它 - 我相信如果您用于调试的用户是管理员 - 这就足够了。
  3. 我对你的问题没有答案“我很好奇.exe文件仍然可以读取文本文件,即使它不存在”
  4. 您不应直接指定open为#1,而是使用FreeFile()函数Look here for a sample
  5. 祝你好运