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

VBSでIEを操作したい

分類:[その他]

InternetExplorer.Applicationを使って、IEで任意のページを表示させることができました。

表示したページを、IEの「ファイル-->名前をつけて保存-->Webページ,HTMLのみ(*.htm;*.html)、日本語(シフトJIS)」と同じ状態で保存したいのですが、どうしたらよいのでしょうか?

innerHTMLを使うと、手動で保存した場合とファイルの中が異なります。
また、Document.all.tags("HTML")(0)を使えばよいのでしょうか?

ご存知の方アドバイスお願いいたします。


#なお、任煮のページを上記のような条件で保存できるのであれば、VBSでなくてもかまいません。
2011/04/09(Sat) 22:42:43 編集(投稿者)

■No28426に返信(きくさんの記事)
innerHTMLプロパティは当該タグ内のHTMLを参照します。当該タグを含める場合にはo
uterHTMLプロパティを使用するとよいかと思います。

IE8の環境で試してみましたが、IE8で保存する場合には以下のタグが追加されたり、
変更されたりする模様で、Document.all.tags("HTML")(0)で、IE8で保存したときと
同一の出力を得ることはできませんでした。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<META name=GENERATOR content="MSHTML 8.00.7601.17537">
<META content="text/html; charset=shift_jis" http-equiv=Content-Type>

以下のコードで試してみました。
document.documentElementはDocument.all.tags("HTML")(0)と同じです。

dim ie : set ie = createobject("internetexplorer.application")
call ie.navigate("http://www.google.co.jp/")
const readystate_complete = 4
do
  if not ie.busy then
    if (ie.readystate = readystate_complete) then
      exit do
    end if
  end if
  call wscript.sleep(100)
loop
call wscript.stdout.writeline(ie.document.documentElement.outerHTML)

IE8で保存したときと同一の出力を得るにはSaveAsコマンドを実行する必要があるの
ではないかと思います。しかし、SaveAsコマンドを実行するやり方だと保存ダイアロ
グを回避することができませんでした。

const OLECMDID_SAVEAS = 4
const OLECMDEXECOPT_PROMPTUSER = 1
call ie.execwb(OLECMDID_SAVEAS , OLECMDEXECOPT_PROMPTUSER)

うーむ、全く別のやり方を考える必要があるのですかね。
もりおさんレスありがとうございます

> IE8で保存したときと同一の出力を得るにはSaveAsコマンドを実行する必要があるの
> ではないかと思います。しかし、SaveAsコマンドを実行するやり方だと保存ダイアロ
> グを回避することができませんでした。

ダイアログが出ても、ファイルの種類とエンコードのデフォルトだけでも設定できれば、ずいぶんありがたいのですが・・・
もうひとつ追加で質問です。(別スレにしたほうがいいのかな?)

例えば、ブラウザで表示されているURL部分をデスクトップにD&Dすると、表示されているHPのショートカットが作成されますが、
自作のVBSのアイコンにD&Dをした場合、リンク先を取得するというのはどうしたらよいのでしょうか?

現状ではファイルをD&Dした場合に、ファイル名を取得することはできています。

ご存知の方アドバイスお願いいたします。
■No28435に返信(きくさんの記事)

ブラウザのURLバーからvbsファイルへ直接ドラッグアンドドロップすることはできな
いですよね。インターネットショートカットのURLファイルをvbsファイルにドラッグ
アンドドロップしてリンク先を取得するということでよいですか。
ファイル名を取得できたのであれば、ファイルのテキストを読み込んでURLの部分を
切り出せばよいと思います。

URLファイルのテキストはこんな感じですので正規表現あたりで切り出すとよいので
はありますまいか。
[InternetShortcut]
URL=http://www.google.co.jp/
もりおさん、こんばんは

> ブラウザのURLバーからvbsファイルへ直接ドラッグアンドドロップすることは
> できないですよね。
やっぱり直接はできないのですか。

> URLファイルのテキストはこんな感じですので正規表現あたりで切り出すとよいので
> はありますまいか。
> [InternetShortcut]
> URL=http://www.google.co.jp/
ありがとうございました。



あとは、当初の問題のIEと同じ形式で保存する方法ですね。
もうひとがんばり!

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