C# (IE から) でファイル ダウンロード ダイアログを処理しようとしています。
私たちがやりたいことは、メッセージをウィンドウに送信することによって (ホーム、CTRL-A、バックスペース)、ダイアログのテキスト ボックスをクリアすることです。
すべてではなく一部のコードをここに貼り付けましたが、CTRL キーが起動されていないようです (実際のテキストが強調表示されていません)。
// HOME DOWN
NativeMethods.SendMessage(new HandleRef(null, _hwnd), NativeMethods.WM_KEYDOWN, new IntPtr(0x24), IntPtr.Zero);
Thread.Sleep(1000);
// HOME UP
NativeMethods.SendMessage(new HandleRef(null, _hwnd), NativeMethods.WM_KEYUP, new IntPtr(0x24), IntPtr.Zero);
Thread.Sleep(1000);
// CTRL DOWN
NativeMethods.SendMessage(new HandleRef(null, _hwnd), NativeMethods.WM_KEYDOWN, new IntPtr(0x11), IntPtr.Zero);
Thread.Sleep(1000);
// END DOWN
NativeMethods.SendMessage(new HandleRef(null, _hwnd), NativeMethods.WM_KEYDOWN, new IntPtr(0x41), IntPtr.Zero);
Thread.Sleep(1000);
// END UP
NativeMethods.SendMessage(new HandleRef(null, _hwnd), NativeMethods.WM_KEYUP, new IntPtr(0x41), IntPtr.Zero);
Thread.Sleep(1000);
// CTRL UP
NativeMethods.SendMessage(new HandleRef(null, _hwnd), NativeMethods.WM_KEYUP, new IntPtr(0x11), IntPtr.Zero);
Thread.Sleep(5);
SendMessage 関数を WM_KEYUP および WM_KEYDOWN メッセージと組み合わせて使用する場合、何か不足しているものはありますか?
SendMessage 関数は次のように宣言されます。
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern IntPtr SendMessage(HandleRef hWnd, uint Msg, IntPtr wParam, IntPtr lParam);