C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■87135 / 5階層)  ウインドウを更新する方法
□投稿者/ 魔界の仮面弁士 (1642回)-(2018/04/14(Sat) 02:35:06)
No87128 (がむんだ さん) に返信
> Option Strict On のままにしたいのですが

その前に、「Option Strict Off にすれば動いたのかどうか」や
「提示したコードで目的を果たせるのか否か」をフィードバックしてくださいませ。

提示のコードでは問題が解決できないようであれば、
そのまま修正しても、あまり意味が無いわけで…。


> どのように修正すればよろしいでしょうか?
追加の参照設定を必要とする方法と、参照設定を追加せずに実装する方法とがあります。

とりあえず後者の場合は、 No35068 のようにすることで、Option Strict On のまま
9BA05972-F6A8-11CF-A442-00A0C90A8F39 のオブジェクトすなわち ShellWindows を列挙させられます。
https://msdn.microsoft.com/en-us/library/windows/desktop/bb773974.aspx

この場合はメソッドの呼び出しも CallByName に置き換えれば OK 。


参照設定する場合は、[Microsoft Internet Controls] を参照に加えたうえで、ループを
 For Each exp As SHDocVw.InternetExplorer In New SHDocVw.ShellWindows()
に変更する流れになります。Refresh2 メソッドの引数が ByRef Object の場合は
列挙型を Object 型変数に入れてから渡すように改修してください。


ただし、 No87103 にしても今回のコードにしても、
COM オブジェクトの解放処理を省いたものとなっています。
解放もきちんと行いたい場合には、ShellWindows を始めとした各種 COM オブジェクトを
ReleaseComObject するようにしたおいた方が良いでしょう。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=54129&KLOG=91
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[4]: ウインドウを更新する方法 /がむんだ 返信無し
 
上記関連ツリー

ウインドウを更新する方法 / がむんだ (18/04/11(Wed) 19:33) #87100
Re[1]: ウインドウを更新する方法 / 魔界の仮面弁士 (18/04/11(Wed) 22:12) #87103
  └ Re[2]: ウインドウを更新する方法 / がむんだ (18/04/13(Fri) 14:26) #87123
    └ Re[3]: ウインドウを更新する方法 / 魔界の仮面弁士 (18/04/13(Fri) 16:13) #87127
      └ Re[4]: ウインドウを更新する方法 / がむんだ (18/04/13(Fri) 16:51) #87128
        └ ウインドウを更新する方法 / 魔界の仮面弁士 (18/04/14(Sat) 02:35) #87135 ←Now

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信