0

でフォローしようとしていますc#

1) Firefox ブラウザを開きます->ツール-->オプション->一般タブ--->ダウンロード--->ファイルの保存先を常に確認します。

を使用して、アプリケーションでこのプロセス全体を実行したいと考えていますc#。ダウンロードウィンドウが開いたときに、"Always ask me where to save file"オプションのラジオボタンが自動的にチェックされるようにします。

さまざまなリンクから試しましたが、すべて無駄です。

4

2 に答える 2

1

これが完全なコード、コンソール アプリケーションです。概要: 環境設定ファイルはアプリケーション ローミング フォルダーにあり、Windows 7 では次のようになります。

C:\Users\MYNAME\AppData\Roaming\Mozilla\Firefox\Profiles\d9i9jniz.default\prefs.js

このファイルを変更して、「user_pref("browser.download.useDownloadDir", false);」が含まれるようにします。

Firefox を再起動して完了です。このアプリケーションは、Firefox が実行されていないときにのみ実行してください。

 static void Main(string[] args)
    {
        if (isFireFoxOpen())
        {
            Console.WriteLine("Firefox is open, close it");
        }
        else
        {
            string pathOfPrefsFile = GetPathOfPrefsFile();

            updateSettingsFile(pathOfPrefsFile);
            Console.WriteLine("Done");
        }
        Console.ReadLine();
    }

    private static void updateSettingsFile(string pathOfPrefsFile)
    {
        string[] contentsOfFile = File.ReadAllLines(pathOfPrefsFile);
        // We are looking for "user_pref("browser.download.useDownloadDir", true);"
        // This needs to be set to:
        // "user_pref("browser.download.useDownloadDir", false);"
        List<String> outputLines = new List<string>();
        foreach (string line in contentsOfFile)
        {
            if (line.StartsWith("user_pref(\"browser.download.useDownloadDir\""))
            {
                Console.WriteLine("Found it already in file, replacing");
            }
            else
            {
                outputLines.Add(line);
            }
        }

        // Finally add the value we want to the end
        outputLines.Add("user_pref(\"browser.download.useDownloadDir\", false);");
        // Rename the old file preferences for safety...
        File.Move(pathOfPrefsFile, Path.GetDirectoryName(pathOfPrefsFile) +  @"\" + Path.GetFileName(pathOfPrefsFile) + ".OLD." + Guid.NewGuid().ToString());
        // Write the new file.
        File.WriteAllLines(pathOfPrefsFile, outputLines.ToArray());
    }

    private static string GetPathOfPrefsFile()
    {
        // Get roaming folder, and get the profiles.ini
        string iniFilePath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Mozilla\Firefox\profiles.ini";
        // Profiles.ini tells us what folder the preferences file is in.
        string contentsOfIni = File.ReadAllText(iniFilePath);

        int locOfPath = contentsOfIni.IndexOf("Path=Profiles");
        int endOfPath = contentsOfIni.IndexOf(".default", locOfPath);

        int startOfPath = locOfPath + "Path=Profiles".Length + 1;
        int countofCopy = ((endOfPath + ".default".Length) - startOfPath);
        string path = contentsOfIni.Substring(startOfPath, countofCopy);

        string toReturn = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\Mozilla\Firefox\Profiles\" + path + @"\prefs.js";
        return toReturn;
    }

    public static bool isFireFoxOpen()
    {
        foreach (Process proc in Process.GetProcesses())
        {
            if (proc.ProcessName == "firefox")
            {
                return true;
            }
        }
        return false;
    }
于 2012-10-10T10:22:09.033 に答える
0

何を試しましたか?

Firefox の設定はプロファイルに保存されるので、指定されたファイルの内容を変更できると思います。入力about:configして、探している設定を見つけます。browser.downloadツリーにあると思います。(ブラウザが実行されていないことを確認してから) 変更すると、問題なく使用できるはずです。

于 2012-10-10T07:25:21.173 に答える