2013-10-14 43 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作爲兼容性選項。所有其他選項可能會強化安全性。

你可以嘗試以管理員身份運行你的程序,但是如果你沒有修改源代碼的話,我只能這麼做 - 運行具有所有權限的程序是不好的做法,因爲它打開系統進行攻擊。

相關問題