2012-03-06 38 views
2

我有一個.NET程序集並使用regasm.exe註冊COM。用戶使用tlb在Excel中的VBA中編寫代碼。這是一種可能的方法來註冊COM的.NET類型

我做了一個regasm/regfile,我發現所有註冊表項都落入了'HKEY_CLASSES_ROOT \'。 我有一個管理員約束(可悲)在所有用戶的計算機上運行regasm,因爲它需要管理員訪問將註冊表項寫入* HKEY_CLASSES_ROOT *。

我的問題是,如果我改變這個寫入'HKEY_LOCAL_MACHINE'或'HKEY_CURRENT_USER',COM互操作是否仍然工作,Excel將能夠找到我的類型?

這樣,我想我可以爲我的用戶談判一個少得多的難題,所以他們可以運行這個新的reg文件而不是運行regasm。

感謝 瑪尼

+0

是,COM首先搜索HKCU。你爲什麼不試試呢? – 2012-03-06 14:26:49

回答

0

可悲的是它不是那麼容易,因爲它取決於用戶設置,採取掠奪在: http://blogs.msdn.com/b/cjacks/archive/2008/06/06/per-user-com-registrations-and-elevated-processes-with-uac-on-windows-vista-sp1.aspx

+0

這很有趣。但在我的情況下,我使用Win XP和SP3。你認爲這仍然適用? – 2012-03-06 13:59:27

+0

是的,在Windows XP中沒有問題,你必須記住只有更新的操作系統版本的「注意」(至少警告你的用戶或技術支持服務)。 – 2012-03-06 14:33:13

+1

正如文章所述,當啓用UAC且帳戶運行時,每個用戶的註冊被忽略。但是,這是每個機器註冊都會成功的環境。 – Govert 2012-05-17 22:20:34

相關問題