Redirect To Default Browser
※注意※
2021/12/19現在、12/14公開のWindows 10 KB5008212及びWindows 11 KB5008215の適用後にmicrosoft-edgeスキームを使用したリダイレクトに対策がなされました。 そのため、Windows 10及びWindows 11において本アプリケーションは期待通りに動作しません。 現時点では未適用のユーザーのためストアのページは残しますが、ストアでの検索によるアプリページの表示は行えないようにしてあります。
これに対応する修正プログラムをこちらで公開中です。
過去の対応
単純なWindows Storeアプリケーションとして一定の品質を持って動作するものの作成は、権限としては不可能ではないが、かなりの手間がかかることが判明しました。 そのため、ユーザー権限のみを使用するアプリケーションの開発は中止し、管理者権限の必要なアプリケーションとしての開発を行うこととしました。 詳細はこちら。
今後、Windows Storeで提供できる権限、ポリシーの範囲内で提供ができないか検討はしていますが、現時点では可能か分からない上、リアルでの多忙もあり年度中での更新はまず不可能と思われます。
頻繁に使用する方は別作者の同等機能を持つツールの利用もご検討ください。
2021/11/12現在、Windows 11 Insider Preview build 22494においてmicrosoft-edgeスキームを使用したリダイレクトに関し、対策がなされました。
そのため、Windows 11の更新によっては本アプリケーションが期待通りに動作しなくなる可能性があります。
なにこれ
Windows 10の一部アプリケーション はウェブサイトを開く際、既定のアプリに関係なくMicrosoft Edgeを使用します。 このアプリはこの挙動に割り込み既定のブラウザで開くことができるアプリです。
対応環境・アプリ
Windows 10 バージョン1803以降のCortanaやタスクバーの検索
配布ページ
Microsoft Storeで配布しています。
バージョン履歴
1.0.0.0
- 初回リリース
- 特記事項無し
1.1.0.0
- アイコン
- アイコンの見た目のサイズ調整
- Windows 19H1向けの白背景アイコンの追加
(現時点ではタスクバー位しか用途が) - プログラム自体のアイコンを複数サイズに対応
- 機能強化
- 設定ファイルをUWPの機能を使用するように
- エラー時に開こうとしたURLをクリップボードに保存できるように
- バグ修正
- ブラウザで開ける状態にあるかのチェックを強化
- アプリ内のハイパーリンクを開いた際にプログラムが異常終了することがあるのを修正
2.0.0.0
- UIが
無駄にモダン化 - 全体のリダイレクトテスト機能が追加
- アプリ側に多少の情報はこのWebサイトみたいに載せるように
- Acrylic Blur(すりガラスっぽいやつ)やにも対応
- 完全なFluent Design対応は暇になってもたぶんやらない(特にTitleBar周りでアニメーションさせにくい)
- 見た目はたぶん大切
- Chromium Edge(新しいEdge)関係の不具合
- Edge HTML(旧Edge)を名指しで起動していたのに関連する不具合を修正
- 今後、前回のURIをEdgeで開きなおす際、ユーザが開くEdgeを選択することになります
2.2.0.0
- 修正パッチへの対応
- (コマンド「JukusuiR2DB.exe」での起動に対応)
- 要パッチなことを明記
なにをしているの
普通にブラウザを開く際は、「http:」や「https:」といったURLスキーム(Windowsの設定ではプロトコルと呼ばれている)を使います。
それに対し、「microsoft-edge:」を使用することで、Edgeを指名して開くことができます。
Cortanaなどのアプリが「microsoft-edge:」から始まるURIを使用して、Edgeを名乗るブラウザを起動するようになっています。
このアプリは後者でEdgeの代わりに呼び出されるように設定されることで動作し、microsoft-edgeのスキームを通常のhttpやhttpsのURLに変換した上で既定のブラウザで開くことができます。
呼び出された時に起動し、ブラウザを起動してすぐ終了するという動きを毎回行うため、シンプル(常駐やブラウザ拡張比)ながら安定した(DLL Injection比)動作ができます。
Q&A
- Q: Edgeが起動する
-
以下のことを確認して下さい。
-
スタートメニューの全てのアプリケーションに「RedirectToDefaultBrowser」が存在するか確認
→ない場合、インストールされていません。 -
スタートメニューから「RedirectToDefaultBrowser」を開き、ウェブページ(画面下部)を開いて何のブラウザが開くか確認
→Edgeだった場合、既定のアプリのWebブラウザがEdgeになっています。設定の「アプリ/既定のアプリ」で変更して下さい。 -
ファイル名を指定して実行(Win + R)に「microsoft-edge:?url=https://www.jukusui.net」を入力してEdgeが開くか確認
→希望のブラウザで「開いた」場合、起動元のアプリに対応していません。お問合せください。 -
設定の「アプリ/既定のアプリ/プロトコルごとに既定のアプリを選ぶ/MICROSOFT-EDGE」が「RedirectToDefaultBrowser」か確認
→違う場合、設定してください -
インストールやリダイレクトの設定からまだ一度もPCを再起動していない
→一度再起動してみてください。(一部のCortanaでの症例)
-
スタートメニューの全てのアプリケーションに「RedirectToDefaultBrowser」が存在するか確認
- Q: CortanaからURLを開く際「パッケージIDがなんたら」というエラーが出る
- Windows 10 バージョン1803より前の環境で確認した既知の不具合です。 正直、こっち側の問題ではなさそうなので直せません。 OSをバージョンアップすれば直るはずです。 もしも、アップデートしてもこのエラーが出た場合、お問合せください。
- Q: 起動しない。もしくはエラーが出る
- こちらのページに従って、お問合せください。
- Q: リダイレクトの詳しい情報
-
リダイレクトは.Net Framework標準の正規表現ライブラリを使用して置き換えを行っています。
正規表現では入力文字列、入力パターン、(と出力パターン)が与えられたとき、入力パターンに入力文字列が合致するかを探すことができます。
Microsoftのこのページが分かりやすいです。
下に例を挙げますが、さらに調整するのならば上のページを見ながらいじると良いでしょう。
検索エンジンを変更する例- 入力パターン(共通)→
^https?://www\.bing\.com/search\?(|.*?&)q=(.*?)(&.*|)$
- 出力パターン(Wikipedia)→
https://ja.wikipedia.org/w/index.php?search=$2
- 出力パターン(Google)→
https://www.google.co.jp/search?q=$2
- 出力パターン(Yahoo)→
https://search.yahoo.co.jp/search?q=$2
^
文字列の先頭- http
s?
「s」があるかないかのいずれか- ://www
\.
「.」の入力は「\」とセットにする必要がある(エスケープ)- bing
\.
同上- com
\.
同上- search
\?
「?」の入力にも「\」が必要- bing
-
(|.*&)
空かURIクエリの区切り文字の「&」があるまで。これは(aaa|bbb|...)
のように()で括って「|」で区切るといずれかにマッチすればいいという意味(|
のように始まるので空の場合と|.*&)
で終わるので「.*&」にマッチするという意味.
は好きな文字を意味し*?
前のパターン(ここでは「.」)を好きな長さ(0以上)、なるべく短いマッチを探そうとする(これが?無しだと二番目以降のqにマッチすることがある).*&
で何らかの文字列の後、「&」が来るという意味
- q=
-
(.*?)
最短の好きな文字列とのマッチを無名で保存.*?
上同様、マッチする最短の文字列という意味(aaa)
括弧自体には値をコピーして出力で使うための機能もあり、これは二番目の括弧なので$2で参照できる
-
(&.*|)
「(|.*&)」と順番が逆なだけでほぼ同じことだが.*
?の付かない*はなるべく長いマッチを探そうとする
$
文字列の最後にマッチする
$2
を入れればOK。二番目の括弧の中身が入れられる。 - 入力パターン(共通)→
注意点
このアプリを利用した上で生じた損害を一切保証しません。 また、元々Edgeで開かれる予定であったURLをあなたの選択した既定のブラウザで開くため、開かれたページにおいて何らかの不具合が生じる可能性、ブラウザに個人情報等が渡る可能性があることを十分留意してください。
プライバシーポリシー
このアプリは最後に起動した際のURLをローカルに保持します。それ以外の動作の上で知り得た情報(URLなど)を記録は行いません。 また、デフォルトに指定されたブラウザとEdgeブラウザ以外のアプリケーションには情報を渡しません。 さらに、URLで指定されたサーバー以外には情報をネットワークに送信することはありません。
なお、スタートメニューで右クリックした際に、最近の記録として複数回のURLを保存されているようですが、アプリケーション側から操作等は行っていません。