Симулира клавиши
Книги → Delphi. Каскади и ефекти → симулира клавиши
Статус клавиши на клавиатурата, можете да не само да се определи, също така е възможно да се промени програмата. Помислете за един от начините, клавишни комбинации, за програмата, която е изключително проста, благодарение на keybdevent на API-функция, просто за цел да симулира клавиши.
Присвояване на параметри, за да се обясни тази функция пример (обявата 3.18).
процедура TForm1.cmbStartClick (Sender: TObject);
// симулира натискане на клавиша Windows
keybd_event (VK_LWIN, 0, 0, 0);
// симулиране на ключ освобождаването на Windows
keybd_event (VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
Ние сме заинтересовани от, по-специално, на първия и третия параметри keybdevent функция (вторият не се използва, а третият е предназначен за монтаж на допълнителна информация, отнасяща се до ключ натискане). Първият параметър предава на функцията на "бутане" или код "определени от" ключ. Третият параметър е нула, когато "натиснат" и при постоянно KEYEVENTF_KEYUP "освободен" от ключово значение.
При използване на keybd_event-важното - не забравяйте да "пусне" софтуерни клавиши (като в примера по-долу). В противен случай съществува риск щедро "Г-н люкове" клавиатура за въвеждане.
Подобно на примера на Обява 3.18 софтуер натискане на бутона Print Screen (премахване на копието на екрана) е в Обява 3.19.
процедура TForm1.cmbPrintScreenClick (Sender: TObject);
// Натиснете Print Screen
keybd_event (VK_SNAPSHOT, 0, 0, 0);
keybd_event (VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);
3.20 обява е пример за натискане на комбинацията от няколко клавиша (Windows + M, за да се минимизира всички прозорци).
процедура TForm1.cmbMinimizeAllClick (Sender: TObject);
keybd_event (VK_LWIN, 0, 0, 0);
keybd_event (Byte ( "М"), 0, 0, 0);
keybd_event (Byte ( "М"), 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
Като прибавим към това клавишна комбинация Shift ще възстанови първоначалното състояние на прозорците.
Последният пример илюстрира как можете да използвате софтуерни клавиши за ускоряване бърз достъп до програми. Това се отнася до софтуера, натиснете бързи клавиши, свързани с преки пътища на работния плот или в менюто Start. Да кажем, че вашият компютър използва клавишната комбинация Ctrl + Alt + E за да стартирате Internet Explorer. Пример софтуер натискане на този бутон комбинация е показана на Обява 3.21.
процедура TForm1.cmbEIxplorerClick (Sender: TObject);
// Push комбинацията на Ctrl + Alt + E
keybd_event (VK_CONTROL, 0, 0, 0);
keybd_event (VK_MENU, 0, 0, 0);
keybd_event (Byte ( "Е"), 0, 0, 0);
keybd_event (Byte ( "Е"), 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
Последният пример е особено полезно при използването на множество програми (за този етикет тези програми трябва да бъдат причислени към клавишни комбинации).