有没有人知道是否可以从外部应用程序向Web浏览器(Safari,IE,FF,Chrome,Opera)添加书签?
答案 0 :(得分:4)
对于 IE :
您需要在此处创建链接文件:
C#
Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
Powershell
[Environment]::GetFolderPath( [System.Environment+SpecialFolder]::Favorites)
<强>铬:强>
您需要以json格式文件bookmarks
添加条目(没有扩展名):
Win7
上的是
C:\Users\<YOURUSERNAME>\AppData\Local\Google\Chrome\User Data\Default\
<强>火狐:强>
书签存储在SQLite
:
../Application Data/Mozilla/Firefox/Profiles/{your firefox profile}/places.sqlite
使用System.Data.SQLite
您可以尝试添加链接,但我无法帮助您。
无法帮助您使用Safari和Opera
答案 1 :(得分:2)
在Powershell V2 ISE(x86)中,此代码将列出系统中的所有特殊文件夹,甚至this -
$objShell = New-Object -com "Wscript.Shell"
$objShell.SpecialFolders | WHERE {$_.ToString() -match "Fav"}
然后您可以访问&amp;操纵C:\ Users \ username \ Favorites文件夹。我不知道这是否会扩展到所有浏览器[IE除外]
答案 2 :(得分:0)
这是我想出的从PowerShell向Chrome添加书签的解决方案:
$fileBookmarks="$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Bookmarks"
$dataBookmarks=Get-Content $fileBookmarks -Encoding UTF8| Out-String |ConvertFrom-Json
function createNewChromeBookmark ($Bookmarks, [string]$BookmarkName, [string]$BookmarkURL) {
function getBookmarkIDs($object){
$object | ForEach-Object{
"{0:0000}" -f [int]($_.id);
if([bool]($_.PSobject.Properties.name -match "children")){
GetBookmarkIDs($_.children);
}
}
};
$nextBookmarkID = [int](getBookmarkIDs -object $Bookmarks.roots.bookmark_bar|Sort-Object -Descending|Select-Object -First 1) + 1
$currentChomeTime=[System.DateTimeOffset]::Now.ToUnixTimeMilliseconds()*10000;
$newBookmark= [PSCustomObject]@{
date_added=$currentChomeTime
guid=[guid]::NewGuid()
id=$nextBookMarkID
name="$BookmarkName"
type="url"
url="$BookmarkURL"
}
return $newBookmark;
}
$newBookmark = createNewChromeBookmark -Bookmarks $dataBookmarks -BookmarkName "Your Bookmark Name" -BookmarkURL "https://[Your URL Here]";
$dataBookmarks.roots.bookmark_bar.children += $newBookmark;
$dataBookmarksJSON = ConvertTo-Json -InputObject $dataBookmarks -Depth 200
Set-Content -Path $fileBookmarks -Value $dataBookmarksJSON -Encoding UTF8