|
魔界の仮面弁士さん、はじめまして。 高橋です。
早速のご返信ありがとうございます。
>>画像の表示設定は、DLCTL_DLIMAGES ですよね。 >>DLCTL_NO_DLACTIVEXCTLS や DLCTL_NO_RUNACTIVEXCTLS や DLCTL_NO_SCRIPTS は >>どのように設定されましたか? > > 気になったので、提示のサンプルを確認してみました。
お手数をおかけいたしました。m(_ _)m
サンプルは私には中身が複雑過ぎて、ほとんど理解できていなかったので、 そのまま利用していました。
こちらの設定でActiveXを実行しないようにしていたから、警告が出ていた だけなのですね。
> となっていますが、画像は禁止、ActiveX は許可というのであれば、 > BrowserOptions.Images … Off (画像をダウンロードしない) > BrowserOptions.DontRunActiveX … Off (ActiveX を実行する) > BrowserOptions.NoActiveXDownload … Off (ActiveX をダウンロードする) > とすべきかと思います。現状のコードはどのように設定されていますか?
目的としては画像の非表示だけですので、以下のように変更したところ、 希望の動作となりました。
> [ComVisible(true)] > public partial class Form1 : Form, IOleClientSite > { > BrowserOptions _options = BrowserOptions.NoClientPull > | BrowserOptions.NoJava > | BrowserOptions.NoActiveXDownload; > }
BrowserOptions.NoActiveXDownloadのオプションは付けたままでも 利用したいサイトでは問題なかったので、そのまま残しています。
ご紹介いただいたページを見ると他にもブラウザのいろいろな制御が できるのですね。 勉強になりました。
ちなみに、以下のご提案についても補足しておきます。
> 未検証ですが、ScriptErrorsSuppressed プロパティでは駄目でしょうか。
こちらは元々「true」に設定していたのですが、警告は出てしまってました。
> もしくは、ActiveX 側の Silent プロパティとか。
これはどのように設定するのでしょうか? サンプルで言うと以下の辺りでしょうか?
> IOleObject obj = (IOleObject)this.webBrowser1.ActiveXInstance; > obj.SetClientSite(this);
「ActiveX」「Silentプロパティ」等のキーワードで検索してみたのですが、 検索の仕方が悪いのか思うようなページは見つけられませんでした。
もしこれで対応できるのなら、オプションの「DontRunActiveX」をオンにして おいてもよさそうなので、教えていただけると嬉しいです。
当初の目的は達成できましたので、お手隙の時で構いません。
> > もしくは、ActiveXを利用しないで、画像を非表示にする方法があれば > > そちらでも構いません。 > ローカルプロキシを実装して、画像のダウンロードをブロックしてしまうとか。
なるほど、そういう方法もあるのですね! こちらは何となくイメージできそうです。
今回は魔界の仮面弁士さんのお陰で当初の希望通りに動作することができました。 ありがとうございました。
|