簡體   English   中英

如何在同一系統中為不同的用戶帳戶注冊相同的COM dll

[英]How to register a same COM dll for different user account in the same system

我有一個win32 COM dll。 我想為同一系統中的不同用戶注冊此dll。

每個用戶的dll位置不同。

C:\users\user1\mydll.dll
C:\users\user2\mydll.dll
C:\users\user3\mydll.dll

安裝過程將注冊dll。

問題:

如果user1卸載產品,mydll.dll將被取消注冊,因此不會為user2和user3運行應用程序。

解:

我可以單獨為每個用戶注冊mydll.dll。(user1,user2等)

您不能為其他用戶注冊(作為單個用戶)DLL。 如果你有足夠的權限,你可以在給定的機器上注冊一個DLL( HKEY_LOCAL_MACHINE ),你可以自己注冊它( HKEY_CURRENT_USER ),但你不能為其他用戶注冊( HKEY_USERS\\S-1-5-21-* )。

在嘗試使用user1的權限編寫C:\\users\\user2\\mydll.dll之前,您可能遇到過同樣的問題。 雖然管理員用戶功能強大,可以寫入\\Program Files\\ ,但它們並非無所不能。 用戶目錄是禁止的。

我想你應該將你的dll放在共享位置(例如:D&S \\ Application Data \\ My Company \\ Shared),安裝程序應將其標記為“共享文件”(我不知道你正在使用什么安裝程序,我正在使用Inno Setup,它有這樣的選項,如果我是對的,這是Windows的標准)。 因此,僅當共享引用計數為零時才應繼續注冊。

MS reccomendations是相同的http://msdn.microsoft.com/en-us/library/ms954376.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM