我尝试使用VBScript连接到Google Chrome的SQLite3数据库,其目标是捕获存储在"历史记录"中的所有访问过的网址。谷歌Chrome浏览器数据库。
我的麻烦是,什么时候连接会出现错误,说:
[Microsoft] [ODBC驱动程序管理器]"数据源名称很长。"
这是我最后一次尝试:
PS: 以@ Ekkehard.Horner的建议编辑。
Const LOCAL_APPLICATION_DATA = &H1c&
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(LOCAL_APPLICATION_DATA)
Set objFolderItem = objFolder.Self
'Wscript.Echo objFolderItem.Path
Set colItems = objFolder.Items
Dim sCurDir
Dim sFina
For Each objItem in colItems
'Wscript.Echo objItem.Name
If InStr(1, objItem.Name, "Google") > 0 Then
sCurDir = objFolderItem.Path + "\" + objItem.Name + "\Chrome\User Data\Default\"
sFina = "History"
'Wscript.Echo sCurDir + sFina
Exit For
End If
Next
Dim oCS : oCS = "Driver={SQLite3 ODBC Driver};Database=@FSPEC@;StepAPI=;Timeout="
Dim oCNCT : Set oCNCT = CreateObject( "ADODB.Connection" )
Dim sSQL : sSQL = "SELECT * FROM urls"
Dim oRS
Dim oFld
oCS = Replace( oCS, "@FSPEC@", sCurDir + sFina )
oCNCT.Open oCS
WScript.Echo "connected to", sCurDir + sFina
Set oRS = oCNCT.Execute( sSQL )
For Each oFld In oRS.Fields
If InStr(1, oFld.Name, "url") > 0 Then
WScript.Echo oFld.Value
End If
Next
oRS.MoveNext
oCNCT.Close
Set oCNCT = Nothing
答案 0 :(得分:0)
假设
oCS = Replace( oCS, "@FSPEC@", sCurDir + sFina )
会产生一个合适的连接字符串,.Open
应该使用它。所以替换
oCNCT.Open sCurDir + sFina
与
oCNCT.Open oCS
你的显示循环看起来很腥;你可能想循环遍历记录集并访问(唯一的)列/字段的值" url"。