2010-11-01 92 views
0

嘿。 我不知道这是否可能,但值得一试。假设有一款不使用鼠标的第三方赛车游戏。有没有办法让我创建一个Windows窗体应用程序,该应用程序侦听鼠标点击并将相应的按键传送到游戏/活动窗口(例如,左键点击会发送'向上箭头'键来加速右键点击会通过发送'向下箭头'键)。我查看了SendKeys方法,但一旦游戏成为活动窗口,它就不起作用。有任何想法吗?谢谢发送密钥到活动窗口

回答

2

如果游戏使用DirectInput来读取密钥,那么SendKeys将无法工作,因为DI在驱动程序级别工作,并且SendKeys/SendInput在API级别工作,这对于游戏来说可能太“高”。你可以将Hook转换成DirectInput,并发送它的命令,但它不会成为一个单行版本,如果你是DirectX新手,你不会觉得它有趣。

+0

我不介意通过互操作水平低。但是,还有另一种方法可能比DirectInput的级别更低吗?即Windows是否有一个本地命令可以被访问发送给? – XSL 2010-11-02 01:12:59

+0

directX会比interop低。据我所知,它是访问硬件和其他任何设备的最简单的方法,而且你在设备驱动程序领域。如果我错了,我确定别人会提供足够快的答案。虽然游戏可能不会使用directX,但几乎所有游戏都可以。您还可以查看“SendMessage WM_CHAR”,这比任何DX解决方案更容易测试 – jasper 2010-11-02 01:44:06

1

我不知道它是否可行,如果可能,但直观上,我会检查是否有某种适用于C#的AutoIt库。

据我所知,AutoIt在向游戏发送按键事件时没有问题。 有两种将AutoIt整合到C#的方法存在于互联网上,但到目前为止,我还没有尝试过其中之一。

不过你可以给它一个镜头 http://www.lancelarsen.com/Blog/tabid/72/EntryId/48/AutoIt-C-Helper-Library.aspx