| 
| 
 | Вопрос # 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
 
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |