特定のフォームにメッセージを送信する
メッセージを送信したい相手のウインドウハンドルがわからない場合、FindWindowを用いれば特定の相手のウインドウハンドルを取得できる。
この取得したウインドウハンドルを指定してSendMessageを呼ぶことで、特定のウインドウにメッセージを送信する。
■送信側
■受信側
[DllImport("user32.dll", SetLastError = true)]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string className, string windowName);
// 送信したい相手のTextに指定してある値を指定してウインドウハンドルを取得
IntPtr hWnd = FindWindow(null, "Test");
// 取得したウインドウにメッセージを送信
SendMessage(hWnd, 0xAAAA, 0, 0);
protected override void WndProc(ref Message m)
{
if (m.Msg == 0xAAAA)
{
// メッセージ受信時の処理
}
base.WndProc(ref m);
}