2011-04-01 63 views
0

我有我的軟件安裝/首次在Vista/7相對於VirtualStore運行的問題。以管理員身份運行:訪問用戶VirtualStore

我的軟件是用C#。安裝人員:NSIS。

  1. 我的應用程序正在使用NSIS安裝。它運行以管理員身份
  2. 安裝完成後,用戶可以立即開始從安裝該軟件。
  3. 這導致程序的第一次運行以管理員身份執行。
  4. 第一次運行時,必須完成一個嚮導。該向導會從舊版本的軟件導入數據,這已經是在計算機上(C:\ Program Files文件\ OldProgram \ DATA)
  5. 然而,在7/Vista中,這一數據是在用戶的VirtualStore。當我是管理員時,我不會「看到」這些數據,也無法將其轉換。

問題:

  1. 我可以知道哪個用戶正在登錄?
  2. 有沒有一種通用的方式來訪問該用戶的虛擬商店? 考慮到「程序文件」文件夾命名不同,有些國家和64位我的應用程序位於「程序文件(x86)」。
+1

豈不是可能重新啓動該程序的用戶代替? – 2011-04-01 08:16:52

回答

0
  1. 的UserInfo ::的GetName會給你的用戶名,使用UserMgr如果你需要更多的控制
  2. 的Windows並沒有真正提供一種方法來訪問其他用戶的特殊文件夾沒有他們的道理,但this helper macro作品在大多數情況下。虛擬商店的名稱/位置沒有AFAIK記錄,所以你必須得到與GetUserShellFolderFromRegistry最接近的特殊文件夾,然後硬編碼路徑的VirtualStore部分...

如果你想啓動一個程序作爲用戶不執行管理員安裝,使用UAC plugin(或只是刪除完成頁面上運行復選框並讓用戶正常啓動該程序)

相關問題