C#

【SHDocVw】ブラウザの複数タブを取得する方法【C#】

この記事ではC#のSHDocVwでInternet Explorerを操作する際、複数のタブを操作する方法を記載しています。

最初のタブでリンクを押したら別のタブが開いちゃったんだけど、これどうやって別タブの方を操作するの?

って時にご利用ください。

キャリアアップ情報

18歳~29歳のキャリアアップしたい人限定!厳しい基準でブラック企業を徹底排除した就活サイト。

プログラミングスキルを上げつつ、もっと良い環境で働きたい人はこちらをクリック↓

無料で相談してみる

ブラウザで別のタブ使用する

あんまり長々しくコードを書くとどこが重要なのか分かりにくいので最低限のコードにします。

下記、id="sample"のテキストを取得する最低限のコードです。

Internet Explorerを新しく作って~

現在のドキュメントを取得して~

id="sample"内にある文字列を取得します。

って感じのコードです。

通常はこれだけで大体の事が出来ます。

しかし、「自動操作している時にリンクがあって、開いたはいいけど最初のタブしか操作出来ない!

って時にはこれ

SHDocVw.ShellWindows

Shellって単語は「骨組み」「外郭」って意味らしいので、

SHDocVwの窓(ウインドウ)内の(骨組み)全てを取得する

って意味だと思っています。

(間違えてたら指摘して頂けると助かります。)

これを使ったコードがこちら

shellWindowsで全てのタブを含むInternet Explorer内の情報を全て取得する。

foreachでタブの情報を1つ1つ渡して行き、id内の文字列を取得する。

左から順々に取得していくようなので、2番目のタブのみを操作したい時には

if(IE2.count == 2)

とか

IE2.LocationURL.Contains("指定の文字列")

なんかで分岐作ると良いと思う。

まとめ

今回の情報は私自身がブラウザ操作してる時にリンク開いちゃって、別タブとして操作したい!って状況に陥ったので調べた結果です。

情報探したんだけど別のタブの操作って記事自体ほぼ見つからなくて、英語の情報とかキーワード色々変えてみて見つけたんだけど、ちゃんとした解説した記事がなかったので今回作りました。

ブラウザの自動操作はネットショップ運営してると使用頻度高いので、ネットショップオーナーならば覚えておいて損はないんじゃないかな?

もっと良い方法とかあると教えて頂けると助かります(*´∀`)

 

  • この記事を書いた人
  • 最新記事

井川 裕輝

ネットショップ総合管理職3年の経験を経て独立、現在は法人代表。小規模低予算少人数でのネットショップ立ち上げ経験が最も多い。

-C#

© 2021 ネットショップ運営情報ブログ『WellMaga』