【问题标题】:How to override other windows application's elements? [closed]如何编辑 Windows 应用程序的元素,例如文本框 [关闭]
【发布时间】:2015-02-08 20:17:00
【问题描述】:

你能指出我正确的方向吗?

我想以编程方式编辑其他应用程序文本框或单击。例如,在网站中,我可以编辑元素并调用按钮点击。

我不知道该怎么做,但是我可以移动鼠标并使用键盘运行时是否可以编辑其他应用程序的文本框?

我有 C++、VB.NET 和 C# 知识 - 有什么建议或示例代码吗?

谢谢。

【问题讨论】:

    标签: c# c++ vb.net windows


    【解决方案1】:

    没有简单的方法可以做到这一点,但这是可能的。您将深入了解 Win32 Api 以获得所需的内容。这将需要很多代码,这里的示例太多了。

    您需要先找到您想要的窗口。这可以通过FindWindowEx 完成。拥有窗口后,您可以使用EnumChildWindows 枚举子控件。

    当您最终获得所需控件的句柄时,您可以连接到 Windows 消息子系统并使用 SendMessage 函数发送 WM_SETTEXT 消息。有一个包装函数可用:SetWindowText,但文档明确指出它不适用于其他应用程序的窗口。

    准备好在 Win Api 中进行大量挖掘。您可能会在较新的 Windows 操作系统中遇到有关安全性的问题。当你让它运行时,功能将很大程度上取决于操作系统、UAC 设置等。

    我记得 15 年前在 Windows 98 中做过一次,即使在那时它还是有问题的!祝你好运!

    【讨论】:

    • 实际上有一种简单的方法可以使用系统自动化库 UI Automation 来实现这一目标
    • @DavidHeffernan 我一直认为这仅适用于 WPF 应用程序?你可以将它用于任何应用程序,即使是用某种未知语言编写的?
    • 是的。只要该应用程序支持自动化。有些没有。很多人都这样做。
    • 谢谢你们俩
    • 如果您喜欢我的回答,您可以始终将其作为答案
    猜你喜欢
    • 2014-11-30
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多