webbrowser net dotnetbrowser control chromiumwebbrowser chrome alternative alternativa c# google-chrome

net - webbrowser c# chrome



Accede programáticamente a la página de inicio o inicio de Google Chrome (3)

Las ubicaciones predeterminadas son:

Windows XP

Google Chrome: C:/Documents and Settings/<username>/Local Settings/Application Data/Google/Chrome/User Data/Default
Chromium: 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
Chromium: C:/Users/<username>/AppData/Local/Chromium/User Data/Default

Mac OS X

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

Linux

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

Fuente: ubicaciones predeterminadas del directorio de datos de usuario de Google Chromium. ( link )

En la cantidad de tiempo que pasé escribiendo esto, este fue el ejemplo más corto y más robusto que pude pensar (ignoré completamente el hecho de que el usuario podría usar una ubicación diferente a la predeterminada). Debo decir, fue un poco más complicado, entonces pensé.

En este ejemplo, trato de usar el directorio de ubicación predeterminado y de encontrar el archivo de preferencias donde se almacena el "Inicio". Se almacena en formato JSon , por lo que deserializo los datos que me interesan y los JSon .

Win 7 Ejemplo:

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); } } }

Ejemplo de salida para mí:

chrome://newtab True

Espero obtener al menos 1 voto arriba: P

¿Dónde guarda Chrome la URL de la página de inicio o de inicio? Quiero acceder programáticamente mediante C #.


En Windows 7 (y supongo que Vista) con una instalación predeterminada se almacena en el archivo:

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

En Windows 2003 (y XP):

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

El nombre de la propiedad a buscar es: homepage .


Una pequeña parte del archivo de preferencias que necesita.

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