tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルwebbrowser セキュリティ保護のため ボタン
記事No16193
投稿日: 2015/10/21(Wed) 14:43
投稿者でふぁいあんと
お世話になります。いろいろ検索しているのですが
どうしてもできないのでまた質問させていただきます
[教えてくん]で申し訳ないです。

VB6というかVBAです
access2013で、webbrowserを貼り付けてとあるwebページのcsvファイルを
ダウンロードしようとしています。
vbaでダウンロードのボタンを押すところまではできています。

すると、webbrowserに
「セキュリティ保護のため、このサイトからコンピューターにファイルをダウンロードされないよう、
webブラウザーでブロックされています。オプションを表示する,,,」
のポップアップを表示します。

これをどうやって押したらいいか悩んでいます。
(1)webbrowser側にこのポップアップを回避するオプションがあるのか
(2)外部プログラムで制御できるのか

(1)があれば一番楽なのですが、現在わからないので
(2)の方法を考えています。
このポップアップウインドウをつかむところまではできています
FindWindow API、GetWindow API を使って
ParentWnd = FindWindow(vbNullString, "Accessのウインドウ")
MiddleWnd = GetWindow(ParentWnd, 5) '下へ
'これを繰り返し
'最終的にMiddleWndに[セキュリティ保護]のウィンドウハンドルを取得
MiddleWnd = GetWindow(MiddleWnd, 5) '下へ

'クリックする
lngRet = SendMessage(MiddleWnd, WM_LBUTTONDOWN, 0, 0)
lngRet = SendMessage(MiddleWnd, WM_LBUTTONUP, 0, 0)

そうすると実際のウィンドウでは、クリックした状態の反転画面になるのですが
次のポップアップ
---
ファイルのダウンロード
危険性の説明
デスクトップを開く
通知バーのヘルプ
デスクトップを開く
---を表示してくれないのでどうしたものかと
実際のウィンドウでも[セキュリティ保護]の画面をクリックすると
ファイルのダウンロードポップアップを開きますが
画面を抜けると消えてしまうので
このような方法ではだめなのかなと思っています

今回のページとはまったく関係ないページですが
ダウンロードリンクを押したときに
画面下部に[****から***.csvを開くか、または保存しますか]ポップアップを表示する
ことがありますが、これは、GetWindowてボタンを取得して押すことが可能です。

[ツリー表示へ]
タイトルRe: webbrowser セキュリティ保護のため ボタン
記事No16194
投稿日: 2015/10/21(Wed) 15:10
投稿者でふぁいあんと
情報追加です。
呼び出し側をaccessから、VB6に変更して作成したところ
「セキュリティ保護のため、このサイトからコンピューターにファイルをダウンロードされないよう、webブラウザーでブロックされています。オプションを表示する,,,」
のポップアップは表示されず
「ファイルのダウンロード - セキュリティの警告」になり
これはButtonのハンドルを捕まえて押すことができました
vbaの設定の問題でしょうか

[ツリー表示へ]
タイトルRe: webbrowser セキュリティ保護のため ボタン
記事No16195
投稿日: 2015/10/21(Wed) 17:44
投稿者魔界の仮面弁士
> 「セキュリティ保護のため、このサイトからコンピューターにファイルをダウンロードされないよう、
> webブラウザーでブロックされています。オプションを表示する,,,」

これかな。エントリーを見ると、MSACCESS.EXE や EXCEL.EXE が並んでいました。
https://technet.microsoft.com/ja-jp/library/cc748964.aspx

[ツリー表示へ]
タイトルRe^2: webbrowser セキュリティ保護のため ボタン
記事No16196
投稿日: 2015/10/22(Thu) 13:49
投稿者でふぁいあんと
魔界の仮面弁士様 ご回答ありがとうございます。
頂いた情報ページを拝見しましたが

> これかな。エントリーを見ると、MSACCESS.EXE や EXCEL.EXE が並んでいました。
> https://technet.microsoft.com/ja-jp/library/cc748964.aspx
エントリーというのはどこにでしょうか。
また
URLACTION_AUTOMATIC_DOWNLOAD_UI から
CoInternetSetFeatureEnabled あたりが関係あるのかなと検索してみましたが
もう少しヒントをいただけないでしょうか。

[ツリー表示へ]
タイトルRe^3: webbrowser セキュリティ保護のため ボタン
記事No16197
投稿日: 2015/10/22(Thu) 15:59
投稿者魔界の仮面弁士
> > これかな。エントリーを見ると、MSACCESS.EXE や EXCEL.EXE が並んでいました。
> > https://technet.microsoft.com/ja-jp/library/cc748964.aspx
> エントリーというのはどこにでしょうか。

自PC のレジストリを見ると、FEATURE_RESTRICT_FILEDOWNLOAD キーの下に、
MSACCESS.EXE という DWORD値 0x00000001 が登録されていた、ということです。


> もう少しヒントをいただけないでしょうか。

上記の登録が無ければ、VB6 と同じように動作するかも知れませんし、
登録したままにするのであれば、CoInternetSetFeatureEnabled API を
呼ぶ必要があるのだと思いますが、当方では未検証なので保証はできません。

技術的なところについては、英語版 MSDN の "URL Acition Flags" や
"INTERNETFEATURELIST" の項を参照してみて下さい。
(VBA 向けの具体的なサンプルがあるかどうかは把握していません)


とりあえず、URLACTION_AUTOMATIC_DOWNLOAD_UI ( = &H2200 ) の例では
無いですが、以下のスレッドが足掛かりになるかもしれません。
VBA ではなく VB.NET のコードですけれども…。
http://dobon.net/vb/bbs/log3-46/27560.html

[ツリー表示へ]
タイトルRe^4: webbrowser セキュリティ保護のため ボタン
記事No16201
投稿日: 2015/10/28(Wed) 17:59
投稿者でふぁいあんと
魔界の仮面弁士様、お返事ありがとうございます
いろいろやってみましたが今回は手に負えない感じですね。(涙)

vb6からはメッセージが出ないようなので、
ダウンロード処理をまるまるvb6のexeにして
access側からは、wshshell.runで呼ぶことにしました。

[ツリー表示へ]