Centrum skryptów - Systemy operacyjne

Jak mogę wypozycjonować kursor w określonym polu tekstowym, za każdym razem gdy uruchamiam aplikację HTA?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy.

Jak mogę wypozycjonować kursor w określonym polu tekstowym, za każdym razem gdy uruchamiam aplikację HTA?

Cześć Skrypciarze! Pytanie

Cześć Skrypciarze! Jak mogę wypozycjonować kursor w określonym polu tekstowym, za każdym razem gdy uruchamiam aplikację HTA?

-- BM

Cześć Skrypciarze! Odpowiedź

Hej, BM. Czy wiesz, że Skrypciarz który napisał tę rubrykę, marzy o tym, żeby nigdy w życiu nie zostać fizykiem teoretycznym. Zastanawiasz się dlaczego? No cóż, jedną z przyczyn jest to, że fizycy teoretyczni wymyślili różne teorie, które w zupełności wyjaśniają naturę i charakter wszechświata. Trzeba przyznać, że jest to ciekawsze zajęcie, niż wymyślanie skryptu, który pozycjonuje kursor w określonym polu tekstowym, za każdym razem gdy uruchomisz aplikację HTA.

Ok, no dobrze, jeśli chcesz pogrymasić to masz rację, że w rzeczywistości te teorie wyjaśniają tylko około 4% wszechświata. Lecz to właśnie jest kolejna fajna rzecz w fizyce teoretycznej. Czy 96% wszechświata zostało pominięte? Ależ skąd! Oczywiście że 96% musi składać się z ciemnej materii i ciemnej energii, substancji które - zgodnie z definicją - są raczej niewykrywalne. Innymi słowy 96% wszechświata jest wykonane z substancji, których istnienia nigdy nie będziemy mogli udowodnić. Sprawa zamknięta!

Uwaga. Skrypciarz, będący autorem tej rubryki jest osobiście sceptycznie nastawiony do ciemnej energii i ciemnej materii. Wierzy on, że te pominięte 96% w całości składa się z pilotów. Na przykład w domu Skrypciarza, w samym salonie są piloty do telewizora, tunera satelitarnego, odtwarzacza DVD, odtwarzacza VCR oraz do wieży stereo. Najlepsze jest to, że nie jest możliwe pozbycie się któregokolwiek z nich; nawet tak zwane "piloty uniwersalne" wydają się obsługiwać jedynie 4% wszystkich możliwych sytuacji. Pomnóż ilość pilotów w pokoju przez ilość pokojów w domu i ilość domów we wszechświecie i już będziesz miał odpowiedź na nurtujące wszystkich pytanie.

Oczywiście Skrypciarz nie może zbyć Cię teorią mówiącą o tym, że pozycjonowanie kursora w określonym polu tekstowym w aplikacji HTA może być wykonane przy użyciu ciemnego kodu skryptu VBScript, kodu który nie może być wpisany z klawiatury lub w inny realny sposób umieszczony w skrypcie. Zamiast tego Skrypciarze muszą dostarczać rozwiązania, które mogą być testowane i implementowane. Takie rozwiązania jak to poniżej:

<html>

<head>

<title>HTA Test</title>

<HTA:APPLICATION 

     ID="objTest" 

     APPLICATIONNAME="HTATest"

     SCROLL="yes"

     SINGLEINSTANCE="yes"

>

</head>



<SCRIPT LANGUAGE="VBScript">

    Sub Window_OnLoad

        BasicTextbox.Focus

    End Sub

</SCRIPT>



<body>

    <input type="text" name="BasicTextbox" size="30">

</body>

Jak widzisz, nie ma tego zbyt wiele. De facto wszystko co tutaj mamy to bardzo prosta aplikacja HTA, obsługująca pojedynczy element: pole tekstowe o nazwie BasicTextbox. Oto kod HTML tworzący to pole tekstowe:

<input type="text" name="BasicTextbox" size="30">

Nie ma tutaj nic specjalnego, no może poza tym, że nadaliśmy polu tekstowemu nazwę. To jest sprawa kluczowa: jeśli pole tekstowe ma nazwę, to możesz odwoływać się do niego w kodzie skryptu. A jeżeli możesz odwołać się do określonego pola tekstowego, wówczas możesz na nim wykonywać różnego rodzaju fajne operacje, na przykład automatyczne pozycjonować kursor w polu tekstowym, za każdym razem gdy załadujesz program HTA.

Tak więc o ile jesteś zainteresowany robieniem tego typu rzeczy, to tutaj masz gotowe rozwiązanie.

Och, to prawda: Ty jesteś zainteresowany wykonywaniem tego typu rzeczy, nieprawdaż? Cóż, na szczęście nasz plik HTA zawiera również procedurę o nazwie Window_Onload, która pozycjonuje kursor:

Sub Window_OnLoad

    BasicTextbox.Focus

End Sub

I znowu jest to niemal żenująco proste. W rzeczywistości musisz zrobić jedynie dwie rzeczy. Po pierwsze musisz upewnić się, że nadałeś procedurze nazwę Window_Onload. W programie HTA (lub na stronie Web, jeśli już o to chodzi) każda procedura o nazwie Window_Onload pełni w świecie HTA rolę pliku autoexec.bat.

Po drugie, termin "pozycjonowanie kursora" oznacza po prostu nadanie wybranemu formantowi (w tym przypadku polu tekstowemu) fokusu. To może być wykonane na skutek odwołania się do tego formantu przez nazwę, a następnie wywołaniu metody Focus. Stąd jedyna linia kodu, o którą powinniśmy zadbać to:

BasicTextbox.Focus

Kiedy uruchomisz lub odświeżysz tę stronę HTA, kursor automatycznie zostanie ustawiony w polu tekstowym. I to by było mniej więcej na tyle!

Mamy nadzieję, że odpowiedzieliśmy na Twoje pytanie, BM. Nawiasem mówiąc, jeśli zdarzy się, że akurat jesteś fizykiem teoretycznym, to mamy dla Ciebie wskazówkę: jeśli wciąż nie wiesz gdzie się podziało 96% wszechświata, możesz sprawdzić gabinet w domu Skrypciarza, który napisał tę kolumnę. Prawdę mówiąc ten Skrypciarz nie ma absolutnie pojęcia dlaczego wszystkie te rzeczy zostały wrzucone do jego gabinetu (Pomimo że tam przynajmniej trzy piłki do koszykówki, futbolówka, kilka kijów bejsbolowych oraz i kij do krykieta). Tym niemniej jeżeli ciemna energia oraz ciemna materia rzeczywiście istnieją, to jest to dobre miejsce w którym można rozpocząć ich poszukiwania.

 Do początku strony Do początku strony

Centrum skryptów - Systemy operacyjne