0
ゲームウィンドウでキーをシミュレートする必要があります。私は、キー「A」を送信しようとするが、それは動作しません:Windows 7 x64でPostMessageが動作しない
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("USER32.DLL")]
public static extern bool SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
private void button1_Click(object sender, EventArgs e)
{
IntPtr hWnd = FindWindow(null, "Game Name"); // it's work!
if (hWnd == IntPtr.Zero)
{
MessageBox.Show("Game is not running");
return;
}
SetForegroundWindow(hWnd); // it's work too and now I have active window of game
System.Threading.Thread.Sleep(3000);
const int WM_KEYDOWN = 0x0100;
PostMessage(hWnd, WM_KEYDOWN, (IntPtr)Keys.A, IntPtr.Zero); // don't work ;-(
}
エラーはありません。 Spy ++ではキーボードのログが空です。私はそれが他の類似のプログラムが問題なくこのゲームで動作するブロックcuzだとは思わない。 –
申し訳ありませんが、私の間違いです。管理者権限でVisual Studioを実行するのを忘れた –