Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Emzari
-
- Продвинутый пользователь
-
-
- Сообщения: 129
- Зарегистрирован: 06.09.2002 (Пт) 9:08
- Откуда: Georgia
Emzari » 05.06.2003 (Чт) 10:18
Есть проект который длжен двигать курсор миши. координаты миши записаны в фаиле а воспроизведение происходить по таимеру. нужно щтоб при нажатии наклавише например Esc таимер прекрашал работу.
Я исползовал собитие KeyDown формы но не работает.
привожу код:
- Код: Выделить всё
Option Explicit
' SetCursorPos
Private Declare Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As Long) As Long
' Tipi Cursoris poziciis shesanaxad
Private Type CURPOS
x As Long
y As Long
End Type
' Zemot agtserili tipis masivi
Private cp(4000) As CURPOS
Private idx As Long
Private last_idx As Long
Private Fname As String
Private Sub Command1_Click()
Fname = App.Path & "\Cur.Dat"
Open Fname For Binary As #1
Get #1, , cp
Close #1
idx = 0
last_idx = 1452
'Cursoris modzraoba
Timer1.Enabled = True
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
' masivis mixedvit kursoris pozisiis shetsvla
idx = idx + 1
Call SetCursorPos(cp(idx).x, cp(idx).y)
' Tu masivis bolo elementia mashin
' tavidan vitskebt
If idx = last_idx Then idx = 0
DoEvents
End Sub
заранее спасибо
-
RayShade
-
- Scarmarked
-
-
- Сообщения: 5511
- Зарегистрирован: 02.12.2002 (Пн) 17:11
- Откуда: Russia, Saint-Petersburg
-
RayShade » 05.06.2003 (Чт) 10:21
Для начала убедись что Form.keypreview = true
-
ToT
-
- Продвинутый пользователь
-
-
- Сообщения: 124
- Зарегистрирован: 10.06.2002 (Пн) 11:56
- Откуда: Russia, Taganrog
-
ToT » 05.06.2003 (Чт) 10:58
Может у тебя фокус стоит не там, где надо? Проверь.
Keyboard not found. Press any key.
-
Alfa
-
- Бывалый
-
-
- Сообщения: 249
- Зарегистрирован: 12.01.2003 (Вс) 20:15
- Откуда: Россия, Красноярск
-
Alfa » 05.06.2003 (Чт) 20:34
Конечно есть, постоянно пользуюсь.
Смотри:
1.Прописываешь API(в General)
(Private(если надо)) Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
2.Используешь(в таймере с интервалом 50 милисекунд):
If GetAsyncKeyState("&H1B") Then ' &H1B = код клавиши Escape(Esc) в Api
Timer1.Enabled = True
MsgBox "Что-то ESC нажата...."
End If
-
ToT
-
- Продвинутый пользователь
-
-
- Сообщения: 124
- Зарегистрирован: 10.06.2002 (Пн) 11:56
- Откуда: Russia, Taganrog
-
ToT » 06.06.2003 (Пт) 11:17
Еще можешь хук на клавиатуру поставить. Посмотри пример в
API-Guide (поищи "Hook"), а если еще нет APi-Guide, то быстрее качай.
Keyboard not found. Press any key.
-
Emzari
-
- Продвинутый пользователь
-
-
- Сообщения: 129
- Зарегистрирован: 06.09.2002 (Пт) 9:08
- Откуда: Georgia
Emzari » 06.06.2003 (Пт) 19:00
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 106