0

私が書いているアプリケーションでは、ファイルを変更してGoogleChromeのデフォルトのホームページを変更しようとしていpreferencesます

これを達成するために、私は次のコードスニッペストを使用しています

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

ボタンをクリックすると、初めてGoogle Chromeを起動したときにデフォルトのホームページが正常に変更されますが、ボタンを閉じて再度開いた後、prefrencesファイルが変更前の状態に変更されることに気付きました。MozillaFirefoxとInternetExplorerの場合はすべて問題なく動作しますが、Google Chromeの場合は、1回だけ動作します。ブラウザを再起動すると、ファイルは変更前の状態になります。

たぶん、ファイルを実行し続け、時間間隔ごとに変更をチェックすることは可能ですが、これはリソースを大量に消費することを知っているので、デフォルトのホームページをうまく変更できる方法を探しています。

Google Chromeによってファイルが再度変更されないように保護することで、ファイルへの変更を保持するにはどうすればよいですか。または、デフォルトのホームページを永続的に変更する別の方法がありますか?

4

1 に答える 1

4

Google Chromeは、設定をGoogleアカウントと同期するように設定されている可能性があります。ファイルを手動で編集しても、設定の変更はGoogleアカウントにプッシュされません。したがって、再度ロードすると、そのファイルではなく、アカウントから更新された設定が取得されます。

環境設定で「同期」オブジェクトを確認し、最後の同期時刻を現在の時刻を超えて設定する必要があります。

于 2012-04-06T20:26:53.573 に答える