C#调用WPS的COM组件操作

发布时间 2023-10-17 15:00:54作者: stweily

本应比较简单直接调用,Office6下面的文件件etapi.dll (excel) ksoapi.dll (office)  wpsapi.dll(word) wppapi(powerpoint)  互操作类型-》false

结果是管理员启动(Run as时提示Com组件未注册)

   类似 检索 COM 类工厂中 CLSID 为 {000209FF-0000-4B30-A977-D214852036FE} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。

普通运行正常

原因:一般软件安装时,会提示选择使用用户:当前登陆用户或者所有用户,如果选择当前登陆用户,会将信息写入注册表CurrentUser下;如果选择所有用户,会将信息写入注册表LocalMachine中。

第一步:导出注册表CurrentUse中Software\Classes\Wow6432Node\CLSID内容,修改节点,并导入LocalMachine中Software\Classes\Wow6432Node\CLSID
第二步:导出注册表CurrentUse中Software\Classes\TypeLib内容,修改节点,并导入LocalMachine中Software\Classes\TypeLib

 就是将来[HKEY_CURRENT_USER\”全部替换为“[HKEY_LOCAL_MACHINE\”,之后,保存,双击导入注册表