2012-10-14 76 views
2

我已經做了一個程序來處理http鏈接。如何將默認瀏覽器設置爲我的exe文件?我只需要改變http協議,而不是文件關聯。我已經設置了命令行參數處理。我不想使用.reg文件,因爲它會要求用戶添加密鑰。如何將默認瀏覽器設置爲我的應用程序?

回答

3

您可以在靜默模式下運行註冊表(「/ S」)。

或者運行CMD腳本:

reg add HKEY_CLASSES_ROOT\http\shell\open\command /ve /d "path\to\app \"%1\"" /f 

(已註冊的HTTP處理程序 - 在 「\殼\開放\命令」 鍵覆蓋現有的空參數)。

更新你也可以用默認瀏覽器(HKEY_CURRENT_USER \ SOFTWARE \客戶\ StartMenuInternet)按MSDN article實驗。但是你也要處理本地文件。

+0

我已經嘗試了這一點,它顯示在註冊表編輯器,但如果我打開一個Internet快捷方式或運行一個http地址,Firefox仍然打開,而不是我的程序。 – msbg

+0

那麼你應該提到這一點。你嘗試過「HKEY_CURRENT_USER \ Software \ Classes \ http \ shell \ open \ command」嗎?這是當前用戶的特定鍵映射到HCR。 – mikalai

+0

兩臺計算機上的HKEY_CURRENT_USER \ Software \ Classes中都不存在http密鑰。我已將firefox.exe的HKEY_CURRENT_USER \ SOFTWARE \ Clients \ StartMenuInternet更改爲我的瀏覽器路徑,並且未發生任何更改。 – msbg

1

你不知道。這不是一個程序特定的設置,它是一個系統範圍。

你可以做的是啓動一個特定的exe(瀏覽)並將它作爲參數的URL。但通常,很抱歉,這是一個系統智能設置(甚至不是用戶)iirc。

+0

這裏有一個全系統的設置,告訴Windows您的處理程序( exe)存在,HKCU中的另一個設置爲用戶設置了首選項。 –

+0

但兩者都不是特定於應用程序的。這是有道理的 - 用戶選擇一個Web瀏覽器。與選擇一起生活。 – TomTom

+0

這是可能的,所有主流瀏覽器都可以將自己設置爲默認值。 – msbg

1

@TomTom 對不起,我沒有足夠的代表發表評論。 ;)

僅僅因爲Firefox和一些其他瀏覽器很受歡迎並不意味着它在某種程度上「特殊」,因爲它可以詢問您是否要更改設置。沒有理由爲什麼一個定製的應用程序不能這樣做。

@msbg,因爲你評論那裏,你可能已經發現你的答案在how do i change default browser using c# or batch file

還有在How to find all the browsers installed on a machine另一個答案是指http://msdn.microsoft.com/en-us/library/dd203067%28VS.85%29.aspx

相關問題