今回は、Google Chrome のブックマークリストを取得してコンボボックスに表示し、選択したブックバークのページを開くサンプルコードを紹介します。
Google Chrome のブックマークファイルが見つからない場合はツールを終了するようにしています。
サンプルコードを参考に、いろいろと変更してみてください。
Chrome のブックマークリストを表示、ページを開くサンプルコード
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile_x64=GoogleBookmarks.exe
#AutoIt3Wrapper_Res_Description=Google Chrome ブックマークリストを表示
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_ProductName=Google Chrome ブックマーク
#AutoIt3Wrapper_Res_ProductVersion=1.0
#AutoIt3Wrapper_Res_CompanyName=©2023 wenbang https://windows-waza.com/
#AutoIt3Wrapper_Res_LegalCopyright=©2023 wenbang https://windows-waza.com/
#AutoIt3Wrapper_Res_LegalTradeMarks=GoogleBookmarks.exe
#AutoIt3Wrapper_Res_Language=1041
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
#include <GuiComboBox.au3>
#include-once
Opt("WinTitleMatchMode", 2); ウィンドウタイトル 部分一致
; Google Chrome のブックマークファイルのパス
$Bookmarks = @UserProfileDir & "\AppData\Local\Google\Chrome\User Data\Default\Bookmarks"
Global $List; 変数の宣言
$Form1 = GUICreate("Google Chrome ブックマーク", 800, 140, 192, 124, -1, $WS_EX_TOPMOST)
GUISetFont(14); フォントサイズを指定
$MenuItem1 = GUICtrlCreateMenu("ファイル")
$MenuItem5 = GUICtrlCreateMenuItem("終了", $MenuItem1)
$MenuItem2 = GUICtrlCreateMenu("ヘルプ")
$MenuItem3 = GUICtrlCreateMenuItem("WEBサイトへ", $MenuItem2)
$MenuItem4 = GUICtrlCreateMenuItem("バージョン", $MenuItem2)
$Combo1 = GUICtrlCreateCombo("", 24, 8, 753, 50)
$Button1 = GUICtrlCreateButton("選択したページを開く", 24, 50, 753, 50)
GUICtrlSetCursor(-1, 0); ボタンの上にマウスカーソルを重ねた際に、カーソルを手の形にします。
$favorite = _FileRead($Bookmarks); ブックマークファイルを読み取ります。
; ブックマークファイルの読み取りに失敗した場合、メッセージボックスを表示してツールを終了します。
If Not $favorite Then Exit (MsgBox(16, "エラー", "ブックマークファイルが見つかりません。ツールを終了します。"))
; Google Chrome が既定のブラウザでない場合はツールを終了します。
$Chrome = RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice", "ProgId")
If $Chrome <> "ChromeHTML" Then Exit (MsgBox(16, "エラー", "Google Chrome は既定のブラウザではありません。ツールを終了します。"))
; ブックマークのタイトルを取得します。
$Bookmark_Name = StringRegExp($favorite, '(?s)"name": "([^"]+)".+?"url": "', 3)
; ブックマークの URL を取得します。
$Bookmark_Url = StringRegExp($favorite, '(?s)"name": "[^"]+".+?"url": "(\w+://[^"]+)"', 3)
For $i = 0 To UBound($Bookmark_Url) - 1
If $Bookmark_Url[$i] Then
; ブックマーク名に「|」または「|」が含まれているとコンボボックスに正しく表示できないので、「|」と「|」を削除します。
; (プログラム内でのみ表示しないようにしますので Bookmarks ファイルに影響はありません)
$List &= StringRegExpReplace($Bookmark_Name[$i], "||\|", "") & "|"
Else
ExitLoop
EndIf
Next
GUICtrlSetData($Combo1, $List); コンボボックスにブックマークリストをセットします。
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$sel = _GUICtrlComboBox_GetCurSel($Combo1); 現在選択されているアイテムのインデックスを取得します。
If $sel <> -1 Then
If $Bookmark_Url[$sel] = "chrome://newtab/" Then; ブックマークの URL が新しいタブならば
If ProcessExists("chrome.exe") Then; もしも Chrome が起動していれば
WinActivate(" Google Chrome"); Chrome をアクティブにします。
ControlSend(" Google Chrome", "", "[class:Chrome_RenderWidgetHostHWND]", "^t"); 新しいタブを開くショートカットを送信します。
Else; もしも Chrome が起動していなければ Chrome を起動します。
ShellExecute(@HomeDrive & "\Program Files (x86)\Google\Chrome\Application\chrome.exe")
EndIf
Else
ShellExecute($Bookmark_Url[$sel]); 選択したブックマークの URL を Chrome(既定のブラウザ) で開きます。
EndIf
EndIf
Case $MenuItem3
ShellExecute("https://autoit.windows-waza.com/")
Case $MenuItem4
MsgBox(0, "バージョン", "1.0")
EndSwitch
WEnd
Func _FileRead($File)
Local $open = FileOpen($file)
If $open = -1 Then
Return False
EndIf
Local $read = FileRead($open)
FileClose($open)
Return $read
EndFunc ;==>_FileRead
コンボボックスには Google Chrome で追加したブックマークのリストが表示されます。
ブックマークを選択し、「選択したページを開く」ボタンをクリックすると Google Chrome でページを開きます。
47,48行目のコードを削除すれば既定のブラウザで Google Chrome のブックマークのページを開くことが出来ます。
$Chrome = RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice", "ProgId")
If $Chrome <> "ChromeHTML" Then Exit (MsgBox(16, "エラー", "Google Chrome は既定のブラウザではありません。ツールを終了します。"))
コメント