我需要使用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);
}
我希望窗口能够响应我的钥匙。我只发送了F键“ F1,F2 ..”,但没有发送字母键。
SendMessage(p, 0x0100, (IntPtr)Keys.F4, IntPtr.Zero);
SendMessage(p, 0x0101, (IntPtr)Keys.F4, IntPtr.Zero);
我认为发送到不活动的游戏应用程序并不容易,但是该解决方案对我有很大帮助,但是我必须专注于ePSXe。Sending keys to a DirectX Game。
我仍在寻找可以发送到无效游戏窗口的解决方案。
Process P = ....get process;
IntPtr whandle= P.MainWindowHandle;
PostMessage(whandle, WM_KEYDOWN, (IntPtr)(Keys.X), IntPtr.Zero);
如果您具有该进程的MainWindowHandle,则可以,否则不可以。