情報湧き出る泉サイト:ウェルマガ

Well Magazine

C# プログラミング 作業効率化

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

更新日:

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

 

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

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

 

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

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

下記、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("指定の文字列")

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

 

まとめ

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

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

 

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

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

-C#, プログラミング, 作業効率化
-,

Copyright© Well Magazine , 2019 All Rights Reserved Powered by STINGER.