如何使用GPO更改Firefox主页(组策略)

时间:2015-04-01 16:05:01

标签: c++ firefox gpo

到目前为止,我已经在C#中开发了一个解决方案,但它没有使用GPO。它修改了prefs.js文件。

这是我到目前为止使用C#编写的:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FireFoxHomepageChanger
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public static void SetMozilla(string strURL)
        {
            try
            {
                string strSystemUname = Environment.UserName.ToString().Trim();
                string systemDrive = Environment.ExpandEnvironmentVariables("%SystemDrive%");
                string strDirectory = "";
                string strPrefFolder = "";
                if (Directory.Exists(systemDrive + "\\Documents and Settings\\" + strSystemUname + "\\Application Data\\Mozilla\\Firefox\\Profiles"))
                {
                    strDirectory = systemDrive + "\\Documents and Settings\\" + strSystemUname + "\\Application Data\\Mozilla\\Firefox\\Profiles";
                }
                else if (Directory.Exists(systemDrive + "\\WINDOWS\\Application Data\\Mozilla\\Firefox\\Profiles"))
                {
                    strDirectory = systemDrive + "\\WINDOWS\\Application Data\\Mozilla\\Firefox\\Profiles";
                }
                if (strDirectory.Trim().Length != 0)
                {
                    System.IO.DirectoryInfo oDir = new DirectoryInfo(strDirectory);
                    //System.IO.DirectoryInfo[] oSubDir;
                    //oSubDir = oDir.GetDirectories(strDirectory);
                    foreach (DirectoryInfo oFolder in oDir.GetDirectories())
                    {
                        if (oFolder.FullName.IndexOf(".default") >= 0)
                        {
                            strPrefFolder = oFolder.FullName;
                            CreatePrefs(strURL, strPrefFolder);
                        }
                    }

                }
            }
            catch
            { }
        }
        private static void CreatePrefs(string strURL, string strFolder)
        {
            StringBuilder sbPrefs = new StringBuilder();
            sbPrefs.Append("# Mozilla User Preferences\n\r");
            sbPrefs.Append("/* Do not edit this file.\n\r*\n\r");
            sbPrefs.Append("* If you make changes to this file while the application is running,\n\r");
            sbPrefs.Append("* the changes will be overwritten when the application exits.,\n\r*\n\r");
            sbPrefs.Append("* To make a manual change to preferences, you can visit the URL about:config\n\r");
            sbPrefs.Append("* For more information, see http://www.mozilla.org/unix/customizing.html#prefs\n\r");
            sbPrefs.Append("*/\n\r");
            sbPrefs.Append("user_pref(\"app.update.lastUpdateTime.addon-background-update-timer\", 1188927425);\n\r");
            sbPrefs.Append("user_pref(\"app.update.lastUpdateTime.background-update-timer\", 1188927425);\n\r");
            sbPrefs.Append("user_pref(\"app.update.lastUpdateTime.blocklist-background-update-timer\", 1188927425);\n\r");
            sbPrefs.Append("user_pref(\"app.update.lastUpdateTime.search-engine-update-timer\", 1188927425);\n\r");
            sbPrefs.Append("user_pref(\"browser.anchor_color\", \"#0000FF\");\n\r");
            sbPrefs.Append("user_pref(\"browser.display.background_color\", \"#C0C0C0\");\n\r");
            sbPrefs.Append("user_pref(\"browser.display.use_system_colors\", true);\n\r");
            sbPrefs.Append("user_pref(\"browser.formfill.enable\", false);\n\r");
            sbPrefs.Append("user_pref(\"browser.history_expire_days\", 20);\n\r");
            sbPrefs.Append("user_pref(\"browser.shell.checkDefaultBrowser\", false);\n\r");
            sbPrefs.Append("user_pref(\"browser.startup.homepage\", \"" + strURL + "\");\n\r");
            sbPrefs.Append("user_pref(\"browser.startup.homepage_override.mstone\", \"rv:1.8.1.6\");\n\r");
            sbPrefs.Append("user_pref(\"browser.visited_color\", \"#800080\");\n\r");
            sbPrefs.Append("user_pref(\"extensions.lastAppVersion\", \"2.0.0.6\");\n\r");
            sbPrefs.Append("user_pref(\"intl.charsetmenu.browser.cache\", \"UTF-8, ISO-8859-1\");\n\r");
            sbPrefs.Append("user_pref(\"network.cookie.prefsMigrated\", true);\n\r");
            sbPrefs.Append("user_pref(\"security.warn_entering_secure\", false);\n\r");
            sbPrefs.Append("user_pref(\"security.warn_leaving_secure\", false);\n\r");
            sbPrefs.Append("user_pref(\"security.warn_submit_insecure\", false);\n\r");
            sbPrefs.Append("user_pref(\"security.warn_submit_insecure.show_once\", false);\n\r");
            sbPrefs.Append("user_pref(\"spellchecker.dictionary\", \"en-US\");\n\r");
            sbPrefs.Append("user_pref(\"urlclassifier.tableversion.goog-black-enchash\", \"1.32944\");\n\r");
            sbPrefs.Append("user_pref(\"urlclassifier.tableversion.goog-black-url\", \"1.14053\");\n\r");
            sbPrefs.Append("user_pref(\"urlclassifier.tableversion.goog-white-domain\", \"1.23\");\n\r");
            sbPrefs.Append("user_pref(\"urlclassifier.tableversion.goog-white-url\", \"1.371\");\n\r");
            StreamWriter writer = new StreamWriter(strFolder + "\\prefs.js");
            writer.Write(sbPrefs.ToString());
            writer.Close();
            writer.Dispose();
            GC.Collect();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string URLString;
            URLString = textBox1.Text;
            SetMozilla(URLString);

            label2.Text =String.Format( "Home page changed to: {0}",URLString);
        }
    }
}

这个解决方案有效,但我想要一些C ++中的东西。

现在,有没有办法在Windows机器上使用原生 C ++ 组策略做我想做的事情?感谢。

0 个答案:

没有答案