另一个关于 Win32 Vs UI 自动化的文章

Posted

技术标签:

【中文标题】另一个关于 Win32 Vs UI 自动化的文章【英文标题】:Another one about Win32 Vs UI Automation 【发布时间】:2011-10-09 22:53:58 【问题描述】:

我正在构建一个(我还没有决定的 Web/WinForms 应用程序)并且我有一个正在运行的简单 WinForms 应用程序,我无法通过我的新应用程序访问它,我只想读取一些值和也许编辑一些值(标签、按钮、一些琐碎的东西)。所以我按照this question 中的建议使用了 Spy++。

因此,我能够通过这个出色的工具查看需要读取/编辑的值。并且我能够编辑一些值(如隐藏、取消选中、禁用某些标签和按钮上的等)并且它们反映在应用程序上。

所以我想进入下一步,我被告知我有两个选择。无论是 Win32 还是 UI 自动化。我对他们俩都一无所知,所以一点指导会很棒。

关于这个问题,我还有 3 个问题:

    哪种方法更适合用于 WinForms,为什么?

    这两个选项中的任何一个都可以通过 WebApplication 使用,还是两个选项都需要在 WinForms 应用程序中实现?

    这些选项在编辑值时是否有限制?

【问题讨论】:

【参考方案1】:

(如果你还在搜索..)

这取决于你更熟悉什么。另外,一般来说,我认为 UI 自动化稍微容易一些,因为对于 Wind32SDK,您需要使用大量的 pinvoke 和类似的东西,这对于纯 .net 的人来说可能不容易。

对于 Win32,http://www.pinvoke.net/default.aspx/ 确实是最好的起点,它为您提供所有签名和一些示例代码。

对于 UI 自动化,还有很多地方可以从大量示例开始。其中之一是http://blogs.msdn.com/b/winuiautomation/。

另请注意,它们在功能和可用性方面没有可比性。如前所述,UI 自动化更自然,Win32 还允许您访问许多您无法通过自动化实现的值。我认为 UI 自动化主要是只读的。

在外部应用程序中启用/禁用按钮很有趣。当发现它经常起作用时,我想在一些受保护的商业产品上使用它(只是禁用“专业”按钮“)只是为了检查是否有额外的保护。:) 意思是如果你想要要在您的应用中拥有这样的功能,请知道用户始终可以使隐藏的元素可见或启用禁用的元素。

【讨论】:

以上是关于另一个关于 Win32 Vs UI 自动化的文章的主要内容,如果未能解决你的问题,请参考以下文章

如何自动化 UI 键盘输入? pywin32 PostMessage vs Powershell SendKeys

我安装的VS2008怎么win32控制台应用程序生成时窗口总是自动运行一遍就自动关闭

Python win32ui.error:CreateCompatibleDC 失败

深入研究 Win32 结构化异常处理(好多相关文章)

opencv 2.4.9+pcl 1.6+vs2010+win7 32开发环境配置

vs2008 Win32 应用程序向导的“下一步”变灰色