代码之家  ›  专栏  ›  技术社区  ›  Tom

如何将按键发送到DirectX应用程序?

  •  1
  • Tom  · 技术社区  · 15 年前

    我需要用任何编程语言(最好是Delphi 7/Delphi 10/C)编写一个程序,模拟在Windows XP或Windows 7中每10秒按一次 1 发送适用于我尝试过的所有其他应用程序的Windows消息对此特定应用程序无效,我怀疑这是因为它使用的是DirectX。是否可以在不覆盖 dx*.dll files的情况下完成此操作?怎么用?

    谢谢,
    汤姆

    编辑:我刚刚尝试使用sendinput(在Windows XP的Delphi 7中,代码来自 http://www.swissdelphicenter.ch/torry/showcode.php?id=220 )也不起作用帽子模仿压力 1 在Windows XP或Windows 7中,每隔10秒到给定进程一次。发送适用于我尝试过的所有其他应用程序的Windows消息对此特定应用程序无效,我怀疑这是因为它使用的是DirectX。这个可以不重写吗 DX*.DLL 文件夹?怎么用?

    谢谢您,
    汤姆

    编辑:我刚刚尝试使用sendinput(在WindowsXP的Delphi7中,代码来自 http://www.swissdelphicenter.ch/torry/showcode.php?id=220 )这也不管用

    3 回复  |  直到 14 年前
        1
  •  1
  •   feal87    15 年前

    如果应用程序不处理wm_char/etc windows消息(xinput/directinput),最好的办法是将一个dll注入应用程序,覆盖某些函数,使这些函数直接使用系统资源访问键盘/鼠标/游戏板。(使用directinput/xinput作为键盘的想法确实很糟糕:)

        2
  •  0
  •   Nathan Osman    15 年前

    应用程序可能正在使用DirectInput或Xinput。在这种情况下,您可以做的很少,因为DirectInput直接与键盘驱动程序一起工作。

        3
  •  0
  •   Tom    15 年前

    最后,我用了 IO.DLL 很遗憾,这在64位上不起作用,但我仍然很高兴我的目标中有90%使用32位。