![Manera completa de lanzar una página web](https://rvso.com/image/1654377/Manera%20completa%20de%20lanzar%20una%20p%C3%A1gina%20web.png)
En mi máquina (Windows 10), tengo un usuario administrativo y un usuario estándar.
Ejecuto Chrome en mi cuenta de usuario administrativo. Luego bloqueo mi cuenta e inicio sesión en mi cuenta de usuario estándar. Luego ejecuto cmd como administrador y aparece UAC. Cuando ejecuto Chrome (inicio Chrome), no sucede nada. Adjunté un seguimiento de la pila a continuación desde --enable-logging --v=1. Todavía puedo iniciar Chrome cuando ejecuto cmd sin privilegios elevados como usuario estándar.
[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.
Desde un nivel alto, necesito una forma completa de iniciar una página web. Obviamente, los usuarios utilizan muchos navegadores, por lo que una solución exclusiva para Chrome no es viable. Estoy iniciando mi página web desde cmd usando iniciohttps://www.stackoverflow.com/. Tengo entendido que se utiliza el navegador predeterminado (que en mi ejemplo reproducible es Chrome)
Un caso de uso del mundo real es que el usuario estándar instala algún software. El instalador de software utiliza UAC para ejecutarse con privilegios de administrador, por lo que ahora el instalador se ejecuta con la cuenta de usuario administrativo. El instalador inicia una página web que detalla información sobre el software. En realidad, la página web no se inicia porque el usuario administrativo dejó Chrome abierto en su cuenta de Windows. Así que este es un caso extremo que ni siquiera es aplicable a la mayoría de las máquinas con una sola cuenta de Windows.
Respuesta1
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)