程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 用C#代碼修改FF和IE的Script狀態(2)

用C#代碼修改FF和IE的Script狀態(2)

編輯:關於C語言

Internet Explorer 安全區域注冊表項說明中有一部分提到的如下的內容,那麼我們就可以通過修改注冊表中的選項來達到我們預期的要求。

/// <summary>
        /// Get Current Script state of IE.
        /// </summary>
        /// <param name="regPath"></param>
        /// <returns>true ---> allow Script.</returns>
        public static bool GetIECurrentScriptState(string regPath)
        {
            bool ret = false;
            RegistryKey regSubkey = null;
            regSubkey = Registry.CurrentUser.OpenSubKey(regPath, true);
            if (regSubkey.GetValue("1400").ToString() == "0")
            {
                ret = true;
            }
            if ((int)regSubkey.GetValue("1400") == 3)
            {
                ret = false;
            }

            return ret;
        }

以下是對IE中注冊表的改變:

/// <summary>
        /// Disable IE Scripts.
        /// </summary>
        public void DisableIEScripts()
        {
            RegistryKey regSubKey = null;
            regSubKey = Registry.CurrentUser.OpenSubKey(regPath, true);
            regSubKey.SetValue("1400", 0x3);
        }

起初我以為如此修改注冊表的信息也會帶來其他浏覽器的改變,但是結果並不然。

Firefox

當我企圖在FF裡面尋找相關注冊表修改的時候,並沒有找到相關選項,於是換一種思路。最終在當前用戶的Firefox文件中,找到了一個叫做pref.JS的文件。裡面有也許有一行代碼,user_pref("Javascript.enabled", false); 。這就代表了Javascript被禁止了。如果為true或者沒有的話,那麼都代表了允許狀態。而該文件的文件夾9acap8nw.default如此帶有default字樣的,也是隨著不同的機器安裝不同的客戶端所不同的。而它的前面的目錄大概的C:\Documents and Settings\。。。\Application Data\Mozilla\Firefox\Profiles如此。不過會有這樣的文件夾也只是在Windows server2003 和XP中有如此的目錄,具體問題還是需要具體分析的。

/// <summary>
        /// Delete one line which contains the "JavaScript.enabled.
        /// </summary>
        /// <param name="filePath">the path of JS file.</param>
        public static void DisableFFJaveScript(string filePath)
        {
            StringBuilder sb = new StringBuilder();
            using (FileStream aStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite))
            {
                StreamReader aReader = new StreamReader(aStream, Encoding.UTF8);
                StreamWriter aWriter = new StreamWriter(aStream, Encoding.UTF8);
                aReader.BaseStream.Seek(0, SeekOrigin.Begin);
                string streamLine = aReader.ReadLine();
                bool isJSDisabled = false;
                bool isJSFalse = false;
                while (streamLine != null)
                {
                    if (streamLine.Contains("Javascript.enable") && streamLine.Contains("false"))
                    {
                        isJSFalse = true;
                    }
                    if (streamLine.Contains("Javascript.enable") && streamLine.Contains("true"))
                    {
                        streamLine = streamLine.Replace("true", "false");
                        isJSDisabled = true;
                    }

                    sb.Append(streamLine + "\r\n");
                    streamLine = aReader.ReadLine();
                }

                if (!isJSDisabled && !isJSFalse)
                    sb.Append("user_pref(" + "\"Javascript.enabled\"" + "," + " false);");
                aReader.Close();
            }

            File.Delete(filePath);
            AddToFile(filePath, sb.ToString());
        }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved