Як емулювати натискання.

Іноді сценарій роботи скрипта або програми вимагає імітації деяких дій користувача - наприклад, натискання клавіші або клацання мишею по якому-небудь елементу. Реалізувати це можна або вбудованими засобами тієї мови програмування, на якому пишеться програма, або з використанням спеціального інтерфейсу операційної системи. Такий інтерфейс призначений для взаємодії прикладних програм з системними і називається API - Application Programming Interfaces.
Інструкція
1
З'ясуйте, чи передбачені у використовуваному для написання програми або скрипта мовою вбудовані засоби емуляції натискання клавіші. Наприклад, у мові JavaScript натискання лівої кнопки миші імітується за допомогою методу, прив'язаного до конкретних елементів інтерфейсу користувача. Скажімо, щоб емулювати натискання лівої клавіші миші при знаходженні курсора над кнопкою з ім'ям autoClkButton, вміщеній у форму з ім'ям autoClkForm, треба використовувати конструкцію document.autoClkButton.autoClkForm.click (). У цій мові властивість click () мають не тільки кнопки (button, reset, submit), але й елементи вибору - checkbox і radio.
2
Задіюйте зовнішню функцію keybd_event, якщо у використовуваному мові немає потрібних вам вбудованих засобів, які роблять все необхідне автоматично. Це функція Win32 API, тому щоб мати можливість з програми звертатися до них, вам слід помістити на початку коду блок, що імпортує функції зовнішньої бібліотеки. Зробити це слід відповідно до синтаксисом використовуваної програмного середовища. Наприклад, в мові програмування терміналів для біржової торгівлі MQL (MetaQuotes Language) для виклику функцій, поміщених в системну бібліотеку user32.dll на початку коду слід помістити такі рядки: #import "user32.dll" bool keybd_event (int bVk, int bScan); # importПосле цього стане можливим використання оголошеної в блоці імпортування функції keybd_event.
3
Keybd_event має чотири параметри. Перший (bVk, тип даних BYTE) може приймати одне з 255 значень і вказує на клавішу, натискання якої імітуватиметься. Яке з цих значень значення присвоєно потрібної вам клавіші з'ясуйте на цій сторінці - http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx. Другий параметр (bScan, тип BYTE) - це «скан-код», який генерується при натисненні обраної клавіші. Третій (dwFlags, тип DWORD) може приймати одне або обидва передбачених для нього значення (KEYEVENTF_EXTENDEDKEY і KEYEVENTF_KEYUP). Перше вказує, що буде сформований розширений код клавіші, а другий означає, що кнопка була натиснута, а потім відпущена. Четвертий параметр (dwExtraInfo, тип ULONG_PTR) може містити додаткові прапори, індивідуальні для кожної клавіші.