iT邦幫忙

1

如何變更系統預設瀏覽器為自己寫的程式

  • 分享至 

  • xImage

各位好:
小弟最近寫了一個小瀏覽器(並沒有安裝在電腦,只是個獨立的程式),想問一下要怎麼樣在Windows 10中把預設瀏覽器設置成我寫的瀏覽器? 謝謝


補充:
不好意思沒說明清楚,我的另一個程式會呼叫系統的預設瀏覽器並開啟特定網頁瀏覽,那我是希望把這個預設瀏覽器設置成我寫的瀏覽器,不是把特定檔案的預設開啟程式變成我的瀏覽器。

cyc0713 iT邦新手 5 級 ‧ 2020-03-13 17:18:54 檢舉
test
cyc0713 iT邦新手 5 級 ‧ 2020-03-13 17:20:26 檢舉
1. 控制台>>預設程式
2. 檔案總管>>右鍵>>開啟...>>選其他程式
b4106702 iT邦新手 5 級 ‧ 2020-03-13 18:25:02 檢舉
不好意思沒說明清楚,可以再麻煩您看一次問題嗎?
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
舜~
iT邦高手 1 級 ‧ 2020-03-13 17:33:37

開始 > 設定 > 應用程式 > 左邊 預設應用程式 > 網頁瀏覽器 ....相信您已經試過了XD

如何通過登錄檔修改預設程式

b4106702 iT邦新手 5 級 ‧ 2020-03-13 18:20:09 檢舉

mmm,其實我另一個程式會呼叫系統的預設瀏覽器並開啟網頁,那我想要把這個預設瀏覽器設置成我寫的小瀏覽器,而不是這種為特定檔案設定預設開啟軟體

1

先決定好你要觸發你寫的程式條件為何。
一般來說,都是副檔名為主。

正常來說,其它人說的方式就是為了這個目的而設定的。

可是照你後面的回答。你是想要用你的小程式來去另開瀏覽器。
這一般來說,還是需要先將你的預設瀏覽器改成你的。
所謂「預設瀏覽器」並非是一個軟體。只是一個設定。
而設定的觸發條件,就是所有跟網頁有關的副檔名。

so.....
除非你能找到你想要的觸發條件為何。要不然你找不到我也無解。

對了,如果你只是單純想要更換。有幾招可以給你。

1.是用註冊表。建立一個更新的註冊表。將你的小瀏覽器程式放到一個固定的地方。如c:\windows。將用註冊表的方式來統一處理。

2.寫一個shell來處理。

b4106702 iT邦新手 5 級 ‧ 2020-03-13 20:01:05 檢舉

所以win10預設應用程式的觸發條件就是跟網頁有關的副檔名(ex. html, mhtml等等,接下來就不清楚了),那我自己再找看看。

另外,方法1的註冊表我不太清楚,可以再解釋一下嗎?

b4106702 iT邦新手 5 級 ‧ 2020-03-13 23:15:00 檢舉

等等,方法1是上一樓給的連結中的辦法?

是的
言下之意。你似乎是將「預設瀏覽器」當成一個應用的感覺了。
畢竟你說出了「所以win10預設應用程式的觸發條件就是跟網頁有關的副檔名...」
其中認為是win10的特性意味。也就是代表說,你不懂得這些都是觸發性。
只認為是指定性應用??

快點去認知好這件事吧。我看你一直認為有其它可以「指定性」的方法在找尋方法。講真的有點無奈就是了。

註冊表的方式其實也是調整設定。只是註冊表方便一次全設定。
本質還是沒變。

無論任何系統,包含linux、mac等等。所謂的「預設瀏覽器」全都是mimetype的特性原理。去設定觸發的。
這並非是win10獨有的。這是一種原理

0
player
iT邦大師 1 級 ‧ 2020-03-14 19:09:21

以Windows為例
你的問題
依Uri分成Scheme (http與 https)與 副檔名 (.htm 或 .html 或 .xhtml) 這兩大類
如果要寫程式去改,要改的地方可多囉
請在Windows執行 regedit
把HKEY_CLASSES_ROOT點開來看

HKEY_CLASSES_ROOT\.html
預設值是 htmlfile
再去看
HKEY_CLASSES_ROOT\htmlfile\shell\open\command
例如預設值是 "C:\Program Files\Internet Explorer\iexplore.exe" %1
代表 .html 這個副檔名預設用Internet Explorer的iexplore.exe去開啟

