如何将密钥发送到无效的“ ePSXe”窗口?

时间:2019-06-15 19:08:25

标签: c#

我需要使用C#将密钥发送到非活动的ePSXe窗口。我使用Spy ++获取了窗口的句柄,但是当我使用此代码发送键“ x”时,却什么也没有。我该怎么办?

我尝试将“ Msg”的其他值设置为0x0100、0x0101和0x0102,但没有任何效果。我也尝试过“ SendMessage”,结果是一样的。

[DllImport("user32.dll")]
public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
private void Send_X(IntPtr p)
    {
        PostMessage(p, 0x0100, (IntPtr)Keys.X, IntPtr.Zero);
    }

我希望窗口能够响应我的键。

2 个答案:

答案 0 :(得分:0)

我认为无法发送到不活动的游戏应用程序,但是此解决方案对我有很大帮助,但我必须专注于ePSXe。 Sending keys to a DirectX Game

答案 1 :(得分:-1)

Process P = ...get process; 
IntPtr whandle= P.MainWindowHandle;
PostMessage(whandle, WM_KEYDOWN, (IntPtr)(Keys.X), IntPtr.Zero);

如果您有MainWindowHandle的程序,它会起作用,否则,不会。