Centrum skryptów - Systemy operacyjne

Jak dodać klawisz szybkiego dostępu do przycisku aplikacji HTA?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

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 dodać klawisz szybkiego dostępu do przycisku aplikacji HTA?

Cześć, Skrypciarze! Jak dodać klawisz szybkiego dostępu do przycisku w aplikacji HTA?

-- TM

Cześć, TM. Zanim przejdę do odpowiedzi na dzisiejsze pytanie, chcę się tylko zapytać, czy ktoś z Was oglądał ostatnio mecz w piłkę nożną Polska – USA? Nikt nie oglądał? Wielka szkoda. Mecz był całkiem interesujący, to znaczy – interesujący jak dla kogo, mógłbym zaraz usłyszeć. Dla mnie liczy się wynik, a wygraliśmy 3:0. Przyznam się Wam w tajemnicy, że sam tego meczu nie widziałem, przeczytałem o nim tylko w porannej gazecie.

Owszem, zdarza mi się zajrzeć do porannej gazety. Ale tylko na stronę z informacjami sportowymi. Taki wynik zawsze cieszy. Nie wiem, jak przebiegał mecz, nie mogę znaleźć nikogo, kto go oglądał. Dlatego pytałem Was o to na samym początku. Chętnie dowiem się więcej na ten temat. Wątpię, żebym mógł zobaczyć powtórkę w telewizji. Więc jeżeli wiecie coś na temat tego meczu, wiecie jak mnie znaleźć. No dobrze. Wracam do pracy. TM chce, aby dodać klawisz szybkiego dostępu do przycisku aplikacji HTA:

<Script Language="VBScript">

    Sub ButtonA

        Msgbox "Button A was clicked."

    End Sub



    Sub ButtonB

        Msgbox "Button B was clicked."

    End Sub  



    Sub ButtonC

        Msgbox "Button C was clicked."

    End Sub        

      

</Script>



<body>

    <button onClick="ButtonA" accessKey="a"> Button <U>A</U> </button>

    <button onClick="ButtonB" accessKey="b"> Button <U>B</U> </button>

    <button onClick="ButtonC" accessKey="c"> Button <U>C</U> </button>

</body>

Cały sekret dodawania klawisza szybkiego dostępu do aplikacji HTA polega na tym, że: zamiast znacznika <input> używamy znacznika <button>. Dlaczego? Zaraz to wyjaśnię. Zanim to jednak zrobię, chcę wyjaśnić jedną sprawę. Wydaje mi się, że możecie sobie pomyśleć, iż najlepszym sposobem dodania klawisza szybkiego dostępu do przycisku jest zastosowanie znacznika HTML podobnego do poniższego:

<input type="button" value="Button A" onClick="ButtonA" accessKey="a">

To działa całkiem sprawnie. Dodanie tego znacznika do aplikacji HTA spowoduje, że naciśnięcie klawiszy Alt+a na klawiaturze będzie odpowiadało kliknięciu samego przycisku Button A. Jedyny problem z używaniem znacznika <input> polega na tym, że nie można zrobić nic, żeby wskazać, który klawisz jest klawiszem szybkiego dostępu dla określonego przycisku. Aplikacja HTA będzie wyglądała jak poniższa, ale użytkownik nie będzie wiedział, że naciśnięcie klawiszy Alt+a to to samo, co kliknięcie przycisku Button A:

Nie muszę chyba wyjaśniać, że dodanie klawisza szybkiego dostępu nie ma sensu, jeżeli nikt nie wie, że dany klawisz jest dostępny.

Z kolei zastosowanie znacznika <button> umożliwia utworzenie bardziej typowego interfejsu użytkownika, takiego, w którym klawisz szybkiego dostępu jest jasno oznaczony:

Jak więc zastosować znacznik <button>? Cóż, przyjrzyjmy się kodowi, za pomocą którego tworzymy przycisk Button A:

<button onClick="ButtonA" accessKey="a"> Button <U>A</U> </button>

Jak widzimy, dodajemy po prostu znacznik <button> razem z dwoma parametrami:

  • onClick="ButtonA". Jest to nazwa podprocedury, którą chcemy uruchomić po każdym kliknięciu przycisku lub za każdym razem, gdy naciskamy odpowiedni klawisz szybkiego dostępu.
  • accessKey="a". To jest klawisz szybkiego dostępu powiązany z przyciskiem. Zauważcie, że klawisz Alt jest już uwzględniony. Musimy określić tylko ten „drugi” klawisz; w tym przypadku tym klawiszem jest a. Tak przy okazji, to jest klawisz a, nie litera a. Nie ma różnicy pomiędzy dużą literą A (np. klawisz naciśnięty, gdy wciśnięty jest również klawisz Caps Lock) lub małą literą a (kiedy Caps Lock nie jest wciśnięty).

Oprócz dodania tych dwóch parametrów ważny jest format oznaczenia przycisku (czyli tekstu pojawiającego się na przycisku):

Button <U>A</U>

W przeciwieństwie do znacznika <input> znacznik <button> umożliwia wykorzystanie znaczników HTML jako części tekstu oznaczenia. Wystarczyło tylko zastosować znacznik podkreślenia (<U></U>) w celu umieszczenia podkreślnika pod A w Button A. Jest to standardowy sposób oznaczania klawiszy szybkiego dostępu w systemie Windows. Jeżeli jednak ten sposób Wam nie odpowiada, możecie zastosować inną metodę oznaczenia klawisza szybkiego dostępu. Przykładowo poniższe znaczniki powodują pogrubienie litery A:

Button <B>A</B>

Itd. Itp.

Jeżeli chodzi o podprocedury, które zostają wywołane po kliknięciu przycisku lub naciśnięciu klawisza szybkiego dostępu, cóż - w naszym prostym skrypcie podprocedury są równie proste: wyświetlają pole komunikatu mówiące o tym, który przycisk został kliknięty. Oto na przykład kod dla przycisku ButtonA podprocedury:

Sub ButtonA

    Msgbox "Button A was clicked."

End Sub

Prawdopodobnie Wasza aplikacja HTA będzie trochę bardziej skomplikowana i może nawet bardziej praktyczna. Ale to zależy tylko od Was.

 Do początku strony Do początku strony

Centrum skryptów - Systemy operacyjne