Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Delphi
Otevírání externích programů
4. června 2001, 00.00 | Chtěli jste někdy otevřít textový soubor ve vámi zadaném editoru z vašich Delphi aplikací? Chtěli jste otevřít prohlížeč s vaší www stránkou? Jestli ano, přečtěte si tento článek.
Úvod
Málokdy při vytváření programů budete používat jen tu svoji aplikaci, aniž byste potřebovali zobrazit textový soubor s napovědou v poznámkovém bloku. Kolikrát už jste chtěli otevřít nějaký program ze své Delphi aplikace? Kolikrát jste si přáli, aby se při kliknutí na obrázek ve vašem programu spustil prohlížeč s Vámi zadanou internetovou adresou? V tomto článku si ukážeme jak tohle všechno provést a ještě něco navíc.
ShellExecute
Dnes Vám ukáži, jak spouštet externí programy z Vašich Delphi aplikací. K tomu budeme potřebovat Win32 API funkci ShellExecute(). Pro používání této funkce je třeba přidat unitu ShellApi do klauzule uses v části interface. ShellExecute má mnoho možností využití. Můžete spouštět jak samotné programy, tak také programy s parametrem. Tím parametrem může být jméno souboru nebo www adresa, kterou chcete zobrazit v internetovém prohlížeči. Tím možnosti této funkce samozřejmě nekončí. ShellExecute umožňuje otevření e-mailového klienta s předem vyplněnou adresou, tělem a předmětem. Nebo můžete spustit aplikaci a počkat na její ukončení.
|
A takhle spustíte soubor textovysoubor.txt v notepadu :
|
Vypíše obsah adresáře:
|
Tímto způsobem otevřete soubor nejakytext.doc ve svém textovém editoru, který máte nastavený pro otevírání souborů s příponou .doc :
|
Pokud chcete otevřít internetový prohlížeč s určtou adresu, tak to musíte udělat takto:
|
A takto pošlete e-mail pomocí Win32 API funkce ShellExecute :
|
Má to ale jednu nevýhodu, funkce ShellExecute() spustí MS
Outlook a teprve z něj e-mail odešlete. Možná by bylo výhodnější použít
komponenty NMSMTP ze záložky FastNet (Delphi 5) způsobem, který jsem popsal ve svém
předchozím článku (Posílání e-mailů a SMS).
Ale co když potřebujeme spustit externí aplikaci a pokračovat v
provádění kódu po jejím ukončení? I to je s funkcí ShellExecute()
možné. Zde uvádím příklad, jak by se to dalo vyřešit:
|
Ješte bych se rád stručně zmínil o spouštění programu v 16-ti bitových Delphi aplikacích. K tomu se využívá funkceWinExec() a její používání je obdobné jako ShellExecute.
|
Závěr
Jak je vidět, spouštení externích programů z Delphi aplikaci není nic složitého. Funkce ShellExecute() muže velice dobře pomoci při řízení spolupráce mezi dvěma programy. Možná se Vám to bude hodit do vašeho freewarového programu s bannerovou reklamou, nebo do vašeho souborového manažeru.
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007