【问题标题】:Simulate mouse in one window - C#在一个窗口中模拟鼠标 - C#
【发布时间】:2012-05-25 03:09:58
【问题描述】:

我知道这是可能的,因为我已经看到一些类似于我正在开发的应用程序使用它,但我对如何实现它一无所知。基本上,我需要在自己的应用程序表单中创建一个鼠标。即使表单被最小化,它也应该能够点击表单上的东西。

到目前为止,我的研究只发现了数百人要求使用 mouse_event 使用 Windows API 模拟鼠标事件。这不是我需要的,因为它只会点击屏幕而不是潜在的隐藏表单。

希望有人可以在这里为我指明正确的方向。

【问题讨论】:

  • 你想在这里实现什么?如果它是你自己的应用程序,并且用户没有控制这个“鼠标”,那你为什么需要它?您可以只调用您的 buttonClick 方法等。
  • 因为没有需要按下的按钮。有一个游戏将嵌入到表单中的静态位置,以便鼠标可以映射到需要单击以执行某些操作的位置。有时我想知道为什么人们总是问我正在开发什么并说“你为什么要这样做?”。
  • 因为在回答问题时上下文很有帮助。通常有更好的做事方式。
  • 经常有人问“你为什么要这样做?”因为您向对方描述的内容听起来很不寻常,如果我们能获得更大的图景,我们或许能够提供更好的方式来做您想做的事情。
  • 仍在等待有关您要完成的工作的答案...您的建议行不通。隐藏的窗口不接收鼠标事件。您需要提出其他建议,在我们知道您要做什么之前,我们无法提出任何建议。

标签: c# mouse simulation


【解决方案1】:

如果你真的强调“鼠标模拟”。 Autoit 是一个不错的选择。 - 一种免费软件,类似于 BASIC 的脚本语言,旨在自动化 Windows GUI 和通用脚本
语法简洁易学。免费的 autoit 编辑器可以生成 exe,您可以在您的应用程序中执行它。

示例1:模拟点击特定坐标:

MouseClick ( "button" [, x, y [, clicks [, speed]]] )

http://www.autoitscript.com/autoit3/docs/functions/MouseClick.htm

示例 2:模拟点击按钮

ControlClick ("My Window", "", "[CLASS:Button; TEXT:Finish; INSTANCE:2]")

http://www.autoitscript.com/autoit3/docs/functions/ControlClick.htm

如果你真的想在你的应用程序中模拟鼠标,我认为没有任何解决方法最终不会通过 WinAPI 发送鼠标事件。

【讨论】:

  • 不,这不是我想要的。我需要它来点击一个隐藏的窗口。无论如何,我使用 AutoHotkey 来处理这类事情。
【解决方案2】:

SendMessage 和 PostMessage 应该适用于隐藏表单,将它们与 WM_MOUSEXXXX 代码一起使用并在 wp 或 lp 参数中提供鼠标位置,我忘记了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多