вопрос про sendkeys

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

вопрос про sendkeys

Сообщение BOO » 20.10.2003 (Пн) 20:43

Можно ли через эту функцию задать задержку в нажатии клавиши или через какую функцию это сделать?

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 21.10.2003 (Вт) 10:53

Насколько я понял - ты хочешь чтобы между нажатием клавиши и событием по этой клавише проходило некоторое время.
Можно использовать ф-цию Timer
В данном примере функция Timer используется для временной остановки приложения. Кроме того, в нем используется инструкция DoEvents , организующая передачу управления другим процессам на время паузы.

Dim PauseTime, Start, Finish, TotalTime
If (MsgBox("Нажмите Да, чтобы прервать выполнение на 5 секунд", 4)) = vbYes Then
PauseTime = 5 ' Задает длительность.
Start = Timer ' Задает начало паузы.
Do While Timer < Start + PauseTime
DoEvents ' Передает управление другим процессам.
Loop
Finish = Timer ' Задает конец паузы.
TotalTime = Finish - Start ' Вычисляет длительность паузы.
MsgBox "Длительность паузы: " & TotalTime & " секунд"

Else
End
End If

Я сделал так:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim PauseTime, Start
PauseTime = 5 ' Задает длительность.
Start = Timer ' Задает начало паузы.
Do While Timer < Start + PauseTime
DoEvents ' Передает управление другим процессам.
Loop
End Sub
После чего между нажатием клавиши и появлением символа в текст боксе пауза 5 сек соотв.
Понимаешь? (с)Б.Ельцин.

BOO
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 126
Зарегистрирован: 06.09.2003 (Сб) 14:23
Откуда: Саратовская обл. г.Энгельс

уточнение

Сообщение BOO » 21.10.2003 (Вт) 22:24

Нет ты не понял!
Мне надо чтобы имитировалось не кратковременоое нажатие на клавишу как при печатание,а долговременное (ты нажал клавишу и держишь ее) например, идешь ввепред в экшине(wwwwwwwwwwwwwwwwwwwwww), а не(w)

Fedorfx
Постоялец
Постоялец
 
Сообщения: 371
Зарегистрирован: 10.10.2002 (Чт) 0:14

Сообщение Fedorfx » 21.10.2003 (Вт) 22:30

Public MyKey as integer

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
MyKey=keycode
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
MyKey=0
End Sub

Private Sub Timer1_Timer()
select case keyascii
case vbkeyW: Идем вперед
Case vbkeyX: Идем назад
end select
End Sub

SmarT
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 18.12.2002 (Ср) 19:39
Откуда: Королёв, Россия

Сообщение SmarT » 21.11.2003 (Пт) 8:09

Народ, а как можно иммитировать нажатие Alt+L, например? Это наверна через keybevent, но я с ним плохо знаком. Поскажите плиииз!
http://smarticq.net - Все про и для ICQ.

Kosyak
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 22.09.2003 (Пн) 12:00
Откуда: Спб

Сообщение Kosyak » 21.11.2003 (Пт) 11:48

SendKeys "%{L}"

SmarT
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 18.12.2002 (Ср) 19:39
Откуда: Королёв, Россия

Сообщение SmarT » 21.11.2003 (Пт) 15:11

Уря! Пасиб огромное!!! Работает! Кстати, раз уж туда пошло, мне на будущее, кто-нить знает, как контрол зажать? пасиб!
http://smarticq.net - Все про и для ICQ.

Kosyak
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 22.09.2003 (Пн) 12:00
Откуда: Спб

Сообщение Kosyak » 21.11.2003 (Пт) 16:16

Если хошь чтоб на всей форме работало, то в свойствах формы поставь Keypreview = true, и на событие нажатия клавиши напиши

Private Sub Form_KeyPress(KeyAscii As Integer)
SendKeys "^" & Chr(KeyAscii)
End Sub


Только будь аккуратней чтоб не попасть в бесконечную итерацию, какой нибудь флаг чтоли поставь, для прерывания повторного вызывания...

SmarT
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 18.12.2002 (Ср) 19:39
Откуда: Королёв, Россия

Сообщение SmarT » 21.11.2003 (Пт) 23:28

не, я не в своей форме. я умею этим пользоваться всем, пасиб, я тока не знал, как посылать альт и контрол. Пасиб!
http://smarticq.net - Все про и для ICQ.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList