アプリケーションにキーを送信しようとしています。ブレークポイントを使用してHandlewindow値をテストして、何をしているのかを理解しましたが、解決策が見つかりません。もう少し詳しく言うと、ちょっとしたゲームで、ゲーム内でチャットバーを起動するとそこに送信したいキーが書かれているのですが、プレイ中にコマンドを使用するために機能させたいと思っています。ゲームにはガードや保護機能がありません。
これが私のコードです:
[DllImport("user32.dll")]
static extern bool PostMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
const uint WM_KEYDOWN = 0x0100;
private void button1_Click(object sender, EventArgs e)
{
string pName = textBox1.Text;
//Get Processes
Process[] processes = Process.GetProcessesByName(pName);
//Main part
foreach (Process p in processes)
if (p.ProcessName == (string)pName)
{
PostMessage(p.MainWindowHandle, WM_KEYDOWN, (int)Keys.W, 0);
}
}
私が言ったように、1000000回正常に送信できますが、何も起こりません。最小化または非表示で動作する Windows アプリケーションにキーを送信する別の方法はありますか? 私のアプリにのみ送信する必要があります。