admin管理员组文章数量:1594605
C++ 使用IUIAutomation接口获取界面元素时,在windows10、windows7的系统中是没有问题的,但是在xp系统中用CoCreateInstance创建实例时会报错为REGDB_E_CLASSNOTREG,表示指定的类未在注册数据库中注册。
CoCreateInstance(CLSID_CUIAutomation, NULL, CLSCTX_INPROC_SERVER, IID_IUIAutomation, reinterpret_cast<void**>(&pClientUIA))
首先查看CLSID_CUIAutomation类标识符为ff48dba4-60ef-4201-aa87-54103eef594e,使用redegit命令打开注册表,查找对应项如果未找到就说明没有注册。
原因:UIAutomation相关com组件以及相关依赖未在注册表中注册(因为尝试手动注册UIAutomationCore.dll后适用CoCreateInstance创建实例会报动态库错误)。
解决方法1:安装KB971513补丁即可。这个补丁容易被忽略,因为不是重要的安全补丁。
漏洞描述 : Windows XP 更新程序 (KB971513);Windows Automation API 库包含最新版本的 Microsoft User Interface Automation (UI Automation) 和 Windows 7 中提供的 Microsoft Active Accessibility 库。
解决方法2:可以使用UIAutomation在平台下的相关库,功能实现类似。适用平台为
产品 | 版本 |
---|---|
.NET | 5.0 |
.NET Core | 3.0, 3.1 |
.NET Framework | 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
本文标签: WindowsIUIAutomationXP
版权声明:本文标题:C++使用IUIAutomation在Windows XP SP3中的问题 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728183312a1148601.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论