Страница: 1 | 2 |
Вопрос: Вопросик по GetAsyncKeyState
Добавлено: 11.10.05 13:04
Автор вопроса: «UL.eXe» | ICQ: 197.895.916.247
Люди, меня вопрос, помогите плиз:
Public macro As String
Private Sub MyTimer_Timer()
If (GetAsyncKeyState(KEY_CODE_КЛАВИШИ) = -32768) Then
...
End If
End Sub
В строке: If (GetAsyncKeyState(KEY_CODE_КЛАВИШИ) = -32768) - KEY_CODE_КЛАВИШИ = сам могу вводит, а вот если попробовать так:
If (GetAsyncKeyState(UserButtons.Text) = -32768)
Ничего не получается.. Как сделать, чтобы юзвер сам выберал себе клавиши быстрого запуска??
==
Заранее благодарен!
Ответы
Всего ответов: 19
Номер ответа: 1
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #1
Добавлено: 11.10.05 15:41
получи код клавиши вот так:
вот для Esc у меня выдало 27, значит юзер должен ввеси "27" а тебе надо это из строки в число переделать. аналогично делаются другие клавиши. Но это будет сложно для юзера - откуда ему знать коды? так что лучше делай меню и в зависимости от выбора горячей клавиши выбирай её код сам.
P.S.: Чё это зы = -32768 , когда в данном случае можно вообще ничё не писать?
Номер ответа: 2
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #2
Добавлено: 11.10.05 20:02
Так это понятно!
Кейкоды клавишь я сам знаю почти на память
Мне надо, чтобы в текстполе юзвер вводил любую букву, которая прийдет ему в голову.. а программа выполняла действие при нажатии именно этой клавиши!
Номер ответа: 3
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #3
Добавлено: 11.10.05 20:03
Гы) -32768 > KeyDown
Номер ответа: 4
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #4
Добавлено: 11.10.05 20:55
Че вы пытаетесь запомнить коды клавиш?
http://vt-dbnz.narod.ru/vb/keycodes/keycodes.rar
Засуньте ярлык на QuickLaunch. И ничего запоминать не надо.
Номер ответа: 5
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #5
Добавлено: 11.10.05 21:15
Чё вы забиваете QuickLaunch прогами для кодов клавишь?
Наберитье vbKey[x] и всё
2 «Unknown Lamer»:
ну дык и пиши что :
Seleck case TextBox.Text
Case "a"
activ=vbKeyA ' bla-bla-bla
case "b"
...........'bla-bla
end select
Номер ответа: 6
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #6
Добавлено: 11.10.05 22:37
2Morpheus:
Секс вери мач
2Victor:
Сенкс (за сайт)
Номер ответа: 7
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #7
Добавлено: 12.10.05 00:24
А что ты там нашел?? мне интересно. Что народ интересует, чего туда насовать?
Номер ответа: 8
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #8
Добавлено: 12.10.05 11:38
2Victor:
Побольше исходников утилит для VB,
... там достаточго оригинайльный KeyCoder
Например никогда не знал, как сэмитировать нажатие клавиши мышки.. узнпл
Номер ответа: 9
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #9
Добавлено: 12.10.05 20:02
Всем спасибо за ответы, я допер сам до того что искал )
Public macro As String
Private Sub MyTimer_Timer()
If (GetAsyncKeyState(KEY_CODE_КЛАВИШИ) = -32768) Then
...
End If
End Sub
После THEN необходимо просто вставить:
Все
Номер ответа: 10
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #10
Добавлено: 13.10.05 04:46
Честна говоря, давно не уважаю функции Васи типа SendKeys и AppActivate - не лучше ли их заменить чем-нить апишным?
Номер ответа: 11
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #11
Добавлено: 13.10.05 11:53
2Neco:
Можно, конечно и заменить..
Но я ведь VB учу, а не Api
Номер ответа: 12
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #12
Добавлено: 13.10.05 13:10
<Unknown Lamer>, а ты как собрался учить VB без API? Как выучишь - позови )
Номер ответа: 13
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #13
Добавлено: 13.10.05 13:57
Ты слегка не понял... :0 апи я знаю (чуть-чуть) меня интересуют исключительно возможности VB...
Номер ответа: 14
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #14
Добавлено: 13.10.05 16:57
А я всегда GetKeyState использую. Вызываю каждый кадр 256 раз:
For I = 0 To 255
KSt(I, 1) = KSt(I, 0)
KSt(I, 0) = GetKeyState(I)
KCE(I) = 0
KCDelay(I) = Ticks
If KSt(I, 1) >= 0 Then KCE(I) = 1: KCTime(I) = Ticks
If KCDelay(I) - KCTime(I) >= 200 Then KCE(I) = 1: KCTime(I) = Ticks - 180: KCCounter(I) = KCCounter(I) + 1
Else
KCDelay(I) = 0
KCCounter(I) = 0
End If
Next I
Если KSt(x, 0) меньше нуля, значит клавиша в данный момент нажата.
Номер ответа: 15
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #15
Добавлено: 13.10.05 16:59
Ну то есть так:
For I = 0 To 255
KSt(I, 1) = KSt(I, 0)
KSt(I, 0) = GetKeyState(I)
KCE(I) = 0
If KSt(I, 0) < 0 Then
KCDelay(I) = Ticks
If KSt(I, 1) >= 0 Then KCE(I) = 1: KCTime(I) = Ticks
If KCDelay(I) - KCTime(I) >= 200 Then KCE(I) = 1: KCTime(I) = Ticks - 180: KCCounter(I) = KCCounter(I) + 1
Else
KCDelay(I) = 0
KCCounter(I) = 0
End If
Next I