Delphi   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了将UIAutomation提供程序添加到Delphi控件(特别是网格)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_450_0@
我们的VCL Delphi应用程序有许多网格,我们需要通过UIAutomation开始与之交互.有许多问题,尤其是TStringGrid没有实现任何IUIAutomation模式(IGridProvider或ITableProvider,或者甚至是IValueProvider).

我试图找出我需要添加到TStringGrid以允许它实现提供程序(在.NET中的System.Windows.Automation.Provider命名空间中).

解决方法

@H_675_7@ 我无法提供实现TStringGrid所需的自动化功能所需的具体步骤,但我可以说,基于这些注释,您几乎拥有所需的一切.

你找到的文章describing the basic implementation of UI Automation support for Win32 Unmanaged code是一个很好的起点.

然后,通过UIAutomationCore.DLL中的IDL公开和未公开的内容的问题通过以下事实解决:所讨论的DLL本身旨在被非托管代码使用.它不包含托管代码本身.至少没有涉及非托管用例.

包含的内容是IDL描述的COM接口,但也包含DLL导出的一些函数.据我所知,IDL没有描述DLL的导出表.即使它能够这样做,在这个DLL的情况下它也不会(至少不是在所有情况下).

例如,您提到的UiaHostProviderFromHwnd()函数是一个简单的DLL导出.一些additional functions exported in this way are described in this MSDN blog post describing creating a .net interop interface for this library.在那篇文章中,它们被称为“平面API方法”.

使用PE Explorer我可以看到UIAutomationCore.dll库导出的81个这样的函数.

不幸的是,DLL导出表没有描述任何导出函数的参数或返回类型,只描述了名称.因此,除了类型库(从IDL生成)之外,您还需要找到并转换UIAutomationCore.h头文件以便与Delphi(即Pascal)一起使用.

然后,您应该拥有为所需的任何VCL控件实现UI自动化功能所需的一切.

大佬总结

以上是大佬教程为你收集整理的将UIAutomation提供程序添加到Delphi控件(特别是网格)全部内容,希望文章能够帮你解决将UIAutomation提供程序添加到Delphi控件(特别是网格)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
猜你在找的Delphi相关文章