- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
*WSH 関連 [#u8fac02d]
**Internet Explorer の自動化 [#rdcae1ce]
***はてなブックマークの登録処理の自動化 [#u960ab11]
-はてなブックマークの登録処理の自動化
' AddBookmark.vbs
' Usage : CScript AddBookmark.vbs
' <処理概要>
' 1. お気に入りフォルダの取得
' 2. お気に入りの URL を取得
' 3. お気に入りの URL を Internet Explorer で表示
' 4. 表示された URL を「はてなブックマーク」に登録
' 5. Internet Explorer を閉じる
' 6. 2〜5 の繰り返し
'
Option Explicit
Main
Sub Main
Dim nResult
nResult = MsgBox( "はてなブックマークへの一括登録処理を行います。", vbOKCancel, "確認" )
If nResult <> vbOK Then
' OK 以外の場合、処理を抜けます。
Exit Sub
End If
' お気に入りのブックマークの一括登録処理
' ↓ 処理を有効にする場合、以下のコメントを外してください。
' AddBookmarkFromFavorites
' 指定した URL のリストの一括登録処理
' ↓ 処理を有効にする場合、以下のコメントを外してください。
' AddBookmarkFromList
' 処理の終了
MsgBox "はてなブックマークへの登録処理を完了しました。", vbOKOnly, "終了"
End Sub
Sub AddBookmarkFromList
Dim dic
Set dic = CreateObject("Scripting.Dictionary")
' ↓登録したい URL をここに記述
dic.Add "http://www.hatena.ne.jp/1108104573", ""
dic.Add "http://www.hatena.ne.jp/1108213360", ""
dic.Add "http://www.hatena.ne.jp/1108215897", ""
dic.Add "http://www.hatena.ne.jp/1108438733", ""
' リストの内容をブックマークとして登録
AddBookmarks dic
End Sub
Sub AddBookmarkFromFavorites
Dim dic
Set dic = CreateObject("Scripting.Dictionary")
' お気に入りの情報を取得
RetrieveFavorites dic
' リストの内容をブックマークとして登録
AddBookmarks dic
End Sub
Function RetrieveFavorites( dic )
Dim shell
Set shell = CreateObject("Shell.Application")
Dim folder
Set folder = shell.NameSpace(6) ' お気に入りフォルダ
FavoritesToDictionary folder, dic
End Function
Function FavoritesToDictionary( folder, dic )
Dim wsh
Set wsh = CreateObject("WScript.Shell")
' サブディレクトリも対象とする
Dim item
For Each item In folder.Items
If item.IsFolder Then
FavoritesToDictionary item.GetFolder, dic
ElseIf item.IsLink Then
Dim link
Set link = wsh.CreateShortcut( item.Path )
' お気に入りの URL の登録情報を取得
dic.Add link.TargetPath, item.Name
End If
Next
End Function
Function AddBookmarks( dicURL )
Dim strURL
' データ件数分ループ
For Each strURL In dicURL
AddBookmark strURL
Next
End Function
Function AddBookmark( strURL )
Dim objIE
Set objIE = CreateObject("InternetExplorer.Application")
' IE の画面を表示させたくない場合は False をセットしてください
objIE.Visible = True
' ページロード&タイトル取得
objIE.Navigate strURL ' ページの読み込み
While ( objIE.Busy ) : WScript.Sleep 100 : Wend
Dim strTitle
strTitle = objIE.Document.Title
' はてなブックマークの登録処理
Dim strCGI
' strCGI = "http://b.hatena.ne.jp/add?mode=confirm&url=" & Escape(strURL)
strCGI = "http://b.hatena.ne.jp/add?mode=confirm&title=" & Escape(strTitle) & "&url=" & Escape(strURL)
objIE.Navigate strCGI ' 登録画面の呼び出し
While ( objIE.Busy ) : WScript.Sleep 100 : Wend
objIE.Document.Forms(0).commit.Click ' 追加するボタンをクリック
While ( objIE.Busy ) : WScript.Sleep 100 : Wend
objIE.Quit
Set objIE = Nothing
' 念のためウェイトを入れておく
WScript.Sleep 1000
End Function
--動作保証は致しかねます。実行は自己責任でお願いします。
-参考情報
--ShellFolder / Folderオブジェクト、FolderItemsコレクション、FolderItemオブジェクト、Linkオブジェクト
---http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/shellfol.htm
--ShellSpecialFolderConstants Enumerated Type
---http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/objects/shell/shellspecialfolderconstants.asp
Const ssfFAVORITES = 6
--WshShellオブジェクトの詳細 / ショートカットの作成
---http://www.atmarkit.co.jp/fwin2k/operation/wsh06/wsh06_03.html
--WshUrlShortcutオブジェクト
---http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/urlshortcut.htm
--Internet Explorerオブジェクト (InternetExplorer.Application)
---http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/object/ie.htm
-はてな
--http://www.hatena.ne.jp/1108438733
--http://www.hatena.ne.jp/1108104573
#comment