【问题标题】:click on a button in another application from my C# application?从我的 C# 应用程序中单击另一个应用程序中的按钮?
【发布时间】:2011-06-21 10:30:30
【问题描述】:

我想从我的 C# 应用程序中单击另一个应用程序中的按钮,
而且我没有包含按钮的应用程序的源代码

让我们举个例子...我可以通过以编程方式单击其按钮来使用我的应用程序中的 Windows 计算器
我正在使用 c# 和 .NET
我想我必须使用 windows api 来做到这一点
有人知道吗???

【问题讨论】:

    标签: c# .net api


    【解决方案1】:

    是的,它并不太复杂。您可以使用 FindWindowEx 获取窗口句柄,然后遍历 windows 元素并使用 sendmessage 或 postmessage 发送 WM_Click 消息。

    这是一个代码项目项目,可以完全满足您的需求。

    Code project

    【讨论】:

    • 它仍应响应 WM_Click 等低级窗口消息。实际上,WPF 只是在开发中组织控件的另一种方式;它仍然构建在 Windows GUI 对象集合中。
    • 我已经尝试了上面链接中的代码,但它只能在 Windows XP 中工作,而不是 7 或 8。计算器中的按钮没有响应。知道如何解决这个问题吗?
    • 对于寻找 WM_Click 值为 0x00F5 的人
    • @KeithS:WPF 不使用本机 Windows 控件,而且从来没有。您可能会将其与 WIndows Forms 混淆。对于 WPF,确实没有任何 HWNDs 可以向其发送消息。这也是一件好事,因为它迫使开发人员重新考虑,并选择要使用的工具:UI Automation。哦,-1,仅是为了草率。 Windows API 中没有WM_Click 消息。
    • 我也试过这段代码,但它不适用于 Windows 10 中的计算器
    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 2015-04-19
    • 2014-02-10
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-02
    • 2011-03-21
    相关资源
    最近更新 更多