|
Вопрос # 2 753/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Как можно программно зажать кнопку Shift на 10 секунд???
Пожалуйста помогите!!!
 |
Вопрос задал: Некто (статус: Заблокирован)
Вопрос отправлен: 9 мая 2009, 09:53
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Dron
Здравствуйте, Мусабаев Равиль!
Для глобального управления клавиатурой используется функция keybd_event(). Имитация нажатия клавиши делается следующим образом:
keybd_event(VK_LSHIFT, 0, 0, 0);
Важно не забыть "отпустить" клавишу:
keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0);
Чтобы создать 10-секундную задержку, можно воспользоваться таймером (Interval = 10000, Enabled = False):
procedure TForm1.Timer1Timer(Sender: TObject);
begin
keybd_event(VK_LSHIFT, 0, KEYEVENTF_KEYUP, 0);
end;
А код включения соответственно такой:
keybd_event(VK_LSHIFT, 0, 0, 0);
Timer1.Enabled:=True;
Другой вариант - использовать функцию Sleep(), но в этом случае на заданное время программа "заморозится". В вашем случае, думаю, таймер - лучшее решение. Если нужен правый Shift, то код клавиши нужно заменить на VK_RSHIFT.
Удачи!
 |
Ответ отправил: Dron (статус: Студент)
Время отправки: 9 мая 2009, 11:54
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|