私は基本的にタブを変更するために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を使用してみましたが無駄になりました。
私は明らかに間違ったことをしていますか?