Изменить папку загрузки браузера с помощью C # - PullRequest
1 голос
/ 10 августа 2011

Есть ли способ изменить папку загрузки веб-браузера по умолчанию с помощью c #.

Ответы [ 3 ]

1 голос
/ 10 августа 2011

Чтобы расширить комментарий Эша - если вы находитесь в веб-приложении, нет.Если вы используете приложение для настольного компьютера и у вас достаточно прав (например, вы работаете от имени администратора), вероятно.Но вам нужно найти браузер по умолчанию (предположительно из реестра) и знать, как установить папку загрузки для каждого популярного браузера или для каждого браузера, с которым вы хотите работать.

0 голосов
/ 10 августа 2011

Соглашаясь с комментариями других, вы можете сделать это только в настольном приложении, если у вас есть необходимые разрешения.

Вот пример кода для поиска браузера системы по умолчанию (из этого поста ):

private string getDefaultBrowser()
{
    string browser = string.Empty;
    RegistryKey key = null;
    try
    {
        key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false);

        //trim off quotes
        browser = key.GetValue(null).ToString().ToLower().Replace("\"", "");
        if (!browser.EndsWith("exe"))
        {
            //get rid of everything after the ".exe"
            browser = browser.Substring(0, browser.LastIndexOf(".exe")+4);
        }
    }
    finally
    {
        if (key != null) key.Close();
    }
    return browser;
}

Однако, здесь все становится сложнее. Различные браузеры имеют разные способы сохранения местоположения по умолчанию.

Например,

  • IE может сохранить его в реестре (обычно под HKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer)
  • FF сохраняет его в prefs.js в папке Profile (закажите эту запись , чтобы получить к ней код)
  • Не уверен насчет Chrome и Safari

но вы поняли.

Не уверен, какова ваша конечная цель, но, с точки зрения UX, я думаю, что лучше всего было бы попросить пользователя указать каталог для загрузки (другими словами , вы выставляете настройку в вашем приложении для местоположения загрузки по умолчанию).

0 голосов
/ 10 августа 2011

Откуда вы пытаетесь это сделать? Если вы имеете в виду «кто-то заходит на наш сайт и ...», ответ будет отрицательным, поскольку все, что вы запускаете, находится в контексте безопасности. Вы, конечно, можете предложить пользователю изменить папку, но вы застряли.

Если вы не являетесь веб-приложением, у вас есть варианты. Основной каталог загрузки пользователя находится в X под ключом {374DE290-123F-4565-9164-39C4925E467B}. Да, это звучит очень весело. Вы можете узнать, как взломать реестр программно здесь. Но пользователь также может указать определенную папку в браузере. Это означает, что вы должны знать, какой браузер использует пользователь, и взломать его, или вы можете попытаться взломать все.

Плохая новость заключается в том, что приложение, работающее (скорее всего) в пользовательском контексте, может не иметь прав администратора и иметь возможность взламывать ключи реестра для изменения папки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...