需要通过向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
答案 0 :(得分:3)
你需要:
HKEY_CURRENT_USER\Software\Classes\CLSID\{your-CLSID-goes-here}
分支,子标InprocServer32
(或LocalServer32
)与its regular syntax HKEY_CURRENT_USER\Software\Classes\{your-ProgID-goes-here}
将您的ProgID
映射到CLSID
,以便CreateObject
成功。