现在的公司老板都爱省钱,所以强制推行WPS。这可苦了我们这些office二次开发的程序员


今天在C#调用PPT时遇到了一个异常,内容大致是这样的

System.InvalidCastException was unhandledMessage=Unable to cast COM object of type 'Microsoft.Office.Interop.PowerPoint.ApplicationClass' to interface type 'Microsoft.Office.Interop.PowerPoint._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{91493442-5A91-11CF-8700-00AA0060263B}' failed due to the following error: Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY)).Source=Microsoft.Office.Interop.PowerPoint

大意就是创建的Microsoft.Office.Interop.PowerPoint.ApplicationClass实例无法转换为Microsoft.Office.Interop.PowerPoint._Application接口。

这实际上是COM组件调用的一个问题,每个COM组件会有一个接口IDIID,另外每一个实现该接口的CLSID

那么既然一个接口可以有多个实现,那么具体哪个实现才是需要的呢?

这一切就是依赖于注册表控制的。

啊,注册表这个东西,大家说改就改了呀。

你的注册表被谁改了

首先是去注册表的HKEY_CLASSES_ROOT中查找对应接口的IID

然后从这一项的子类TypeLib,从中记录着CLSID

然后从HKEY_CLASSES_ROOT\TypeLib中找到这个项,然后可以看到。。。

国产软件值得支持,但是这样破坏注册表的行为还是希望可以改善

参考链接:

  • C#: PPT to PDF-Unable to Cast COM Object of Type ‘Microsoft.Office.Interop.PowerPoint. ApplicationClass’ to Interface Type 'Microsoft.Office.Interop.PowerPoint. _Application - TechNet Articles - United States (English) - TechNet Wiki
  • 怎么通俗的解释COM组件? - 知乎

本文会经常更新,请阅读个人博客原文: https://xinyuehtx.github.io/ ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。

WPS会更改PPT的注册表相关推荐

  1. 如何才能监控查看出注册表更改情况,本地组策略设置更改了哪些注册表对应值?

    环境: Win11 专业版 HP480G7 Windows Sysinternals Suite 问题描述: 如何才能监控查看出注册表更改情况,本地组策略设置更改了哪些注册表对应值? 解决方案: 1. ...

  2. 计算机更改用户名修改注册表出问题,改注册表没权限?无论什么账户这么做就好...

    在昨天的<除旧迎新过小年 1分钟速清电脑>留言中,有好多小伙伴说无法运行,权限不够.如果是运行BAT文件的话,用鼠标右键点击选择"以管理员身份运行"就行了. 但如果是在 ...

  3. Excel催化剂开源第32波-VSTO开发的插件让WPS顺利调用的方法-注册表增加注册信息...

    VSTO插件开发完成后,鉴于现在WPS用户也不少,很多时候用户没办法用OFFICE软件,只能在WPS环境下办公,VSTO开发的插件,只需增加一句注册表信息,即可让WPS识别到并调用VSTO开发的功能, ...

  4. python32bit改64bit,从32位Python更改64位注册表

    I am having difficulty do understand this. If I'm correct, A 32bit Python can't run a code and chang ...

  5. 使用组策略中的首选项更改域中计算机注册表

    使用首选项更改注册表 使用组策略的首选项可以更改计算机的注册表键值,通过更改可以控制计算机的行为.以下示例就通过组策略的首选项配置域中计算机启用远程桌面,且更改远程桌面使用的端口.默认远程桌面的远程桌 ...

  6. windows 注册表讲解

    注册表存储结构: 整个注册表内容主要由项(键).值(键值)构成.(通过regedit命令打开注册表) 5个根键: HKEY_CLASSES_ROOT    (缩写HKCR) HKEY_CURRENT_ ...

  7. 服务器iis7.5 配置文件,使用注册表项 - Internet Information Services | Microsoft Docs

    Internet 信息服务使用的注册表项的说明 07/21/2020 本文内容 本文介绍了 Microsoft Internet Information Services (IIS) 在 Window ...

  8. windowsMobile 注册表136个操作

    注册表修改详解方案集合 (136个修改操作) 1.修改"china Mobile"方法:在桌面的"中国移动"随你自己心愿修改! 具体操作如下: HKEY_LOC ...

  9. PPC修改注册表大全 (注册表必看)(转载)

    在PPC上很多功能可以通过改注册表实现  下面是一些较为常用的注册表修改方法 一共有133条 前面是目录 后面对应的是实现功能和修改方法--希望对大家有帮助 理论上通用与WM2003  5.0 6.1 ...

最新文章

  1. 互联网协议 — TLS — 使用 OpenSSL 自建 CA 中心
  2. UBUNTU衍生版制作,系统的封装
  3. 简单php不用mysql_简单的PHP / MySQL不工作
  4. 微信小程序开发教程(基础篇)8-数据绑定下
  5. 百度不收录你网站的原因
  6. Vue CLI3 基本使用配置;
  7. 计算机采用逻辑元件的发展顺序是,全国计算机等级考试一级选择题以及答案
  8. 谁说大龄程序员不能学 Java?
  9. SWPUACM第一届程序设计大赛
  10. 女孩子学前教育计算机,女孩子考什么专业比较好 适合女生的五大专业
  11. ps 毛发 边缘_PS技巧:毛发抠图调整边缘法
  12. 贴片钽电容,P型 A型 B型 C型 D型 E型怎么区分?
  13. 应用程序正常初始化(Oxc000007b)失败
  14. 机器学习中的数学——常用概率分布(三):二项分布(Binomial分布)
  15. 本地差分隐私 随机响应_本地化差分隐私:如何面对非可信的世界
  16. c语言log库,Log4g
  17. Go语言之分支结构(十一)
  18. Nginx 正向代理互联网访问
  19. redis分片式集群
  20. JAVA操作execl

热门文章

  1. jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、
  2. 2021年中国政府引导基金设立数量、目标规模、认缴规模及分布[图]
  3. windows人大金仓定时备份脚本
  4. pytorch 图像分割的交并比_PyTorch深度学习框架——初识
  5. 论文的数据一般在哪里找?
  6. 分享html表格简历表
  7. 低保定期报告系统服务器出错怎么办,乌兰察布低保定期报告认证系统
  8. 扫地机器人出口欧盟办理CE认证的标准介绍
  9. poi在指定位置插入图片,图片可以浮动内容上方下方
  10. 网格化运维标书_基于网格化规划的配网运维和业扩方案工作的精益化管理