Windows通过注册表管理COM组件。下面以Word为例,说明如何找到COM组件。
1、从HKEY_CLASSES_ROOT目录下查找Word.Application,找到CLSID,即{000209FF-0000-0000-C000-000000000046}。
[HKEY_CLASSES_ROOT\Word.Application]
@="Microsoft Office Word 应用程序"
[HKEY_CLASSES_ROOT\Word.Application\CLSID]
@="{000209FF-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\Word.Application\CurVer]
@="Word.Application.14"
2、在HKEY_CURRENT_USER\SOFTWARE\Classes\CLSID查找该CLSID。对于64位系统上的32位程序,则需要再HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID下查找。
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{000209FF-0000-0000-C000-000000000046}]
@="Microsoft Office Word 应用程序"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{000209FF-0000-0000-C000-000000000046}\InprocHandler32]
@="ole32.dll"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{000209FF-0000-0000-C000-000000000046}\LocalServer32]
@="C:\\Users\\ADMINI~1\\AppData\\Local\\Kingsoft\\WPSOFF~1\\1110~1.101\\office6\\wps.exe /Automation"
".ksobak"=""
"LocalServer32"=C:\Users\ADMINI~1\AppData\Local\Kingsoft\WPSOFF~1\1110~1.101\office6\wps.exe /Automation
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{000209FF-0000-0000-C000-000000000046}\ProgID]
@="Word.Application.12"
".ksobak"="Word.Application.11"
[HKEY_CURRENT_USER\SOFTWARE\Classes\WOW6432Node\CLSID\{000209FF-0000-0000-C000-000000000046}\VersionIndependentProgID]
@="Word.Application"
LocalServer32即为COM Server的路径。