COM共同按用户注册

时间:2013-12-26 09:07:26

标签: vbscript com ole manual registrykey

需要通过向HKCU注册表配置单元(XP SP3,Windows 7,Windows 8)添加注册表项来实现COM共同类的每用户注册。通过调用VBScript CreateObject函数创建对象实例所需的最小注册表项是什么?

UPD:VBScript实现

Sub RegisterComObject(Path, ProgId, ClsId)
    Dim Shell
    Set Shell = WScript.CreateObject("WScript.Shell")

    Shell.RegWrite "HKCU\Software\Classes\" & ProgId & "\", ""
    Shell.RegWrite "HKCU\Software\Classes\" & ProgId & "\CLSID\", ClsId

    Shell.RegWrite "HKCU\Software\Classes\CLSID\" & ClsId & "\", ""
    Shell.RegWrite "HKCU\Software\Classes\CLSID\" & ClsId & "\InprocServer32\", Path
    Shell.RegWrite "HKCU\Software\Classes\CLSID\" & ClsId & "\ProgID\", ProgID
End Sub

Sub UnregisterComObject(ProgId, ClsId)
    Dim Shell
    Set Shell = WScript.CreateObject("WScript.Shell")

    Shell.RegDelete "HKCU\Software\Classes\CLSID\" & ClsId & "\InprocServer32\"
    Shell.RegDelete "HKCU\Software\Classes\CLSID\" & ClsId & "\ProgId\"
    Shell.RegDelete "HKCU\Software\Classes\CLSID\" & ClsId & "\"

    Shell.RegDelete "HKCU\Software\Classes\" & ProgId & "\CLSID\"
    Shell.RegDelete "HKCU\Software\Classes\" & ProgId & "\"
End Sub

1 个答案:

答案 0 :(得分:3)

你需要:

  1. HKEY_CURRENT_USER\Software\Classes\CLSID\{your-CLSID-goes-here}分支,子标InprocServer32(或LocalServer32)与its regular syntax
  2. HKEY_CURRENT_USER\Software\Classes\{your-ProgID-goes-here}将您的ProgID映射到CLSID,以便CreateObject成功。