DOBON.NETプログラミング道掲示板

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■33513 / inTopicNo.1)  VS2015,C#・・・別アプリ起動IEの表示ページのURL取得は?
  
□投稿者/ 霧小次郎 一般人(1回)-(2016/11/17(Thu) 08:44:28)
  • アイコン環境/言語:[OS : その他 / 言語 : C# / .NET Framework : その他] 
    分類:[.NET] 

    【解決したい問題】

    Win10、VS2015communityで開発している簡単なアプリですが、「別のアプリで既に起動させているIEの表示しているページのURL」を取得する方法が分からず困っています。エクセルVBAやVisualBasicでのやり方がネットで幾つかあるようですが、VS2015、C#では具体的にusingに何を含めればよいのか、どのようなコーディングにすれば良いのかわかりません。どなたかご教授いただけたらと思います。

    【解決するために何をしたか】

    ネットでいろいろ調べたのですが、よくわかりませんでした。
マルチポストを報告
違反を報告
引用返信 削除キー/
■33519 / inTopicNo.2)  Re[1]: VS2015,C#・・・別アプリ起動IEの表示ページのURL取得は?
□投稿者/ 魔界の仮面弁士 大御所(1054回)-(2016/11/18(Fri) 11:37:27)
  • アイコンNo33513に返信(霧小次郎さんの記事)
    > 「別のアプリで既に起動させているIEの表示しているページのURL」を取得する方法

    こんな感じで如何でしょう。


    using System.Collections;
    using System.Runtime.InteropServices;
    public class Sample
    {
     static void Main()
     {
      Guid CLSID_ShellWindows = new Guid("{9BA05972-F6A8-11CF-A442-00A0C90A8F39}");
      dynamic shellWindows = Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_ShellWindows));
      var oEnum = (IEnumerator)shellWindows.GetEnumerator();
      while (oEnum.MoveNext())
      {
       dynamic oIE = oEnum.Current;
       Console.WriteLine($"HWND=0x{oIE.HWND:X8}");
       Console.WriteLine(oIE.LocationURL);
       Console.WriteLine($"({oIE.LocationName})");
       Release(ref oIE);
      }
      Release(ref oEnum);
      Release(ref shellWindows);
     }

     static void Release<T>(ref T o) where T : class
     {
      if(o != null && Marshal.IsComObject(o))
      {
       Marshal.ReleaseComObject(o);
      }
      o = null;
     }
    }
違反を報告
引用返信 削除キー/
■33528 / inTopicNo.3)  Re[2]: VS2015,C#・・・別アプリ起動IEの表示ページのURL取得は?
□投稿者/ 霧小次郎 一般人(2回)-(2016/11/19(Sat) 08:08:05)
  • アイコン
    >   var oEnum = (IEnumerator)shellWindows.GetEnumerator();
    >   while (oEnum.MoveNext())
    >   {
    >    dynamic oIE = oEnum.Current;

    魔界の仮面弁士さん、ご教授ありがとうございます。COMやGUIDの何たるかも知りませんでしたので、良い勉強になり、ご教授いただいたコードの雰囲気も少し理解が進みました。実際に、そっくりをVS2015で実行したところ、URLがgetできました。ただ、複数のタブを開いていたり、タブの横順番を入れ替えたりしていると、一部分のタブのURLしか表示されないようです。引用させていただいたコードの意味がいまいち理解できていないのですが、この周辺に関係があるのでしょうか?逆に、複数のタブが開かれているとき、activeなタブのURLだけをgetするにはどのようなコーディング方法があるのでしょうか? よろしくお願いいたします。
違反を報告
引用返信 削除キー/
■33534 / inTopicNo.4)  Re[3]: VS2015,C#・・・別アプリ起動IEの表示ページのURL取得は?
□投稿者/ 霧小次郎 一般人(3回)-(2016/12/10(Sat) 19:04:37)
  • アイコンNo33528に返信

    これ以上のご教授はなさそうなので、別の方策を探そうと考えます。失礼致しました。
違反を報告
引用返信 削除キー/
■33535 / inTopicNo.5)  【報告】この投稿はマルチポストです
□投稿者/ (報告) 大御所(261回)-(2016/12/12(Mon) 22:04:12)
  • アイコンこの投稿はマルチポストです。もし元記事の投稿者にマルチポストの心当たりがない場合は、すぐに返信でお知らせください。

    ●マルチポストされている場所
    https://social.msdn.microsoft.com/Forums/ja-JP/1dce3e4e-0886-4617-a357-20166c15bd8d/visualstudio2013-c-ie11url?forum=csharpgeneralja

    ----------
    この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのルールについて」をお読みください。

    ●書き込みのルールについて
    http://dobon.net/vb/bbs/index.html
違反を報告
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク ファイル一覧 検索 過去ログ

- Child Tree -