Co znamenají ty zvláštní pojmy ActiveX a Win32API? K čemu mi to je dobré a jak to můžu použít? Více v článku ...
V programování pro Windows nemají vývojáři k dispozici jen syntaxe daného jazyka, ale řadu dalších komponent obsažených již v Systému nebo v systémových souborech DLL (Dynamické knihovny) a OCX (Objekty ActiveX). Takové Ovládací prvky a Funkce jsou pak přístupné každému jazyku.
ActiveX
jsou to komponenty (většinou Ovládací prvky - Objekty), které (pokud jsou zaregistrované v Systému) můžete využívat jako klasické Objekty z VB (ty jsou vlastně také Objekty ActiveX). Rovnou si to ukážeme na příkladě: Chcete-li přidat tyto objekty do IDE Visual Basicu, klepněte pravým tlačítkem myši na Nástrojovou lištu (ToolBox), v plovoucí nabídce vyberte Components... a všechny (nainstalované) ActiveX prvky máte před sebou. Použití těchto Objektů je stejně snadné, jako použití standardních prvků jako třeba Textové pole.
Pro ukázku typického ActiveX objektu si ukážeme Prohlížeč sítě WWW od Microsoftu, který je využíván samotným Internet Explorerem. (To, že IE zabírá tak málo místa je klamné, protože teprve vlastní HTML překladač sídlící v Systému zabírá asi 50MB.) Tedy v seznamu si najděte položku Microsoft Internet Controls, zaškrtněte a potvrďte Ok. V Nástrojové liště by se měla objevit ikonka zeměkoule. Vložit Objekt WebBrowser na Formulář zvládne každý :-). Roztáhněte WebBrowser do krajů Formuláře, do procedury Form_Load() zadejte:
WebBrowser1.Navigate "http://www.mujchat.cz/qpress"
a spusťte Projekt (F5). Pokud jste zrovna připojeni k Internetu, zobrazí se vám Speed Express, v opačném případě prohlížeč zobrazí známou stránku, že požadovaný dokument nebyl nalezen :-). Když si s WebBrowserem budete chvíli hrát, zjistíte, že váš program může reagovat na změnu Titulku stránky (Procedura Title_Change()) a řadu dalších věcí, ale nejsem tu přece od toho, abych vás učil, jak pracovat s WebBrowserem, tento Projekt v pokročilejším stádiu si můžete stáhnout na adrese http://ts.euweb.cz/vb/webbrowser.zip.
Pokud jste šťastnými vlastníky VB6 Professional Edition, můžete si vytvářet i vlastní ActiveX komponenty. Více se o této technologii zmiňovat nebudu, protože to ani není potřeba (a já toho tolik zase také nevím).
Win32API
tato technologie, jak již sám název napovídá, je přístupná ve Win32 prostředí (pozn.: jiné OS mají také své API). API (Aplikační Programové Rozhraní) jsou Funkce Operačního systému obsažené v Dynamických knihovnách (DLL). Jejich použití je víceméně jednoduché: voláte určitou Funkci z určité knihovny (a samozřejmě) s nějakými parametry. Pokud je volaná knihovna obsažena přímo ve Windows (Kernel32, User32, Rundll32, ...), stačí použít pouze její název, ale pokud máte knihovnu od jiného autora (ne-li vlastní), nejjistější je, umístit ji do adresáře programu, protože je třeba zadat její cestu. Ta může být i relativní, tudíž v našem případě stačí zapsat jen název souboru. API Funkce se deklarují (definují) v deklarační části Modulu nebo Formuláře.
Příklad deklarace:
API Funkce ze Systémové knihovny:
Private Declare Function NazevFunkce Lib "Knihovna32" (ByVal Argument1 As Typ, ByVal Argument2 As Typ) As TypNavratoveHodnoty
API Funkce z jiné knihovny:
Private Declare Function NazevFunkce Lib "Knihovna.dll" (ByVal Argument1 As Typ, ByVal Argument2 As Typ) As TypNavratoveHodnoty
Poznámka: při deklaraci v Modulu můžete vynechat "Private"
Volání Funkcí API za běhu programu je úplně stejné, jako volání obyčejných Funkcí VB (či vlastních).
Příklad použití API v praxi vám ukážu na Funkcích sloužících k práci se soubory typu INI (o tom jsem se zmiňoval v minulém díle) a jelikož by výpis kódu tohoto Projektu byl příliš zdlouhavý a nudný, opět jsem jej pro vás připravil ke stažení: http://ts.euweb.cz/vb/ini-files.zip. Všechny poznámky ke kódu jsou obsaženy v Projektu.
API Funkcí je nepřeberné množství, jejich výpis a Syntaxe najdete v programu API-Viewer, který je součástí Visual Studia 6.0 Profesional Edition, tedy pokud máte Profesional edici Visual Basicu, máte také tento prohlížeč. Výklad o rozhraní Win32API najdete i ve stejnojmenné příručče od Grada Publishing, jen je problém, že veškerá dokumentace k tomuto rozhraní je pro jazyk C++ a pro VB možná ani ne v Angličtině. Určitě vás napadají otázky, k čemu všemu lze API využít. To je trochu moc i na mě. Jednu API je možné využít u několika operací, ale jsou i takové, které mají jednoznačný úkol (např.: zobrazení/skrytí Formulářů jiného programu). Jak jsem se již dříve zmiňoval, existují Funkce, pomocí kterých můžete: odhlásit uživatele, restartovat počítač nebo ho i vypnout; vytvářet Formuláře všelijakých tvarů; schovávat Plochu nebo lištu Start; blokovat přístup k různým nastavením; pracovat se Systémovým Registrem; zachytávat klávesové vstupy; zjišťovat pozici kurzoru myši nad objekty nebo jeho souřadnice a samozřejmě řadu dalších, nejen kuriózních (jako třeba změna obrázku na tlačítku Start), Funkcí sloužících k provedení operací, na které pouhý programovací jazyk nemá.
No, já si myslím, že by to mohlo stačit, nevím, co bych k tomu měl ještě říct, ale pokud máte nějaké konkrétní otázky, napište mi na adam.home@atlas.cz.
Doslov:
o dalším pokračování jsem zatím neuvažoval, bylo by dobré napsat něco o Databázích, ale těm nerozumím pořádně ani já. Pokud by to vyšlo, mohl bych pro ty, kteří neodebírají časopis Chip s CD, sehnat povídání o Databázích (Chip CD 7/00 a 8/00). K tomu bych ještě přidal svůj výklad o pokročilejším Souborovém systému a další díl by byl na světě. To vše je ale zatím otázka (- škola volá).
|