[python] Jak zavrit okno prohlizece?

Petr Prikryl Prikryl na skil.cz
Pondělí Únor 21 08:19:25 CET 2005


Petr Podany napsal...
> otevru prohlizec pomoci funkce 
> webbrowser.open_new(URL) a potreboval
> bych to okno po nejake dobe zavrit, 
> jenze nemuzu najit funkci, kterou
> bych to mohl zavrit? Je to pro Win - XP.

Stručně: Taková funkce neexistuje.

Podrobněji...

Problém spočívá v tom, že se neví, co 
by se mělo zavřít. Při otevření prohlížeče
se spouští "nějaká" aplikace, které se 
předhodí URL. Prakticky vždy chci spustit
grafický prohlížeč, který má své okno
a od okamžiku spuštění běží paralelně
s pythonovskou aplikací. Vazba na spuštěnou
aplikaci se nevrací.

V MS Windows se browser spouští v podstatě
voláním os.startfile(), která je implementována
voláním systémové funkce ShellExec(). Té se 
předhodí zadané URL. Systém už se postará
o ostatní. Rozpozná, že jde o URL a spustí
default prohlížeč. Předem se neví, co to 
bude za aplikaci, protože jako default můžu
mít ve Windows prohlížeč dle vlastního vkusu.

Implementovaný způsob otvírání webovského prohlížeče
je dokonce ještě obecnější v tom smyslu, že
ShelExec() při stejném způsobu volání 
provádí rozpoznávání přípony předaného 
souboru a spustí aplikaci, která je přidružena
k zadané příponě a k operaci "open".
 
Zkus

>>> import webbrowser
>>> webbrowser.open_new('mujDokument.doc')

Pokud je systém instalován podle představ
Microsoftu, spustí se MS Word. V Unixu se to
bude chovat trochu jinak. (Pro spouštění Wordu 
je ale stejně lepší používat přímo 
os.startfile('mujDokument.doc').)

Petr

-- 
Petr Prikryl (prikrylp at skil dot cz) 



Další informace o konferenci Python