我有一个安装在C:/ Program Files / IronDuke
的旧版VB6系统过去,它已将一些文件写入此目录。据我所知,如果应用程序安装在Vista或更高版本的操作系统下,这些文件会被隐藏,但如果它们是在XP或更早版本的操作系统下编写的话,则会隐藏起来。
如何在Vista或Windows 7或8下编写这些“隐藏”文件的副本?
答案 0 :(得分:3)
您正在查看名为UAC Virtualization
的功能,此blog posting可以很好地了解正在发生的事情以及文件所在的位置。
从以上文章:
例如,如果应用程序尝试写入C:\ Program Files \ Contoso \ Settings.ini,并且用户没有权限写入该目录(Program Files),则写入操作将重定向到C:\ Users \ Username \ AppData \ Local \ VirtualStore \ Program Files \ Contoso \ settings.ini。如果应用程序尝试写入注册表中的HKEY_LOCAL_MACHINE \ Software \ Contoso \,它将自动重定向到HKEY_CURRENT_USER \ Software \ Classes \ VirtualStore \ MACHINE \ Software \ Contoso或HKEY_USERS \ UserSID_Classes \ VirtualStore \ Machine \ Software \ Contoso。< / p>
所以在你的情况下,如果你想找到你需要查看的文件:
C:\ Users \ Username \ AppData \ Local \ VirtualStore \ Program Files \ IronDuke \
答案 1 :(得分:2)
您无法在Windows 7/8下写入Program Files - 系统安全会阻止以常规用户身份运行的程序。您可以选择将这些文件写入用户的配置文件夹(您必须为此更新VB6程序,但如果程序编写得很好,则更改应该非常小)。这将是您的最佳选择,因为更新的代码将来可以很好地运行而无需更多更改。
你能够使用兼容模式运行该程序,但我对此表示怀疑 - 在我的Windows 8系统上,我甚至不再将'Windows XP'作为兼容性选项。所有其他选项都可能会强制执行安全性。
您可以尝试以管理员身份运行您的程序,但我只会在您没有来源进行更改的情况下执行此操作 - 运行具有所有权限的程序是不好的做法,因为它会打开系统进行攻击。 / p>