我需要使用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);
}
我希望窗口能够响应我的键。
答案 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
的程序,它会起作用,否则,不会。