回答編集履歴

1

Update

2022/02/15 03:40

投稿

melian
melian

スコア21109

test CHANGED
@@ -13,9 +13,27 @@
13
13
  "netscape", "opera", iexplore):
14
14
  if shutil.which(browser):
15
15
  register(browser, None, BackgroundBrowser(browser))
16
+
17
+ :
18
+
19
+ #
20
+ # Platform support for Windows
21
+ #
22
+ if sys.platform[:3] == "win":
23
+ class WindowsDefault(BaseBrowser):
24
+ def open(self, url, new=0, autoraise=True):
25
+ sys.audit("webbrowser.open", url)
26
+ try:
27
+ os.startfile(url)
28
+ except OSError:
29
+ # [Error 22] No application is associated with the specified
30
+ # file for this operation: '<URL>'
31
+ return False
32
+ else:
33
+ return True
16
34
  ```
17
35
 
18
- 最初に `register("windows-default", WindowsDefault)` があるので、既定のプログラムが設定されている場合にローカルな HTML ファイルを指定すると html編集ソフトが立ち上がってしまうのだと思います。
36
+ 最初に `register("windows-default", WindowsDefault)` があって `os.startfile(url)` で指定した URL をオープンしているので、既定のプログラムが設定されている場合にローカルな HTML ファイルを指定すると html編集ソフトが立ち上がってしまうのだと思います。
19
37
 
20
38
  Windows の場合、「既定のブラウザ」をレジストリから取得できるはずなので、以下の様にすると期待通りの結果になるかもしれません。よろしければ試してみて下さい。
21
39
  ```python