私は、クリップボードにテキストコンテンツを含めるキーストロークctrl-aとctrl-cを処理して送信するアプリケーションを作成しようとしています。
正しい API はPostMessage
「Sendmeesage」だと読みました。APIを使用すると、プログラム(メモ帳など)に書き込むことができます。しかし、キーストロークを送信できませんでした。
ここに私のコードがあります
public const uint WM_KEYDOWN = 0x0100;
public const uint WM_KEYUP = 0x0101;
const int CTRL = 0x11;
const int A_Key = 0x41;
const int C_Key = 0x43;
static void Main(string[] args)
{
IntPtr hWnd = FindWindow(null, "Microsoft Word ");
hWnd = FindWindowEx(hWnd, null, "Edit", null);
//PostMessage(hWnd, WM_GETTEXT, 0x11, 0);
Process[] processes = Process.GetProcessesByName("winword");
foreach (Process p in processes)
{
PostMessage((IntPtr)hWnd, WM_KEYDOWN, (IntPtr)CTRL, 1);
PostMessage((IntPtr)hWnd, WM_KEYDOWN, (IntPtr)A_Key, 1);
PostMessage((IntPtr)hWnd, WM_KEYUP, (IntPtr)A_Key, 1);
PostMessage((IntPtr)hWnd, WM_KEYUP, (IntPtr)CTRL, 1);
}
}
私は何を間違っていますか?