Question Accéder par programme à la page d'accueil ou à la page d'accueil de Google Chrome


Où Chrome enregistre-t-il l'URL de la page d'accueil ou de démarrage? Je veux y accéder par programmation en utilisant C #.


20
2017-10-24 12:28


origine


Réponses:


Les emplacements par défaut sont les suivants:

Windows XP

Google Chrome:  C:\Documents and Settings\<username>\Local Settings\Application Data\Google\Chrome\User Data\Default
Chrome:  C:\Documents and Settings\<username>\Local Settings\Application Data\Chromium\User Data\Default

Vista / 7

Google Chrome:  C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default
Chrome:  C:\Users\<username>\AppData\Local\Chromium\User Data\Default

Mac OS X

Google Chrome:  ~/Library/Application Support/Google/Chrome/Default
Chrome:  ~/Library/Application Support/Chromium/Default

Linux

Google Chrome:  ~/.config/google-chrome/Default
Chrome:  ~/.config/chromium/Default

Source: emplacements par défaut du répertoire de données utilisateur Google Chrome. ( lien )

En termes de temps passé à écrire ceci, c'était l'exemple le plus court et le plus robuste auquel je pouvais penser (j'ai complètement ignoré le fait que cet utilisateur pouvait utiliser un emplacement différent puis un défaut). Faut dire, c'était un peu plus compliqué, alors j'ai pensé.

Dans cet exemple, j'essaie d'utiliser le répertoire d'emplacement par défaut et de trouver le fichier de préférences dans lequel le "Home" est stocké. Il est stocké dans JSon format, donc je désérialise les données qui m'intéressent et les imprime.

Win 7 Exemple:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
//References -> Add Reference -> "System.Runtime.Serialization" Add
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;

namespace test {
    class Program {
        [DataContract]
        public class Mdata {
            [DataMember(Name = "homepage")] 
            public String homepage { get; private set; }
            [DataMember(Name = "homepage_is_newtabpage")]
            public Boolean isNewTab { get; private set; }
            public Mdata() { }
            public Mdata(String data) {
                homepage = data;
            }
        }

        public static Mdata FindData(String json) {
            Mdata deserializedData = new Mdata();
            MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
            DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedData.GetType());
            deserializedData = ser.ReadObject(ms) as Mdata;
            ms.Close();
            return deserializedData;
        }

        static void Main(string[] args) {
            const int LikeWin7 = 6;
            OperatingSystem osInfo = Environment.OSVersion;
            DirectoryInfo strDirectory;
            String path=null, file=null, data;

            if (osInfo.Platform.Equals(System.PlatformID.Win32NT))
                if (osInfo.Version.Major == LikeWin7)
                    path = Environment.GetEnvironmentVariable("LocalAppData") +
                        @"\Google\Chrome\User Data\Default";
            if (path == null || path.Length == 0)
                throw new ArgumentNullException("Fail. Bad OS.");
            if (!(strDirectory = new DirectoryInfo(path)).Exists)
                throw new DirectoryNotFoundException("Fail. The directory was not fund");
            if (!new FileInfo(file = Directory.GetFiles(strDirectory.FullName, "Preferences*")[0]).Exists)
                throw new FileNotFoundException("Fail. The file was not found.", file);

            Mdata info = FindData(data = System.IO.File.ReadAllText(file));
            Console.WriteLine(info.homepage);
            Console.WriteLine(info.isNewTab);
        }
    }
}

Exemple de sortie pour moi:

chrome://newtab
True

J'espère avoir au moins 1 vote: P


30
2017-10-24 16:39



Sur Windows 7 (et je suppose Vista) avec une installation par défaut, il est stocké dans le fichier:

%USERPROFILE%\AppData\Local\Google\User Data\Default\Preferences

Sur Windows 2003 (et XP):

%USERPROFILE%\Local Settings\Application Data\Google\Chrome\User Data\Default\Preferences

Le nom de la propriété à rechercher est: homepage.


5
2017-10-24 13:06



Une petite partie du fichier de préférences dont vous avez besoin.

},
      "homepage": "http://www.google.com/",
      "homepage_is_newtabpage": true,
      "pinned_tabs": [ {

0
2017-07-10 14:18