0

我正在尝试在 Windows 7 上执行一个 .exe 文件(由 VB6 创建)。应用程序将做的是简单地创建一个文本文件,然后读取文本文件的文本。所有功能都在 Windows XP 上成功测试。当我在 Win 7 上执行 .exe 文件时,函数照常运行,但我创建的文件在特定路径 (C:\test.txt) 上不存在。最奇怪的是,尽管无法在文件资源管理器中找到文本文件,但我仍然可以从文本文件中读取内容(通过 .exe 文件)。

然后我发现我必须选择[以管理员身份运行]来执行.exe文件,这样文件(test.txt)就会在C:驱动器上创建。我很好奇 .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
4

3 回答 3

1

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

于 2020-02-08T13:08:47.910 回答
0
  1. 我建议您使用快捷方式中的功能(编译安装后)以管理员身份运行程序。
  2. 如果您在调试模式下询问它 - 我相信如果您用来调试的用户是管理员 - 就​​足够了。
  3. 我没有回答您的问题“我很好奇 .exe 文件即使不存在也可以读取文本文件”
  4. 您不应该直接将 open 指定为 #1,而是使用 FreeFile() 函数在此处查找示例

祝你好运

于 2013-07-18T15:44:29.217 回答
0

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

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

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

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

于 2013-07-18T15:42:18.027 回答