Poslední aktualizace: 3. 7. 2006
Spuštění Autorunu
Pokud v adresáři ještě není soubor s nastavením autourun.aut, autorun
se spustí
v návrhovém módu a zobrazí 2 okna, vlevo okno „Nastavení“ (návrhář),
ve kterém měníte nastavení autorunu a vpravo okno autorunu tak, jak
bude vypadat, ve kterém ihned vidíte všechny provedené změny.
Jakmile uložíte soubor autorun.AUT návrhář
se již nezobrazuje a pro přepnutí do "Návrhového módu" klikněte pravým
tlačítkem v okně autorunu a z menu vyberte "přejít do návrhu",
nebo spusťte autorun s parametrem /o (nebo odstraňte soubor
Autorun.AUT).
Význam
položek v kontextovém menu: - Časovač - pauza časovače pro automatickou odpověď - Audio/Video - stopne/spustí audio/video (je-li nastaveno) - Opakovat - zapne/vypne opakování přehrávání audia/videa - Celá obrazovka - je-li otevřeno video zobrazí jej na celou obrazovku - Přejít do návrhu - přepne autorun do návrhového módu a zobrazí okno "Nastavení" |
Kromě parametrů /o pro spuštění autorunu v režimu
návrhu, můžete také zadat jako parametr přímo AUT soubor s
nastavením autorunu
Př.: autorun.exe sample2.aut
Tip:
Asociujte si příponu aut se souborem autorun.exe a po poklepání na
soubor *.aut se spustí autorun s touto definicí.
Přes Nástroje/Možnosti složky/Typy souborů si můžete také přidat do
kontextového menu průzkumníka akci s názvem "Editovat", které nastavte
cestu k programu autorun s parametry "%1" /o
Záložka AUTORUN.INF
Tato záložka obsahuje nastavení souboru autorun.inf,
což je
soubor s
nastavením automatického spouštění CD. První věc, kterou byste měli udělat je zadat bázovou složku, bázová složka (nebo také kořenová složka CD) je složka, ve které máte obsah budoucího CD, do této složky bude uložen soubor AUTORUN.INF, veškeré cesty budou brány relativně k této složce. Další položka definuje relativní cestu ke spouštěnému souboru (autorun.exe), pokud nechcete, aby byl autorun přímo v kořenové složce CD, zvolte přepínač "Jiného podadresáře" a zvolte tlačítko "Vybrat" k určení, kam má být umístěn soubor autorun.exe (a tím i autorun.aut) Dále můžete určit ikonu CD, která bude zobrazena např. v Průzkumníkovi u jednotky s vloženým CD. |
Záložka AUTORUN.AUT
Tato záložka obsahuje nastavení vzhledu a chování autorunu, které bude uloženo do souboru autorun.aut.
Záložka Okno: Obrázek pozadí pro vytvoření tvarovaného okna lze vytvořit velice snadno, můžete ho vytvořit i v obyčejném programu Malování, barva levého horního pixelu obrázku je průhledná barva. Nakreslete tedy libovolný tvar a části, které mají být průhledné vybarvěte stejnou barvou jako levý horní pixel. Záložka Akce okna: |
|
Záložka Prvky: pro vložení prvků (komponent) vyberte nejprve požadovaný typ prvku (tlačítko, popisek, obrázek,.., pod tlačítkem „Další“ jsou další prvky) a pokud se jedná o vizuální prvek klikněte do okna autorunu na místo, kam chcete prvek umístit a zadejte vhodný název prvku (bez mezer a českých znaků), např. Btn_Play či tlac_hrej pro tlačítko spouštějící video apod.. |
Tip: Vybírat, přemísťovat a zvětšovat prvky lze také myší.
Poté na záložkách „Obecné“, „Vzhled“ a „Text“ upravte vlastnosti vybraného prvku (pozice, velikost, barva,..).
Seznam prvků (komponent)
TButton - "Tlačítko" | standardní tlačítko | |
TXAOLBtn - "Tlačítko" | tlačítko s možností změny barvy výplně | |
TLabel - "Popisek" | standardní popisek, prvek pro zobrazení textu Důležité vlastnosti: Caption - zobrazený text |
|
TXLabel - "Popisek" | popisek s volitelným 3D efektem, stínováním,a rámečkem | |
TXImgBtn - "Obrázkové tlačítko" | může sloužit jako obrázek i tlačítko s definovaným obrázkem pozadí, lze nastavit i další 2 obrázky pro vytvoření MouseOver efektu | |
TPanel - "Panel" | standardní panel sloužící jako kontejner pro komponenty | |
TXPanel - "Panel" | TXPanel se od standardního panelu líší tím, že lze nastavit šířku a barvu okraje a tvar panelu (obdélník, zaoblené rohy, elipsa) | |
TEdit - "Editační políčko" | Editační políčko slouží
jako textový vstup od uživatele. Důležité vlastnosti: Text je uložen ve vlastnosti "Text" ReadOnly - jen pro čtení |
|
TMemo - "Víceřádkový text" | TMemo slouží pro zobrazení
a editaci
víceřádkového textu, Text o velikosti nad 2kB nahravejte dynamicky ze souboru příkazem StringsLoadFile, jinak nebude, kvůli omezení ini souborů, text načten celý. Text je uložen ve vlastnosti Lines, která je typu TStrings (pro práci s tímto typem slouží funkce Stringsxxxxx). Důležité vlastnosti: Lines - obsahuje text (je typu TStrings) ReadOnly - jen pro čtení |
|
TListBox - "Seznam" | TListBox slouží pro
zobrazení seznamu (např. jmen souborů apod.). Důležité vlastnosti: Items - obsahuje položky (je typu TStrings) ItemIndex - číslo vybranné položky Pro získání hodnoty vybraného řádku použijte příkazy: //uložení čísla vybraného řádku do proměnné id GetProp listbox1,itemindex,id //uložení hodnoty řádku číslo $id$ do proměnné h StringsGet listbox1.items,$id$,h Pro nahrání seznamu jmen souborů použijte funkci StringsLoadFileNames |
|
TCheckBox - "Zatržítko" | Slouží pro volby typu
ano/ne, stav je uložen ve vlastnosti checked. Zjištění zda je zatržítko zatrhlé: //do proměnné zatrhlý bude uložena hodnota 1 v případě, že je zatržítko zatrhlé, jinak 0. GetProp checkbox1,checked,zatrhly IF $zatrhly$,=,1 .... Else ... EndIf |
|
TRadioButton - "Přepínač" | slouží pro zvolení z několika voleb, zatrhlý zůstává vždy jen jeden přepínač z přepínačů umístěných na formuláři nebo panelu, stav je uložen ve vlastnosti checked. | |
TXProgressBar | Prvek pro zobrazení
průběhu (např. kopírování, přehrávání videa). Důležité vlastnosti: Position - pozice (výchozí 0) Max - maximální hodnota (výchozí 100) |
TTimer - časovač | Tento prvek slouží pro opakované akce. Jediná událost
tohoto
prvku je OnTimer, tato událost je opakovaně volána v intervalu
nastaveném ve vlastnosti "Interval" (udáj v milisekundách). Příkladem použití může být např. zobrazení aktuálního času v popisku (pojmenovaném LabelCas), stačí nastavit interval na 1000ms a do události OnTimer zapsat příkaz SetProp LabelCas,Caption,#Time# |
Záložka akce, definování akce prvku
Každý prvek (komponenta) má na záložce "Akce" rozbalovací seznam pro výběr události (OnClick, OnChange,..) a pod ním editační pole pro zápis akcí (scriptu). Ke každé události prvku můžete přiřadit jednu či více akcí (definujeme obsluhu události). Události jsou vyvolány programem nebo uživatelem. Lze definovat akce jako spouštění souborů, webových adres atd., ovládat interní přehrávač videa / audia, měnit vlastnosti prvků a okna za běhu ad.
Podívejme se např. na tlačítko typu TXAOLBtn (typ prvku je uveden za dvojtečkou v seznamu vložených prvků), u toho tlačítka jsou k dispozici tyto události:
OnClick - tato událost vznikne, když uživatel klikne na prvek
OnMouseDown - uživatel stiskl tlačítko myši
OnMouseUp - uživatel uvolnil stisknuté tlačítko myši
OnMouseMove - uživatel pohybuje nad prvkem kurzorem myši
Chceme-li např., aby se po kliknutí na tlačítko spustilo video ve výchozím přehrávači, vybereme událost OnClick a klikneme na tlačítko "Přidat". Zobrazí se menu obsahující nejčastější akce, my vybereme položku Otevřít/Soubor, objeví se standardní dialog pro výběr souboru, vybereme tedy např. video soubor dovolena.mpeg, který jsme si nejlépe předem uložili do bázové složky nebo její podsložky, v našem příkladě do podsložky video. Po zvolení souboru se v seznamu akcí objevil následující příkaz:
ShellExec open,#BaseDir#\video\dovolena.mpeg,
tento příkaz ShellExec (jeho popis je uveden níže v seznamu
příkazů)
zajistí, že dojde ke spuštění onoho videa, výraz #BaseDir#
nepřepisujte, tento výraz bude při vyvolání události automaticky
nahrazen cestou k bázové složce. Víte-li co děláte můžete
samozřejmě použít i relativní adresování a tečkovou konvenci
(relativně k souboru autorun.exe), tedy
např.
ShellExec open,video\dovolena.mpeg,
nebo v případě, kdy nebude autorun.exe uložen v bázové složce, ale v
podsložce např. autorun
ShellExec open,..\video\dovolena.mpeg
Příkazy můžeme psát i přímo (bez použití tlačítka "Přidat"), chceme-li akci zrušit jednoduše daný řádek vymažeme.
Pomocí tlačítka "Přidat" u seznamu akcí, můžete přidat jen ty nejběžnější příkazy/akce,
další příkazy a klíčová slova zobrazíte stisknutím kláves Ctrl+mezerník.
Seznam všech příkazů a popis scriptovacího jazyka naleznete níže.
Záložka Autom. odpověď:
- automatická
odpověd slouží pro automatické provedení
akce
(přiřazené k události OnClick) ovládacího prvku po nastaveném
čase, tento čas lze zobrazit v libovolném prvku, formát
zobrazení času můžete určit pomocí značky #Counter#
zastupující zbývající počet sekund,
příklad: "Zavřít za #Counter# sekund"
nebo "Spustit za #Counter# sekund"
Záložka Audio/Video:
- zadáte-li audio/video soubor, tento soubor se začne
přehrávat po startu
(pokud zrušíte položky automaticky otevřít a automaticky přehrát,
musíte toto zařídit
manuálně příkazy mp_open a mp_play), autorun neobsahuje žádný vlastní
audio či video kodek, proto záleží na systému, na kterém je autorun
spuštěn, zda
obsahuje kodek pro přehrávání daného typu multimediálního souboru,
proto méně
rozšířené formáty (např. ogg,qt,rm,..) nedoporučuji používat. Pokud
jste zvolili video
soubor a nechcete video zobrazit přímo na formuláři nebo v novém okně
vytvořte pro něj panel, ve kterém se bude toto video zobrazovat.
Nakonec ještě připomínám,že pro správné fungování automatického spuštění CD musí být splněno několik podmínek: V kořenovém adresáři CD musí být soubor AUTORUN.INF a na počítači na němž bude CD prohlíženo musí být pro dannou CD-ROM mechaniku funkce autorun povolena (což standardně bývá). Pokud budete chtít funkci Autorun/AutoPlay na vašem počítači povolit či zakázat bývá v nastavení u dané mechaniky označována jako "automatické oznámení vložení" či "automatické přehrávání" apod.
Seznam příkazů/funkcí a scriptovací jazyk
Každý příkaz musí být na samostatném řádku, první je vždy název funkce/příkazu, následuje mezera a potom jednotlivé parametry oddělené čárkami.
command prm1,prm2,prm3,prm4
Pokud chcete použít čárku uvnitř parametru, uzavřete parametr do
uvozovek!
Msg "Text, blabla.."
V parametrech můžete použít i speciální
klíčová slova
uzavřená mezi znaky #, jejich výskyt v parametrech
bude automaticky nahrazen patřičným textem:
#BaseDir# - bude nahrazeno za cestu k bázové složce
#AutDir# - složka, ve které je umístěn autorun.exe
#Counter# - čas do provedení automatické akce
#Time# - vrací aktuální čas
#Date# - vrací aktuální datum
#MPpos# - pozice přehrávání audia/videa v interním přehrávači (MP-MediaPlayer)
#MPlen# - délka audio/video souboru otevřeného v přehrávači
#MPposStr# - to samé jako #MPpos# ale vrací pozici ve formátu hod:min:sec
#MPlenStr# - to samé jako #MPlen# ale vrací délku ve formátu hod:min:sec
#CursorX# - x-ová souřadnice kurzoru myši od levého horního rohu obrazovky
#CursorY# - y-ová -//-
#CursorCX# - x-ová souř. kurzoru myši od LH rohu komponenty nad níž se nachází kurzor myši
#CursorCY# - y-ová -//-
#CRLF# - vrací ukončovač řádku používaný ve windows tedy znaky s asci kódy 13 10
Dále můžete v parametrech použít globální
a lokální proměnné,
Globální proměnná
zaniká až ukončením programu, globální proměnná se deklaruje:
SetGlobVar nazev,hodnota
Lokální proměnná zaniká po vykonání scriptu, deklaruje se:
SetVar nazev,hodnota
Pro výpis
proměnné (získání její hodnoty) musíte použít název
proměnné uzavřené z obou stran znakem dolaru, tj.
$promenna$,
nato velký pozor, protože pokud má být
do proměnné uložena
nějaká hodnota, musí být uvedena bez znaků dolaru.
Správný
příklad:
//nastavení globální proměnné na hodnotu ahoj
SetGlobVar x,ahoj
//zobrazení její hodnoty v dialogu
Msg $x$
špatný
příklad:
//nastavení globální proměnné se neprovede, protože ještě
před provedením příkazu se
//výraz $x$ přepíše na její hodnotu (tj. ahoj), takže z příkazu se
stane
//SetGlobVar ahoj,nazdar (a kdyby existovala proměnná ahoj tak se do ní
uloží "nazdar")
SetGlobVar $x$,nazdar
//zobrazení její hodnoty v dialogu
Msg $x$
Pokud existuje globální proměnná stejného jména jako lokální, má
lokální
proměnná přednost.
Pomocí funkce SetProp můžete nastavit hodnotu libovolné veřejné vlastnosti prvku (komponenty) včetně formuláře, funkce GetProp naopak vlastnosti komponent vrací. Seznam základních vlastností jednotlivých komponent můžete vidět v souboru Autorun.aut. Většina komponent je odvozena od standartních komponent Delphi.
Reprezentace hodnot vlastností rúzných datových typů
Vlastnost typu | Zápis |
string (řetězec) | normálně jako text SetProp Label1,Caption,"czRoPa Autorun" |
integer (číslo) | normálně jako číslo SetProp FormAutorun,Height,300 |
boolean (pravdivostní - Ano/Ne) | jako číslo
0=False, 1=True SetProp Button1,Visible,0 |
enum (výčet) | jako číslo, např. vlastnost Alignment má
hodnoty: 0=taLeftJustify,1=taRightjustify,2=taCenter SetProp Label1,Alignment,2 |
set (množina) | jako číslo 0..255 - jednotlivé bity reprezentují prvky
množiny, např. vlastnost Style objektu Font může být kombinací hodnot 1=fsBold, 2=fsItalic, 4=fsUnderline, 8=fsStrikeOut např. nastavíme tučné podtržené písmo: fsBold + fsUnderline=1+4 SetProp Label1,Font.Style,5 |
IF value,operator,value
value - číslo, text, nebo proměnná
operator -
=,<>,>,<,>=,<=,OR,AND
Parametry a operator musí být odděleny čárkami,
tj. IF 5>2 nefunguje, správně je IF 5,>,2.
Else a EndIF musí stát na samostatném řádku.
Příkaz IF musí být ukončen příkazem EndIf!!!!!!
Else větev lze samozřejmě vynechat. Vnořené podmínky lze
použít samozřejmě také.
Příklad:
SetVar Source,"#BaseDir#\Autorun"
SetVar Destination
GetDir ProgramFilesDir,Destination
IF $Destination$,<>,""
SetVar Result,0
FileOperation copy,0,$Source$,$Destination$,Result
IF $Result$,=,1
Msg "Autorun files succefull copied to $Destination$"
Else
Msg "Installation failed!"
EndIF
Else
Msg "Program Files folder not found!"
EndIF
Příkaz JMP a řešení cyklů
JMP index
-je pro skoky ve scriptu, ve scriptovacím jazyce nejsou zatím příkazy pro cykly, takže zatím jediný způsob je řešení přes JMP
JMP 5 //skočí na 5.řádek/příkaz scriptu
JMP +5 //skočí o 5 řádků dopředu
JMP -5 //skočí o 5 řádků zpět
Seznam příkazů (funkcí)
ShellExec Operation,FileName,Parameters
//vytvoření seznamu řetězců (StringsList) se jménem FileList
StringsListCreate FileList
//zapnout řazení podle abecedy
StringsSort FileList,1
//načtení jmen souborů *.jpg z adresáře #BaseDir#\pic do seznamu FileList
StringsLoadFileNames FileList,#BaseDir#\pic,*.jpg
//deklarace glob. proměnné
SetGlobVar FilesCount,-1
//inicializace proměnné FilesCount na počet položek v seznamu
StringsCount FileList,FilesCount
//deklarace glob. proměnné a její nastavení na hodnotu $FilesCount$
SetGlobVar lastID,$FilesCount$
//Snížení proměnné lastID o 1,chceme ID poslední položky(první položka má ID 0)
Dec lastID,1
//deklarace glob. proměnné
SetGlobVar curFileID,-1
//spustit script tlačítka Btn_N
RunScript Btn_N,OnClick
Druhý script je přiřazen události OnClick tlačítka pojmenovaného "Btn_Next", který nastaví pozadí na další obrázek ze seznamu FileList
IF $lastID$,>,$curFileID$
INC curFileID,1
StringsGet FileList,$curFileID$,x
SetProp Label_File,Caption,$x$
StrCat #BaseDir#\pic\,$x$,x
SetProp FormAutorun,ImageFile,$x$
EndIF
Tipy a FAQ:
Jak
ozvučit kliknutí na tlačítko?
Do události OnClick tlačítka přidejte příkaz PlaySound ...
PlaySound #BaseDir#\click.WAV
Jak
načíst obsah specifikovaného TXT souboru do textového pole autorunu?
Odpověď:
Použijte příkaz StringsLoadFile, který zapíšete třeba do události
OnCreate okna (záložka Akce okna)
Příklad:
pro načtení obsahu souboru do TMemo (víceřádkový text) :
StringsLoadFile Memo_1.lines,soubor.txt
pro načtení do TListBox (seznam) :
StringsLoadFile Listbox_1.items,soubor.txt
(Memo_1 a Listbox_1 jsou názvy prvků)
Jak
zabránit editaci textového pole (TEdit nebo TMemo pro dlouhé texty)?
Odpověď:
Přidejte do události OnCreate okna příkaz
SetProp Memo_1,ReadOnly,1
Kde Memo_1 je název prvku
Další typy a nastavení můžete najít na webových stránkách. Pro další inspiraci si můžete stáhnout příklady hotových autorunů, ve kterých můžete najít složitější scripty.
Nápověda je zatím taková, jaká je, postupně ji budu rozšiřovat a vylepšovat.
czRoPa
http://czropa.wz.cz