1

需要通过向 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
4

1 回答 1

3

你需要:

  1. HKEY_CURRENT_USER\Software\Classes\CLSID\{your-CLSID-goes-here}InprocServer32带有子键(或,LocalServer32)的分支及其常规语法
  2. HKEY_CURRENT_USER\Software\Classes\{your-ProgID-goes-here}将您映射ProgIDCLSIDCreateObject取得成功。
于 2013-12-26T09:27:50.773 回答