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

Microsoft Web Browserコントロールのセキュリティを制御する方法

環境/言語:[XP sp3/VB2005]
分類:[.NET]

以下のサンプルコードをVB2005で使いたいと思っているのですが、ダウンロードしたサンプルは、2003→2005に自動変換され、使用する事が出来ました。

しかし、このコードはWebbrowserやチェックボックスなども直接コードで作られており、ツールボックスからでは有りませんでした。

このコードをツールボックスからWebbrowserなどを貼り付け、使用したい場合はどこら辺を変更すればよいのでしょうか?


また呼び出されているCOMなども、どこら辺の変更が必要でしょうか?


どうかかアドバイスをよろしくお願い致します。








Microsoft Web Browserコントロールのセキュリティを制御する
http://codezine.jp/article/detail/246?p=1
以下に同じ質問内容を見つけました。

答えなしで解決となっていますが、やはりレベルの高い内容になるのでしょうか?

http://dobon.net/vb/bbs/log3-26/15845.html
2011/04/29(Fri) 08:46:41 編集(投稿者)

WebBrowser コントロール自体にその機能を提供するプロパティは存在しないと言うことでしょう。
少々苦労するやり方(COM のインターフェースを使うとか)を経て実現できるかどうかだと思われます。

以下は細かいところを読めていない&試していませんが、そういった情報を紹介しているページの一例です。(検索で見つけました)
http://jumbofoot.cocolog-nifty.com/yass_vbnet_tips/2006/09/webbrowser_1de3.html

# 解説はしかねます。
# あと、著作権がどうなるかわからないので、コピペでそのまま持ってかないようにしましょう。:-P
Azuleanさん、情報有り難うございます。

サンプル通り、画像の表示、非表示は制御できるのですが、javascriptの機能を停止させたかったので、以下の通りにしてみましたが停止されず、普通に表示されてしまいました。

javascriptによって、出来る場合と出来ない場合があるのでしょうか?


それとも私のやり方が間違っていますでしょうか?


Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl And Not DLCTL.DLIMAGES



Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl And Not DLCTL.NO_SCRIPTS
2011/04/30(Sat) 02:19:29 編集(投稿者)

■No28524に返信(ザナドゥさんの記事)
> それとも私のやり方が間違っていますでしょうか?

間違っています。
And とか Not とか、論理演算について学んでください。


A = 1111
B = 0001
A And Not B = 1111 And Not 0001 = 1111 And 1110 = 1110

B を反転したものと、A とで論理積を採ることで、A から B で指定したビットを無効にする。

これを踏まえた上で、以下の 2 つは何をやっていると思いますか?
DLIMAGES って何を意味していると思いますか?NO_SCRIPTS って何を意味していると思いますか?

> Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl And Not DLCTL.DLIMAGES

> Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl And Not DLCTL.NO_SCRIPTS


追記。

ある変数の特定のビットを 0 にしたい。
 → 0 にしたいビットだけ 0、その他のビットを 1 にした数値と論理積(AND)
ある変数の特定のビットを 1 にしたい。
 → 1 にしたいビットだけ 1、その他のビットを 0 にした数値と論理和(OR)
ある変数のビットの 0 or 1 を反転させたい。
 →NOT を経ればいい。

今回のようなフラグ、2 進数、論理演算というのは API を使うことがあれば見かけるものです。少し勉強してみてください。
■No28525に返信(Azuleanさんの記事)
> 2011/04/30(Sat) 02:19:29 編集(投稿者)
>
> ■No28524に返信(ザナドゥさんの記事)
>>それとも私のやり方が間違っていますでしょうか?
>
> 間違っています。
> And とか Not とか、論理演算について学んでください。
>


簡単なようで難しいですね。

もう少し時間を下さい。

勉強します。
こんばんは。
全然更新していないブログを見ていただき,ありがとうございます。

Azuleanさんのおっしゃることがすべてですが,解決しないようなので
具体的にお答えします。

スクリプトを実行しないとき
Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl Or DLCTL.NO_SCRIPTS

スクリプトを実行するとき
Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl And Not DLCTL.NO_SCRIPTS

でよいと思います。
ただ,私のコードはWebで調べたことをもとに自己流で組み立てたもので,
あまり信用できるものではないことをお断りしておきます。
特にエラー処理などは,まったく無視しているので気をつけてください。
■No28538に返信(YASさんの記事)

> スクリプトを実行しないとき
> Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl Or DLCTL.NO_SCRIPTS
>
> スクリプトを実行するとき
> Me.WebBrowerCtrl.DlControl = Me.WebBrowerCtrl.DlControl And Not DLCTL.NO_SCRIPTS
>


有り難うございます。

実はまだ理解出来ていなかったのですが...


御陰様で、思うように処理する事が出来ました。


解決とさせて頂きます。
解決済み!

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