2012-04-06 15 views
0

Bei der Anwendung ich schreibe, ich versuche, durch Änderung der preferences Datei Google Chrome Standard-Startseite zu ändernWie kann eine Datei vor Änderungen geschützt werden?

, um dies zu erreichen, ich bin mit dem folgenden Code snippest

private void button1_Click(object sender, EventArgs e) 
    { 
     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); 
     MessageBox.Show(info.homepage); 


     // replace text now 
     String strFile = File.ReadAllText(file); 

     strFile = strFile.Replace(info.homepage, "www.monde-presse.com"); 

     File.WriteAllText(file, strFile); } 

Wenn Ich klicke auf die Schaltfläche, die Standard-Homepage ändert sich erfolgreich, wenn ich Google Chrome zum ersten Mal starte, aber nachdem ich sie geschlossen und wieder geöffnet habe, habe ich festgestellt, dass die Datei prefrences so geändert wird, wie sie war, bevor sie geändert wurde. Für Mozilla Firefox und Internet Explorer funktioniert alles Ok, aber für Google Chrome funktioniert es nur einmal, nach dem Neustart des Browsers wird die Datei so wie sie war, bevor sie geändert wurde.

Vielleicht ist es möglich, meine Datei laufen zu lassen, und überprüfen Sie jede Änderung in jedem Zeitintervall, aber ich weiß, dass dies ressourcenintensiv sein wird, und deshalb suche ich nach einem Weg, der mich die Standard-Homepage mit ändern erfolgreiche Art und Weise.

Wie kann ich meine Änderungen an der Datei beibehalten, indem ich sie vor einer erneuten Änderung durch Google Chrome schützt, oder gibt es eine andere Möglichkeit, die Standardhomepage dauerhaft zu ändern?

+4

Google Chrome verwendet eindeutig eine Art von Mechanismus, um zu verhindern, dass Menschen interne Einstellungen in einem unerwünschten Manor ändern. Die Frage sollte nicht sein, "wie besiege ich die Verteidigung/Sicherheit von Google Chrome", sondern "wie soll ich * Einstellungen dauerhaft in Google Chrome ändern? Dies ist eine Google Chrome-Frage, keine C#/Datei Systemtyp der Frage: Ich habe natürlich keine Ahnung, wie man Google Chrome modifizieren soll. – Servy

+0

Und wenn es Ihnen gelungen wäre, Einstellungen zu "schützen", wäre der Chrome-Benutzer nie in der Lage, eine Einstellung noch einmal zu ändern ... –

Antwort

4

Ihr Google Chrome ist wahrscheinlich so eingerichtet, dass Ihre Einstellungen mit Ihrem Google-Konto synchronisiert werden. Wenn Sie die Datei manuell bearbeiten, werden die Änderungen der Einstellungen nicht auf Ihr Google-Konto übertragen. Wenn es erneut geladen wird, erhält es die aktualisierten Einstellungen von Ihrem Konto, nicht von dieser Datei.

Sie müssen das "synch" -Objekt in den Voreinstellungen betrachten und versuchen, die letzte Synchronisierungszeit über die aktuelle Zeit hinaus einzustellen.

Verwandte Themen