Czasem scenariusz działania skryptu lub programu wymaga symulacji niektórych działań użytkownika – na przykład, naciśnięcie klawisza lub kliknięcie na dany element. Zrealizować to można albo wbudowane funkcje tego języka programowania, na którym się pisze program, albo za pomocą specjalnego interfejsu systemu operacyjnego. Taki interfejs przeznaczony do komunikacji aplikacji z systemowymi i nazywa API – Application Programming Interfaces.
Instrukcja
1
Dowiedz się, czy w używanym do pisania programu lub skryptu języku wbudowane narzędzia do emulacji naciśnięciu klawisza. Na przykład w języku JavaScript naciśnięcie lewego przycisku myszy symulowane za pomocą metody podpięte do konkretnych elementów interfejsu użytkownika. Powiedzmy, aby emulować naciśnięcie lewego klawisza myszy w pomieszczeniach kursora nad przyciskiem o nazwie autoClkButton, umieszczone w formularz o nazwie autoClkForm, należy użyć konstrukcji document.autoClkButton.autoClkForm.click(). W tym języku właściwość click() mają nie tylko przyciski (button, reset, submit), ale i elementy wyboru checkbox i radio.
2
Podłącz zewnętrzną funkcję keybd_event, jeśli w używanym języku nie ma odpowiednich wbudowanych narzędzi, które sprawiają, że wszystko automatycznie. Jest to funkcja Win32 API, więc aby móc z programu skontaktować się z nim, należy umieścić na początku kodu blok, który importuje funkcji zewnętrznej biblioteki. Aby to zrobić, należy zgodnie ze składnią języka używanego izolowanego. Na przykład, w języku programowania terminali do obrotu giełdowego MQL (MetaQuotes Language) w celu wywołania funkcji, poddanych biblioteki systemowej user32.dll na początku kodu należy umieścić takie polecenia:#import „user32.dll”bool keybd_event(int bVk, int bScan);#importПосле tego będzie możliwe korzystanie z ogłoszonego w bloku importu funkcji keybd_event.
3
Keybd_event ma cztery parametry. Pierwszy (bVk, typ danych BYTE) może przyjmować jedną z wartości 255 i wskazuje na przycisk, klikając który będzie być. Które z tych wartości wartość jest równa żądanej klawisza dowiedzieć się na tej stronie – http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx. Drugi parametr (bScan, typ BYTE) – to „skan-kod”, który jest generowany po naciśnięciu wybranego klawisza. Trzeci (dwFlags, typ DWORD) może mieć jedną lub obie przewidzianych dla niego wartości (KEYEVENTF_EXTENDEDKEY i KEYEVENTF_KEYUP). Pierwsza wskazuje, że będzie to opis generowany zaawansowany kod klawisza, a drugi oznacza, że przycisk został wciśnięty, a następnie zwolniony. Czwarty parametr (dwExtraInfo, typ ULONG_PTR) może zawierać dodatkowe flagi, indywidualne dla każdego klawisza.
Kategoria:
Oprogramowanie