開始 > 設定 > 應用程式 > 左邊 預設應用程式 > 網頁瀏覽器 ....相信您已經試過了XD
先決定好你要觸發你寫的程式條件為何。
一般來說,都是副檔名為主。
正常來說,其它人說的方式就是為了這個目的而設定的。
可是照你後面的回答。你是想要用你的小程式來去另開瀏覽器。
這一般來說,還是需要先將你的預設瀏覽器改成你的。
所謂「預設瀏覽器」並非是一個軟體。只是一個設定。
而設定的觸發條件,就是所有跟網頁有關的副檔名。
so.....
除非你能找到你想要的觸發條件為何。要不然你找不到我也無解。
對了,如果你只是單純想要更換。有幾招可以給你。
1.是用註冊表。建立一個更新的註冊表。將你的小瀏覽器程式放到一個固定的地方。如c:\windows。將用註冊表的方式來統一處理。
2.寫一個shell來處理。
所以win10預設應用程式的觸發條件就是跟網頁有關的副檔名(ex. html, mhtml等等,接下來就不清楚了),那我自己再找看看。
另外,方法1的註冊表我不太清楚,可以再解釋一下嗎?
等等,方法1是上一樓給的連結中的辦法?
是的
言下之意。你似乎是將「預設瀏覽器」當成一個應用的感覺了。
畢竟你說出了「所以win10預設應用程式的觸發條件就是跟網頁有關的副檔名...」
其中認為是win10的特性意味。也就是代表說,你不懂得這些都是觸發性。
只認為是指定性應用??
快點去認知好這件事吧。我看你一直認為有其它可以「指定性」的方法在找尋方法。講真的有點無奈就是了。
註冊表的方式其實也是調整設定。只是註冊表方便一次全設定。
本質還是沒變。
無論任何系統,包含linux、mac等等。所謂的「預設瀏覽器」全都是mimetype的特性原理。去設定觸發的。
這並非是win10獨有的。這是一種原理
以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
不過在Windows 10還有另一套機制去決定網頁預設瀏覽器
開始 -> 設定 -> 應用程式 -> 預設應用程式 -> 網頁瀏覽器
這套機制我也沒搞懂它把設定紀錄在哪裡?
我發現在這裡
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice
我更改設定,這裡也會改成我設的瀏覽器
只是接下來就不清楚該怎樣改了
當設為Chrome,Progld=ChromeHTML
設為Firefox,Progld=FirefoxHTML-308046B0AF4A39CB
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有哪些?
謝謝你的回答,我會再嘗試看看
另外那個Hash是用在哪裡?我需要注意Hash嗎
我找到解方了。
我是參考自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就能讓自訂的瀏覽器出現在系統預設程式的清單中,之後就能手動設定預設瀏覽器為自訂的瀏覽器了。