2011-08-10 9 views

答えて

0

他の人のコメントと同様に、適切な権限を持っていれば、デスクトップアプリケーションでしか実行できません。ここで

は(このpostから)システムのデフォルトのブラウザを見つけるためにいくつかのサンプルコードです:

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はそれがProfileフォルダ内のprefs.js
  • わからない(コード経由でそれを取得するために、このpostをチェックアウト)
  • FFストア(通常はHKEY_CURRENT_USER\ Software\ Microsoft\ Internet Explorer下)レジストリにそれを格納することができます。 ChromeとSafariについて

あなたはそのアイデアを得ます。

なく、あなたの最終目標が何であるかを確認しますが、UXの観点から、私は(つまり、あなたはあなたの中に設定を公開行うための最善のことは、ダウンロードディレクトリを指定するユーザーに尋ねるになると思いデフォルトのダウンロード場所のアプリ)。

1

灰のコメントに展開する - あなたがウェブアプリ内にいる場合は、いいえ。あなたがデスクトップアプリケーションで、十分な権限(管理者として実行中)を持っているとします。しかし、デフォルトのブラウザ(おそらくレジストリから)を見つけて、人気のあるブラウザごと、または使用したいブラウザごとにダウンロードフォルダを設定する方法を知っておく必要があります。

+0

あなたは管理者プロファイルが必要かどうか疑問です:それはユーザー設定です –

0

あなたはこれをどこからやってみようとしていますか? 「誰かが私たちのウェブサイトにアクセスして... ...」という意味ならば、答えは「いいえ」です。あなたが実行するものはセキュリティコンテキスト内にあるためです。あなたは確かに、ユーザーがフォルダを変更することを提案することができますが、あなたは立ち往生しています。

あなたがウェブアプリケーションではないと仮定すると、オプションがあります。メインユーザーのダウンロードディレクトリはXのキー{374DE290-123F-4565-9164-39C4925E467B}の下にあります。うん、それはたくさんの楽しみのように聞こえる。あなたはhack the registryここでprogramatically学ぶことができます。しかし、ユーザーはブラウザー内の特定のフォルダーを指定することもできます。つまり、ユーザーが使用しているブラウザーを知ってハックしたり、ハックを試みたりする必要があります。

悪い知らせは、ユーザーコンテキストで実行されている(ほとんどの場合)アプリケーションが管理者権限を持たず、フォルダを変更するためにレジストリキーを叩くことができるということです。

関連する問題