Simulovanie práce s klávesnicou v Notes klientovi

Miroslav Uhlár, 9. května 2003, světNotes.cz

Ak ste niekedy potrebovali v prostredí Notes klienta simulovať prácu s klávesnicou, tak viete, že to nieje jednoduché. Možno cestou je použitie WIN 32 API a jeho metódy "keybd_event".

Ako z vyššie uvedeného vyplýva, tento návod je aplikovateľný vtedy, ak sú splnené dva predpoklady:
1. Klient Lotus Notes pracuje vo Win32 prostredí
2. Sekvenciu je možné naprogramovať v LotusScripte

Najskôr si povedzte, akú sekvenciu chcete simulovať. Zvyčajne ide o jednu z týchto situácií:
1. V sekvencii potrebujete odtieniť používateľa od interaktívneho okna (napríklad dialógové okná s kontrolnou otázkou).
2. V sekvencii sa sprístupňuje menu príkaz, ktorý nie je jednoducho dostupný a nemá alternatívu v command príkazoch.
3. V LotusScript sekvencii potrebujete zaradiť príkaz, ktorý nemá v LS alternatívu.

Práve posledný typ je riešený v nasledujúcom príklade:
Stojíte pred otázkou, ako vynútiť v LS sekvencii znovu-prihlásenie používateľa. Potrebovali by ste jednoducho simulovať v LS postupnosť príkazov File-Tools-LockID, alebo inak: Alt - F - T - L. (Viem, je to možné aj cez F5, no tento alternatívny prístup som zvolil kvôli ilustratívnosti).

Riešenie je nasledovné:
1. V príslušnom objekte zadeklarujte funkciu keybd_event:
Declare Sub keybd_event Lib "user32.dll" (Byval bVk As Integer, Byval bScan As Integer, Byval dwFlags As Integer,Byval dwExtraInfo As Integer)

2. V samotnej LS sekvencii vložte riadky, ktoré simulujú stláčenie kláves:
keybd_event &h12,0,0,0 ' stlačené <Alt>

keybd_event &h46,0,0,0 ' stlačené <F>
keybd_event &h46,0,2,0 ' uvoľnené <F>

keybd_event &h54,0,0,0 ' stlačené <T>
keybd_event &h54,0,2,0 ' uvoľnené <T>

keybd_event &h4C,0,0,0 ' stlačené <L>
keybd_event &h4C,0,2,0 ' uvoľnené <L>

keybd_event &h12,0,2,0 ' uvoľnené<Alt>

Hotovo. A v prípade, že začnete využívať tento prístup systémovo, rozhodne odporúčam zapuzdriť kódy kláves do konštánt (napr. VK_F=&h46) a začať objektovo programovať. Tvorba i údržba sekvencií sa výrazne zjednoduší.


Miroslav Uhlár