まず、キーボード入力をバックグラウンド アプリケーション (フォーカスがないか、ユーザーに表示されないウィンドウ) に送信しようとしています。
winHandle と定数が正しいことを確認しました。問題は、バックグラウンド アプリケーションがメッセージを取得していないように見えることです。ただし、PostMessage() 行にブレークポイントを設定し、そこに到達したときに F10 (ステップ オーバー) または F5 (続行) を押すと、キーストロークが魔法のように送信されます。 .
何を与える?関連コード:
[DllImport("User32.Dll", EntryPoint = "PostMessageA", SetLastError = true)]
public static extern bool PostMessage(IntPtr hWnd, uint msg, int wParam, int lParam);
PostMessage(winHandle, (uint)WM_KEYDOWN, 66, 0);
Win7 64 と MS Visual studio 2008 pro、コンソール アプリケーションを使用。それが役立つ場合、上記のコードはスレッド上にあります。