3

有谁知道是否可以从外部应用程序向网络浏览器(Safari、IE、FF、Chrome、Opera)添加书签?

4

3 回答 3

4

对于IE

您需要在这里创建一个链接文件:

C#

   Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

电源外壳

 [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 的帮助

于 2012-05-30T10:08:30.503 回答
2

在 Powershell V2 ISE (x86) 中,此代码将列出系统上的所有特殊文件夹,甚至是-

$objShell = New-Object -com "Wscript.Shell"
$objShell.SpecialFolders | WHERE {$_.ToString() -match "Fav"}

然后,您可以访问和操作 C:\Users\username\Favorites 文件夹。我不知道这是否会扩展到所有浏览器[IE除外]

于 2012-05-30T09:32:04.317 回答
1

这是我想出的从 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
于 2020-01-21T22:24:24.573 回答