|
Začátečník |
Pokročilý |
Profesionál |
|||||
|
|
|
||||||
Inteligentní asistenti v počítači Představení možností
technologie MS Agent 2.0 |
||||||||
|
|
Budete potřebovat
přibližně 1 hodinu |
|
Operační systém
použitý v příspěvku: Windows 2000 Vývojové nástroje:
Visual Basic 6.0 Další zdroje: www.microsoft.com/msagent/ |
||||
|
Vážení přátelé,
v dubnovém vydání rubriky se budeme věnovat poznávání programové architektury technologie s názvem Microsoft Agent 2.0, která je zodpovědná za správnou funkčnost digitálních počítačových pomocníků, se kterými se můžete střetnout v stále větším množství moderních aplikací. Předmětem našeho zájmu bude vysvětlení základů uvedené technologie a posléze praktické ukázky, které vám pomohou s implementací počítačových pomocníků do vašich vlastních programů.
Obsah |
Přidání ovládacího prvku MS
Agent Control 2.0 do soupravy nástrojů |
Vytvoření bublinového okna
pomocníka a zobrazení uvítací zprávy |
Představení možností
technologie
Pojem „počítačoví asistenti“ byl do povědomí uživatelů a posléze i programátorů zaveden již před nějakým časem. Pokud by jsme chtěli být přesnější, musíme se vrátit až do doby, kdy byl na trh uveden kancelářský balík Office společnosti Microsoft ve verzi 97. Sada programů tehdy, samozřejmě kromě jiného, přinesla na výsluní revoluční prvek, jenž byl navíc velice pečlivě zakomponován do uživatelského rozhraní nabízených aplikací. Ano, šlo o takzvaného pomocníka Office, v podobě snad již legendární kancelářské sponky. Počítačový asistent vás sprovázel od prvních chvil. Snažil se vám pomoci při uskutečnění různých úkolů, neustále vás upozorňoval na to, jak lze vaší práci zefektivnit použitím jiného postupu či aplikací klávesových zkratek. Zkrátka, byl stále „na dohled“, což u některých uživatelů vyvolávalo záchvaty vzteku. V žádném případě bych na tomto místě nechtěl polemizovat o skutečnosti, zda-li byla umělá inteligence digitálního asistenta na požadované úrovni nebo nikoliv. Pro nás je myslím nejdůležitější fakt, že pomocník byl postaven na dostatečně pevném základu, který dovoloval jeho použití v různých situacích (např. pomocí jazyků Visual Basic a Visual Basic pro aplikace (VBA)).
Budeme-li sledovat chronologii následujících verzí aplikační sady Office, uvidíme, že pomocníci si také v nich vydobyly neotřesitelnou pozici. Domnívám se, že v okamžiku, kdy jste spatřili animovanou postavičku pomocníka, chtěli jste něco podobného mít i ve vašem programu. Dobrou zprávou je, že na následujících řádcích se dozvíte vše potřebné pro to, aby se váš sen stal skutečností. Ještě předtím se ale zkusme podívat na technologii MS Agent 2.0 podrobněji.
Technologie MS Agent 2.0 obsahuje množství objektů, kolekcí, vlastností a metod, které můžete kdykoliv použít a převzít tak chování počítačových pomocníků do svých rukou. Všechny programové součásti technologie jsou nerozlučně spjaty s operačním systémem Windows a po jejich nainstalovaní je již nelze ze systému bezpečně odstranit. Cílovou skupinou pro aplikaci technologie jsou programátoři, kteří používají vývojové nástroje, které podporují standard ActiveX (resp. COM, Component Object Model). Kolekce programových komponent totiž obsahuje ovládací prvek ActiveX s názvem Microsoft Agent Control 2.0, pomocí kterého je možné snadnou cestou zadávat pomocníkovi programové pokyny.
|
Programový kód ovládacího prvku MS
Agent Control 2.0 je uložen v souboru agentctl.dll. Tento soubor se nachází ve složce MS AGENT kořenové
složky Windows. |
Do množiny programovacích nástrojů, které lze použít při programování počítačových pomocníků, můžeme zařadit Visual Basic a Visual C++, dále pak také Visual FoxPro, editor jazyka VBA v MS Office a rovněž MS Internet Explorer. Všechna tato vývojová prostředí vám mohou posloužit v případě, že budete chtít zavolat počítačové pomocníky.
Systémové soubory technologie MS Agent 2.0 se nacházejí ve složce MS AGENT (tato složka je umístěna v kořenové složce systému Windows). Systémové soubory technologie jsou na novějších verzích operačního systému Windows (Millennium Edition, 2000 a XP) již standardně zahrnuty do instalace systému, a proto je nemusíte opětovně instalovat. Jste-li ovšem majitelem starší verze systému Windows (95 a 98), na domové stránce technologie (která je uvedena v navigačním panelu) najdete vše potřebné.
Velmi důležitou informací je, že počítačový pomocník působí jako server typu out-of-process, co znamená, že asistent je vždy spouštěn ve svém vlastním procesu. Tato skutečnost ostatně vysvětluje, proč je pomocník zcela nezávislý od aplikace, která si vyžádala jeho služby (jde o tzv. klientskou aplikaci). Nezávislá povaha technologie počítačového asistenta vám dovoluje aplikovat kousky doposud nevídané. Můžete například nechat zobrazit na obrazovce několik pomocníků a třeba uskutečnit mezi nimi rozhovor.
Osobně si myslím, že možnosti počítačových asistentů jsou poněkud přehlíženy. Vždyť jenom samotná představa, že ve světe vašeho počítače se nachází inteligentní virtuální bytost, je skutečně jedinečná. A pokud je také „vybroušen“ programový kód, jenž nařizuje pomocníkovi, co má kdy dělat, je počítačový asistent pomocníkem v pravém slova smyslu. Dobře, věřím, že můžeme přejít k programovým ukázkám toho, co všechno může pomocník dělat.
Přidání ovládacího prvku MS Agent Control 2.0 do soupravy nástrojů
Při našich pokusech budeme vždy pracovat s ovládacím prvkem MS Agent Control 2.0. Aby bylo možné vytvářet instance tohoto prvku a následně je ukládat přímo na plochu formuláře, je nejdříve zapotřebí přidat do soupravy nástrojů odkaz na příslušný ovládací prvek. Postupujte teda podle následujících instrukcí:
Obr. 1 – Vložení odkazu na ovládací prvek do soupravy
nástrojů
|
Pokud by se požadovaná položka nenacházela z nějakého blíže
nespecifikovaného důvodu v seznamu, zkuste klepnout na tlačítko Browse
a vyhledat soubor agentctl.dll. |
Obr. 2 – Ikona ovládacího
prvku MS Agent Control 2.0 v soupravě nástrojů
Výborně, první krok jste úspěšně absolvovali. Dále již stačí jenom umístit instanci ovládacího prvku na formulář a začít s psaním programového kódu. To vše bude námětem další sekce této studie.
Zobrazení počítačového pomocníka
Umístěte na formulář instanci ovládacího prvku MS Agent Control 2.0 a také instanci prvku CommandButton. Označte instanci prvku s pomocníkem a podívejte se do okna vlastností (Properties Window). Můžete si všimnout, že asistent podporuje jisté vlastnosti, no není jich moc. Pokud budete chtít, můžete změnit jméno pomocníka modifikací hodnoty vlastnosti Name (standardně nese první instance jméno Agent1). Pokračujte dvojitým klepnutím na instanci tlačítka a zapsáním uvedeného programového kódu do okna editoru.
Agent1.Characters.Load "Pomocník1", "C:\Soubor_s_asistentem.acs"
Agent1.Characters("Pomocník1").Show
Protože může tento fragment programového kódu působit na první pohled lehce komplikovaně, pokusme se na něj podívat zblízka. Především je nutné nahrát správný profil asistenta ze souboru .ACS a tento pak přidat do kolekce objektů s názvem Characters. To provádí metoda Load, signaturu které tvoří dva parametry:
V souvislosti s druhým parametrem je nutné vzpomenout i relativní určení cesty k souboru s profilem pomocníka. Můžete použít kód v této podobě:
Agent1.Characters.Load "Pomocník1", "Genie.acs"
Agent1.Characters("Pomocník1").Show
Zde není určena plná cesta k souboru, ale cesta relativní. Ta předpokládá, že soubor s asistentem (Genie.ACS) se nachází ve složce CHARS, která je podřízenou složkou složky MS AGENT.
Zobrazení pomocníka na obrazovce počítače má na starosti metoda Show. Pokud byste použili soubor s čarovným džinem, uvedené dva řádky kódu by ho zviditelnily na obrazovce v podobě uvedené na obr. 3.
Obr. 3 – Zobrazení pomocníka pomocí metody Show
|
Při nahrávání profilu pomocníka platí pravidlo, že použitím jedné
instance ovládacího prvku můžete nahrát jenom jeden profil asistenta ve
stejnou dobu. Pokud byste tedy chtěli aktivovat dalšího pomocníka, bylo by
potřebné vytvořit také další instanci ovládacího prvku. |
Vytvoření bublinového okna pomocníka a zobrazení uvítací zprávy
Aby mohl asistent zobrazit bublinové okno s uvítací zprávou, použijeme metodu Speak s textovým parametrem:
Agent1.Characters("Pomocník1").Speak "Dobrý den,
já jsem váš počítačový pomocník."
Výsledek
lze pozorovat na obr. 4.
Obr.
4 – Bublinové okno pomocníka
Chcete-li,
můžete asistentovi poskytnout několik uvítacích zpráv a nechat na něm, kterou
zobrazí. V tomto případě je nutné oddělit jednotlivé věty symbolem svislé
čáry (|). Prostudujte si níže uvedený programový kód:
Agent1.Characters("Pomocník1").Speak _
"Dobrý den, já jsem váš počítačový pomocník.|" & _
"Ahoj, jak se máte?|" & _
"Potřebujete pomoc?"
Pokud
budete zkoušet činnost tohoto kódu, pamatujte na pravidlo, že v jednom
okamžiku může být z jedné instance ovládacího prvku zobrazen pouze jeden
asistent. Proto kdybyste dvakrát klepli na tlačítko na formuláři, Visual Basic
by ohlásil chybu, v popisu které by vám bylo sděleno, že postavička
pomocníka již byla jednou načtena. Tento (mimochodem poměrné častý) problém lze
vyřešit například takto:
Private
Sub Command1_Click()
If
aktivace Then
symbol:
Agent1.Characters("Pomocník1").Show
Agent1.Characters("Pomocník1").Speak _
"Dobrý den, já
jsem váš počítačový pomocník.|" & _
"Ahoj, jak se
máte?|" & _
"Potřebujete
pomoc?"
Else
Agent1.Characters.Load
"Pomocník1", "Genie.acs"
GoTo symbol
End
If
aktivace = True
End Sub
Znázorněný
kód je poněkud netypický hlavně použitím konstrukce GoTo. Průběh celého algoritmu
vypadá asi takto:
Jestliže
teď spustíte aplikaci, můžete klepnout na tlačítko i poté, co je pomocník již
viditelný na obrazovce počítače. Nedojde k žádné chybě, asistent jednoduše
vybere další zprávu a přečte ji.
Změna pozice pomocníka na
obrazovce počítače
Při
standardním způsobu aktivace se pomocník zobrazuje v levém horním rohu
plochy vašeho monitoru. Jestliže vám toto umístění asistenta nevyhovuje, můžete
ho změnit pomocí dvou vlastností Top a Left. Tyto vlastnosti mají
stejný význam jako jejich ekvivalenty ve Visual Basicu, společně určují pozici
levého horního rohu okna pomocníka.
|
Ačkoliv to není na pohled zřejmé, pomocník se nachází v okně
(rozměry tohoto okna by neměly překročit hranici 128 krát 128 pixelů). Pozadí
okna a okraje okna jsou průhledné, proto je nemůžete spatřit. |
Budete-li
chtít přesunout asistenta 500 pixelů směrem dolů a 450 pixelů směrem doprava,
použijte tento kód:
Agent1.Characters("Pomocník1").Top = 500
Agent1.Characters("Pomocník1").Left = 450
Výsledek
je demonstrován na obr. 5.
Obr.
5 – Přesné umístění pomocníka na kýženou pozici
Přestože
vlastnosti Top a Left odvádějí svou práci
znamenitě, existuje další způsob, pomocí kterého lze změnit pozici asistenta.
Jde o metodu MoveTo objektu Character. Představme si nejprve
zápis metody a pak si k ní povíme pár slov.
agent.Characters
("CharacterID").MoveTo x,y, [Speed]
Metoda
MoveTo pracuje s třemi parametry,
přičemž poslední z nich je volitelný. První dva parametry určují souřadnice
cílového levého horního bodu okna pomocníka. Již vzpomínaný volitelný parametr
determinuje rychlost přehrávaní snímků animace pomocníka při změně jeho pozice.
Tato rychlost je měřena v milisekundách.
Velkou
výhodou metody MoveTo je skutečnost, že změna pozice
asistenta je vizuálně umocněna animací (obr. 6).
Obr. 6 – Změna
pozice pomocníka použitím metody MoveTo
Ukončení práce
s pomocníkem
Jestliže
již nebudete chtít využít služeb počítačového asistenta, máte v zásadě dvě
možnosti, jak jej „odstránit“ z obrazovky počítače. Pomocníka můžete buď
skrýt aplikací metody Hide, nebo jej zcela odstranit
z paměti použitím metody Unload.
|
Dávejte si pozor na použití metody Hide. Tato metoda
zabezpečuje pouze skrytí pomocníka, nikoliv jeho odstranění z paměti
počítače. Paměťové zdroje, které obsazoval asistent můžete bezpečně uvolnit
jenom použitím metody Unload. |
Příkladné
použití obou metod můžete vidět níže.
Když budete chtít skrýt pomocníka, zapište
tento kód:
Agent1.Characters("Pomocník1").Hide
V případě nutnosti odstraňte pomocníka
z paměti tímto kódem:
Agent1.Characters.Unload
"Pomocník1"
Závěr
Jestliže
vás problematika ovládání počítačových pomocníků zaujala, dejte mi vědět a já
pak můžu připravit další díl z této tématiky, ve kterém by byly probrány
pokročilé techniky implementace počítačových asistentů.
Ján
Hanák