Where does Chrome save the Home or Start page URL? I want to access it programmatically using C#.
Click the General tab. Under "Home page," enter: www.google.com .
Default locations are:
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
Chromium:~/.config/chromium/Default
Source: Google Chromium user data directory default locations. ( link )
In amount of time I spent on writing this, this was the shortest and most robust example I could think of (I completely ignored the fact, that user could use different location then default). Must say, it was bit trickier, then I thought.
In this example, I try using the default location directory, and finding the preference file where the "Home" is stored. It is stored in JSon format, so I deserialize the data that I am interested, and print it out.
Win 7 Example:
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); } } }
Example output for Me:
chrome://newtab True
Hope I get at least 1 up vote :P
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With