HKEY_CLASSES_ROOT\http\shell\open\command
例如預設值是 "C:\Program Files\Internet Explorer\iexplore.exe" %1
代表 http 這個通訊協定預設用Internet Explorer的iexplore.exe去開啟

至於修改登錄檔的方法很多種
最簡單的方法是用 regedit 匯出
你修改 .reg 檔後再拿到你要改的那台電腦再匯入
(請自行先把多個 .reg 整合成一個)

不過在Windows 10還有另一套機制去決定網頁預設瀏覽器
開始 -> 設定 -> 應用程式 -> 預設應用程式 -> 網頁瀏覽器

這套機制我也沒搞懂它把設定紀錄在哪裡?
orz

看更多先前的回應...收起先前的回應...
b4106702 iT邦新手 5 級 ‧ 2020-03-14 20:50:39 檢舉

不過在Windows 10還有另一套機制去決定網頁預設瀏覽器
開始 -> 設定 -> 應用程式 -> 預設應用程式 -> 網頁瀏覽器
這套機制我也沒搞懂它把設定紀錄在哪裡?

我發現在這裡
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice
我更改設定,這裡也會改成我設的瀏覽器

只是接下來就不清楚該怎樣改了
當設為Chrome,Progld=ChromeHTML
設為Firefox,Progld=FirefoxHTML-308046B0AF4A39CB

player iT邦大師 1 級 ‧ 2020-03-14 22:24:17 檢舉

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice
的 Hash 與 ProgId
ProgId 是 FirefoxURL-308046B0AF4A39CB 的話
對應到
HKEY_CLASSES_ROOT\FirefoxURL-308046B0AF4A39CB\shell\open\command
預設值 "C:\Program Files\Mozilla Firefox\firefox.exe" -osint -url "%1"

依此類推
可能得一個一個試才知道ProgId有哪些?

b4106702 iT邦新手 5 級 ‧ 2020-03-14 23:47:14 檢舉

謝謝你的回答,我會再嘗試看看
另外那個Hash是用在哪裡?我需要注意Hash嗎

b4106702 iT邦新手 5 級 ‧ 2020-03-20 15:24:41 檢舉

我找到解方了。
我是參考自https://stackoverflow.com/questions/50158532/registering-a-java-application-as-the-default-browser-in-windows-10?noredirect=1&lq=1
如果瀏覽器程式放在桌面的話,下面是安裝跟解除安裝的bat檔
install.bat

@echo off
reg add HKLM\SOFTWARE\RegisteredApplications /v "My Browser" /t REG_SZ /d "Software\Clients\StartMenuInternet\My Browser\Capabilities"
reg add "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser\Capabilities" /v ApplicationDescription /t REG_SZ /d "It is a test browser"
reg add "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser\Capabilities" /v ApplicationIcon /t REG_SZ /d C:\Users\user\Desktop\MyBrowser.exe,0
reg add "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser\Capabilities" /v ApplicationName /t REG_SZ /d "My Browser"
reg add "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser\Capabilities\URLAssociations" /v http /t REG_SZ /d TestBrowser
reg add "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser\Capabilities\URLAssociations" /v https /t REG_SZ /d TestBrowser
reg add "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser\DefaultIcon" /ve /t REG_SZ /d C:\Users\user\Desktop\MyBrowser.exe,0
reg add "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser\shell\open\command" /ve /t REG_SZ /d C:\Users\user\Desktop\MyBrowser.exe
reg add HKLM\SOFTWARE\Classes\TestBrowser\DefaultIcon /ve /t REG_SZ /d C:\Users\user\Desktop\MyBrowser.exe,0
reg add HKLM\SOFTWARE\Classes\TestBrowser\shell\open\command /ve /t REG_SZ /d "\"C:\Users\user\Desktop\MyBrowser.exe\" \"%%1\""
pause

uninstall.bat

@echo off
reg delete "HKLM\SOFTWARE\Clients\StartMenuInternet\My Browser" /f
reg delete HKLM\SOFTWARE\Classes\TestBrowser /f
reg delete HKLM\SOFTWARE\RegisteredApplications /v "My Browser" /f
pause

以系統權限執行install.bat就能讓自訂的瀏覽器出現在系統預設程式的清單中,之後就能手動設定預設瀏覽器為自訂的瀏覽器了。

我要發表回答

立即登入回答