【问题标题】:delphi send key into an invisible process [duplicate]delphi将密钥发送到一个不可见的进程中[重复]
【发布时间】:2011-08-14 16:57:11
【问题描述】:

目标是将 Q 按键发送到一个不可见的进程(没有焦点):我知道进程 ID。

我知道如何将密钥发送到可见的应用程序。可以对隐藏的应用程序执行此操作吗?

【问题讨论】:

  • @Andreas:“有点”是轻描淡写... :-)
  • 如果您有进程 ID,您可以将击键发送到任何进程。该过程是否会对其进行处理,取决于该过程。虽然您可能必须首先使用进程 ID 获取它的句柄。
  • @Marjan 如何将击键发送到没有窗口的进程?
  • @Rudy:问题可能,答案更多。

标签: delphi


【解决方案1】:

我假设,您的不可见进程有一个窗口,它恰好是不可见的(例如,它可能通过使用 SW_HIDE als 参数调用 ShowWindow 被隐藏)并且您想使用 SendMessage/ 发送击键发布消息。

我建议尝试以下方法:

  1. 使用EnumWindows枚举所有主窗口。
  2. 对于每个窗口,使用GetWindowThreadProcessId 检查它是否属于您的进程。
  3. 找到进程的主窗口后,立即使用SendMessagePostMessage 发送您的击键。

隐藏的窗口应该能够像可见窗口一样接收按键,并且大多数应用程序在做出反应之前可能不会检查它们是否真的可见,因此它很有可能起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多