ウェブページを立ち上げる完全な方法

ウェブページを立ち上げる完全な方法

私のマシン (Windows 10) には、管理ユーザーが 1 人、標準ユーザーが 1 人います。

管理者ユーザー アカウントで Chrome を起動します。次に、アカウントをロックし、標準ユーザー アカウントにログインします。次に、管理者として cmd を実行すると、UAC のプロンプトが表示されます。Chrome を起動 (Chrome を起動) しても何も起こりません。以下に、--enable-logging --v=1 からのスタック トレースを添付しました。標準ユーザーとして昇格された権限なしで cmd を実行すると、Chrome を起動できます。

[1044:4904:0723/141901.799:ERROR:disk_cache.cc(184)] Unable to create cache
[1044:4904:0723/141901.799:ERROR:shader_disk_cache.cc(606)] Shader Cache Creation failed: -2
[1044:10988:0723/141901.800:ERROR:process_singleton_win.cc(411)] Lock file can not be created! Error code: 32
[1044:10988:0723/141901.800:ERROR:chrome_browser_main.cc(1292)] Failed to create a ProcessSingleton for your profile directory. This means that running multiple instances would start multiple browser processes rather than opening a new window in the existing process. Aborting now to avoid profile corruption.

高いレベルでは、Webページを起動するための完全な方法が必要です。明らかにユーザーは多くのブラウザを使用しているため、Chromeのみのソリューションは実行可能ではありません。私はスタートを使用してcmdからWebページを起動しています。https://www.stackoverflow.com/デフォルトのブラウザが使用されていると理解しています(再現可能な例ではChromeです)

実際の使用例としては、標準ユーザーが何らかのソフトウェアをインストールすることが挙げられます。ソフトウェア インストーラーは UAC を使用して管理者権限で実行されるため、インストーラーは管理者ユーザー アカウントで実行されます。インストーラーは、ソフトウェアに関する詳細情報を示す Web ページを起動します。管理者ユーザーが Windows アカウントで Chrome を開いたままにしているため、Web ページは実際には起動しません。したがって、これは単一の Windows アカウントを持つほとんどのマシンには当てはまらないエッジ ケースです。

答え1

import subprocess
url = "https://stackoverflow.com/"
args = ["start", "/wait", url, "&", "exit", "/b", "%errorlevel"]
completed = subprocess.run(args, stdout=subprocess.PIPE, shell=True)
print("exit status", completed.returncode)

関連情報