2013-10-14 45 views
0

下“程序文件”文件我有一个安装在C遗留VB6系统:/ Program Files文件/ IronDukeVB6应用程序创建在Vista或更高版本的操作系统

在过去,它已经写了一些文件放入此目录。我知道,如果应用程序安装在Vista或更高版本的操作系统下,这些文件就会隐藏起来,但如果它们是在XP或更早版本的操作系统下编写的,则不会。

如何在Vista或Windows 7或8下编写这些“隐藏”文件的副本?

回答

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。

你的情况

所以,如果你想找到你需要寻找的文件:

C:\ Users \用户名\ AppData \本地\ VirtualStore \ Program Files文件\ IronDuke \

2

无法在Windows 7/8下写入程序文件 - 系统安全性会阻止以普通用户身份运行程序。一种选择是将这些文件写入用户的配置文件文件夹(您必须为此更新VB6程序,但如果程序写得很好,则更改应该非常小)。这将是您的最佳选择,因为更新后的代码在将来无需更多更改即可正常工作。

你可以使用兼容模式运行程序,但我怀疑它 - 在我的Windows 8系统上,我甚至没有将Windows XP作为兼容性选项。所有其他选项可能会强化安全性。

你可以尝试以管理员身份运行你的程序,但是如果你没有修改源代码的话,我只能这么做 - 运行具有所有权限的程序是不好的做法,因为它打开系统进行攻击。

相关问题