0

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);
4

1 に答える 1

0

代わりにkeybd_event API 関数を試してください。

于 2013-01-03T16:27:56.677 に答える