关于Win32 Vs UI Automation的另一个问题

时间:2011-10-09 22:53:58

标签: c# asp.net winforms ui-automation win32gui

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

所以,我能够通过这个伟大的工具看到我需要阅读/编辑的值。我能够编辑一些值(如某些标签和按钮上的隐藏,取消选中,禁用等),它们会反映在应用程序上。

所以我想进入下一步,我被告知我有两种选择。无论是Win32还是UI自动化。我对它们都没有任何线索,所以一点指导就会很棒。

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

  1. 最好用WinForms以及为什么?

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

  3. 这些选项中的任何一个都有编辑值的限制吗?

1 个答案:

答案 0 :(得分:0)

(如果你还在搜索..)

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

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

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

另请注意,它们的功率和可用性无法比较。如上所述,UI Automation更自然,Win32还允许您访问通过自动化无法访问的许多值。我认为UI Automation主要是只读的。

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