我想知道如果MSAA是基于COM的,那么应该能够使用CreateObject(“可访问性”)来创建一个实例并调用它的方法。我没有成功地做到这一点。我在SYSTEM32里有"OLEACC.DLL“,它是在Windows上注册的。但是CreateObject失败了。
有什么想法吗?
我想使用像AccessibleObjectFromPoint()这样的函数来获取给定时间点的控件的IAccessible对象。
有没有人有过这样的经历?
任何输入都将非常感谢,
谢谢,
卡米尔
发布于 2009-12-15 08:39:34
MSAA是基于COM的。但是,没有公开可共同创建的类,它只公开接口。这就是你不能做CreateObject()的原因。
公开MSAA的API,如AccessibleObjectFromPoint和AccessibleObjectFromWindow,都是dll导出的C++方法。您可以通过链接适当的库或使用函数名执行LoadLibrary/GetProcAddress来在C++中使用它们。在C#中,你可以从Pinvoke.net中获得它们的P/nvoke声明。例如,下面是AccessibleObjectFromWindow的DllImport。
https://stackoverflow.com/questions/1904402
复制相似问题