2006/12/23
[WSH]クリップボード内URLのファイルをダウンロード2
http://blogs.wankuma.com/mutaguchi/archive/2006/07/07/31826.aspx
の続きです。クリップボード中に複数URLが複数行に記述されている場合、それらをまとめてダウンロードするように改良しました。
Const adTypeBinary = 1
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2
sDLFolder = "C:\download"
Set Ie = WScript.CreateObject("InternetExplorer.Application")
'Ie.Visible = True
Ie.Navigate "about:blank"
Do While Ie.Busy Or Ie.ReadyState<>4
Wscript.Sleep 10
Loop
'クリップボードの文字列を取得。
sClipBoard = Ie.Document.parentWindow.clipboardData.getData("text")
Ie.Quit
If InStr(sClipBoard,vbCrLf) Then
aURLs = Split(sClipBoard,vbCrLf)
Else
aURLs = Array(sClipBoard)
End If
For Each sURL In aURLs
If Left(sURL,5)="http:" Then
sDest = sDLFolder & "\" & Mid(sURL,InStrRev(sURL,"/")+1)
Set oHTTP = WScript.CreateObject("Msxml2.XMLHTTP")
oHTTP.Open "GET", sURL, False
oHTTP.Send
Set Stream = WScript.CreateObject("Adodb.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.Write oHTTP.responseBody
Stream.Savetofile sDest, adSaveCreateOverWrite
End If
Next
msgbox "done"
ところがこれをIE7環境で実行すると毎回こんなダイアログがでるんですね。
インターネットゾーンのレベルのカスタマイズで、「スクリプトによる貼り付け処理の許可」を「ダイアログを表示する」から「有効にする」に変えればダイアログは出なくなりますがお勧めしません。それよりは"about:blank"の代わりに何かローカルのファイルを指定してやったほうがいいです。ローカルのファイルはマイコンピュータゾーンで動作するのでダイアログが出ません。
プライバシーポリシー