Mafia II

Interakce webových stránek s aplikací ve Windows

Červenec 18th, 2007

Web v posledních letech zažívá velký rozmach hlavně co se počtu aplikací a způsobů použití týká. Nicméně stále je spousta akcí, na které je nutné spouštět aplikace na klientském PC (příkladem může být aplikace zprostředkující vkládání obrázků na server přímo ze schránky – je to vhodné pro administrační systémy a podobné případy, kdy máme možnost klientovi do PC nainstalovat náš program).

Otázkou ale zůstává, jak libovolný prohlížeč donutit spustit právě naši aplikaci s danými parametry. Odpověď je jednoduchá, přesto však ne každý ví jak to provézt – zaregistrujeme ve Windows vlastní „protokol“ a nasměrujeme jeho zpracování na naší aplikaci. Tento postup není nijak komplikovaný a jediné co potřebujeme je textový editor, administrátorská práva a onu aplikaci která bude požadavky zpracovávat…

Praktický příklad

Představte si modelovou situaci, kdy se po kliknutí na odkaz v libovolném webovém prohlížeči (nebo e-mailu) otevře vždy Internet Explorer se zadanou adresou. Vytvoříme si tedy protokol „ieopen://“ kterému budeme předávat celou adresu, tedy formát zadání bude například: „ieopen://http:/­/blog.red-pill.cz/“. Napřed tedy v registrech Windows založíme onen protokol a nasměrujeme ho na aplikaci „c:\Program Files\IEopen\i­eopen.exe“ (při hromadném použití by toto měl do registrů vkládat instalátor podle cesty do které uživatel program instaluje). Lepší je podle mě vytvářet .reg soubory a ty zavádět do registru celé, všechny údaje tak máme ke kontrole připravené před sebou ještě před samotným zápisem. Do souboru protokol.reg vložím zapíšu následující.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_RO­OT\ieopen] @=„URL:IE Open Protocol“ „URL Protocol“=""

[HKEY_CLASSES_RO­OT\ieopen\she­ll]

[HKEY_CLASSES_RO­OT\ieopen\she­ll\open]

[HKEY_CLASSES_RO­OT\ieopen\she­ll\open\comman­d]

@=„c:\\Program Files\\IEopen\\i­eopen.exe %1“

Všimněte si že zpětná lomítka v cestě jsou zdvojená a že se programu předává parametr %1 který obsahuje onu námi zadanou adresu (včetně ieopen:// na začátku!).

Následuje napsání jednoduché aplikace, která url převezme z parametru a spustí v Internet Exploreru. Zdrojový kód v Delphi může vypadat například takto:

program ieopen;

uses
Windows, SysUtils, Dialogs, ShellApi;

{$R *.res}

var
URL: String;

begin
URL := ParamStr(1);

if (StrLen(PChar­(URL))>9) then
begin
URL := Copy(Url, 10, StrLen(PChar(URL))-9);
ShellExecute(0, nil, ‚iexplore.exe‘, PChar(URL), nil, sw_show);
end;

end.

Po instalaci aplikace do správného adresáře a vložení informací do registru se při zadání ieopen:// a adresy vždy spustí pouze Internet Explorer s danou stránkou, vyzkoušet to můžete zde ;o)

Tento postup je vhodný zejména ke spouštění administrativních aplikací, usnadňování práce či technické podpory ve společnostech (například odeslání snímku obrazovky či přizvání it-technika k vzdálené pomoci přímo z intranetu či emailu), ale své uplatnění najde i při spouštění her herních klientů (kdy je například seznam serverů na stránce a po rozklepnutí je ihned spuštěna hra a připojena ke správné adrese) a podobně.

Na závěr přikládám .reg soubor, zdrojové kódy i zkompilovanou aplikaci. Snad vám tento jednoduchý návod pomůže ;o)
DOWNLOAD

Petr

2 Responses to “Interakce webových stránek s aplikací ve Windows”

  1. Gringo Says:

    A co kdyby někdo chtěl otevřít adresu ieopen://http://blog.red-pill.cz/?

  2. Gringo Says:

    Jej, chybka, myslel jsem
    ieopen://ieopen://ieopen://http://blog.red-pill.cz/

Vložty komentář