0

私は基本的にタブを変更するためにIE9にSendKeyを試しています。タブが3つあるので、Ctrl + 1、Ctrl + 2、Ctrl + 3、およびCtrl+Tキーを送信して新しいタブを開く必要があります。

インポートdllと定数を追加することから始めます

[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg,
 IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
public static extern IntPtr PostMessage(IntPtr hWnd, uint Msg,
 IntPtr wParam, IntPtr lParam);
const int WM_KEYDOWN = 0x100;
const int WM_KEYUP = 0x101;

新しいプロセスを開くことで、InternetExplorerのインスタンスを取得します。

Process p = Process.Start("iexplorer.exe");

プロセスハンドルを使用して、IE9インスタンスにメッセージを送信します

IntPtr handle = p.MainWindowHandle; //p.Handle (doesn't work either)
//Change to Tab2 using PostMessage

PostMessage(handle, WM_KEYDOWN, ((IntPtr)Keys.LControlKey), (IntPtr)0);
PostMessage(handle, WM_KEYDOWN, ((IntPtr)Keys.D2), (IntPtr)0);
PostMessage(handle, WM_KEYUP, ((IntPtr)Keys.D2), (IntPtr)0);
PostMessage(handle, WM_KEYUP, ((IntPtr)Keys.LControlKey), (IntPtr)0);

応答なし。また、SendMessageを使用してみましたが無駄になりました。

私は明らかに間違ったことをしていますか?

4

1 に答える 1

0

どうですかSendKeys("^1");

ここに見られるように

于 2012-04-23T21:17:57.670 に答える