2012-05-08 7 views
1

IEウィンドウには複数のタブがあります。 P/Invokeを使用して、タイトルが一致するタブを選択します。私はすでにすべてのタブを通過し、そのようなタブが存在するかどうかをチェックするコードを持っています。P/Invokeを使用してIEでタブを選択する

リファレンスP/Inoke:
多分焦点を当てた窓作品としてタブを設定 http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx

while ((tabNum++ <= 15) && 
       (curChild = FindWindowEx(parentHwnd, curChild, "TabWindowClass", IntPtr.Zero)) != IntPtr.Zero) 
     { 
      String sb = GetWindowTitle(curChild); 

      if (sb.Contains(expectedTitleString)) 
      { 
       //TODO : I want to select this tab here. 
       foundTab = true; 
       break; 
      } 
      if (is_ie8) 
      { 
       parentHwnd = FindWindowEx(hWnd, parentHwnd, "Frame Tab", IntPtr.Zero); 
       curChild = IntPtr.Zero; 
      } 
     } 
+0

あなたの質問は何ですか?おそらくあなたは私たちがあなたのためにこの仕事をしてくれることを望んでいるでしょう - そうであれば、少なくともあなたが試したことを知らせることができますか?(http://mattgemmell.com/2008/12/08/what-have-you試してみた/)とそれがうまくいかないこと。 – Justin

+1

IE9またはIE10では動作しません。このようなコードはサポートできません。 –

+0

@Justin:私はCTRL-TをIEウィンドウに送信しようとしましたが、動作しません。上記のコードを書きましたが、誰がこのタブを選択するのかわかりません。 – karephul

答えて

0

[DllImport("user32.dll")] 
[return: MarshalAs(UnmanagedType.Bool)] 
static extern bool SetForegroundWindow(IntPtr hWnd); 
+0

IEウィンドウ(少なくともIE8まで)は、各コントロールが独自のハンドルを持っているので、多くのハンドルがあります。だから、これはうまくいきません。 – karephul

関連する問題