Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
38
Zestawrozwiązań1:Zarządzanieopartenarolach
Wszystko,cowobectegotrzebazrobić,toprzeanalizowaćwierszpoleceń.AplikacjaHTA
będziewywoływanapoprzeznazwę(naprzykład[mshta.exe]„path\MyHTA.hta”),więc
możemyposzukaćrozszerzenia.htaiprzyjąć,żecokolwiekpotymsięznajduje,jestargu-
mentem.Następnieanalizujemyskładniępozostałejczęścirozdziałuprzyużyciuznaku
spacjijakoseparatoraargumentówicudzysłowówjakokwalifikatorów,któreotaczająargu-
mentyzawierającespacjetakjakwzwykłymwierszupoleceń.
JeśliprzyjrzymysiękodowiHTA_Arguments.snippetnatowarzyszącejksiążcepłytce,
zobaczymydwiefunkcje.Pierwszaznich,HTA_Arguments,jestwywoływanazapomocą
odwołaniadoobiektuHTA.Znajdujeonawierszpoleceń,szukarozszerzenia.hta,aby
sprawdzić,czyistniejąjakieśargumenty
,anastępnieprzeglądapozostałączęśćwiersza
poleceńprzyużyciudrugiejfunkcji,Text_Delimited_Parse().Tadrugafunkcjajestbar-
dzoprzydatnadoanalizyskładniowejdowolnegoustalonegotekstu,takiegojakwiersze
zplikutekstowegooddzielanegoprzecinkami(.csv)lubwtymprzypadkuargumen-
tówoddzielonychspacją,gdzieargumentyzawierającespacjęwyznaczone(otaczane)
przezcudzysłowy
.Kiedytedwiefunkcjewykonająswojąpracę,tablicazwracanaprzez
HTA_Arguments()będziezawieraćwszystkieargumenty
,którebyłyprzekazanedoHTA
wwierszupoleceń.
Wszystkozatem,cotrzebazrobić,towywołaćtefunkcjeprzyuruchamianiuHTA.
Poniższykod,wewnątrzznacznika<script>naszejaplikacjiHTA,wykonatozadanie:
DimaArguments
'deklarujemytonazewnątrznaszegopodprogramu,
'takabymiałonglobalnyzakresibyłdostępny
'dlainnegokoduwHTA
SubWindow_Onload
'proceduraznazwąbędzieautomatycznieuruchamiana
'porozpoczęciuwykonywaniaaplikacjiHTA
aArguments=HTA_Arguments(oMyHTA)
'ModyfikujemyoMyHTAwpowyższymwywołaniufunkcji,takabyzgadzałosię
'zwartościąatrybutu"id"elementu<hta:application>
EndSub
TablicaaArgumentszawierawszystkieargumenty
.Ponieważjestonadeklarowanazzakre-
semglobalnym,możnamiećdostępdoaArgumentszkażdejinnejczęścikodu.
Uwaga
udokumentowane.Lepiejbędzie,gdynapiszemyaplikacjeHTA.
TorozwiązaniedootrzymywaniaargumentówwHTAjestbardzosłabo
DlanaszegoADObject_MemberOf_Enum.htamusimydodaćatrybutiddoznacznika<hta-
:application>,takjakponiżej:
<hta:application
id="oMyHTA">
Możnawtedydodaćnastępującykodwewnątrzznaczników<script>:
DimaArguments
SubWindow_Onload
aArguments=HTA_Arguments(oMyHTA)
IfuBound(aArguments)>=0Then
'ArgumentzostałprzekazanydoHTA
'Wcześniejszewypełnianiepolatekstowegoiuruchomieniegłównejprocedury