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": [ {