Программирование
Веб программирование

Клавиатура на visual basic

 
 

Как я и обещал в первой части, что мы будем работать с клавой. Для этого нам понадобится программа, которую мы делали в первой части в 7 шаге. Эта программа переводит числа в код Аски и обратно, если у тебя ее нет, то скачай ее от сюда. Хей, Стоп не нажимай туда, обойдемся и без нее. Теперь входим в VB, у форме событие Event делаем KeyDown(если нажата клавиша):

Теперь пишем код:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = Asc("Z") Then 
MsgBox "Ты нажал на Z"
End If
End Sub

Ну на этом я закончу тебя грузить, можешь переходить к следующей. В ней будем делать приколы, работать с файлами и папками, сделаем PinBall, Блокнот, и Internet Explorer 7....

 


Есть вопросы? Спроси на нашем форуме!!
Гость [08.07.2011 00:09]

если не получается , может на твоём бэйсике не работает со строчной буквой, напиши большую.

Ильдар [13.12.2011 00:07]

Не подскажете ли коды клавиш - лево, вправо, вверх, низ!!!? Заранее благодарен!

Карим [13.12.2011 12:40]

http://vbbook.ru/visual-basic/dvigaem-komponentu-s-pomoshu-klaviatyru/

Карим [13.12.2011 12:40]

здесь есть примеры работ с клавой

Ильдар [13.12.2011 22:52]

Спасибо, Карим! Работает!

Я [24.12.2011 12:49]

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyDown = z Then
MsgBox "Ты нажал на Z"
End If
End Sub

Так тоже работает.

фрагер [24.12.2011 19:47]

позарез нужна строчная буква как с ней сделать если их не читает?

Ильдар [03.01.2012 10:15]

Если на форму кинуть кнопку, то почуму-то клавиши перестают срабатывать! Не подскажете почему?

алексей [03.01.2012 10:32]

да потому что фокус переходит на кнопку и она мешает делать действие на форуме
можно сделать так
Private Sub Command1KeyDown(KeyCode As Integer, Shift As Integer)
Call Form
KeyDown(KeyCode, Shift)
End Sub
Private Sub FormKeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 32 Then MsgBox ""
End Sub

тоесть в кнопке тебе надо прописать этот код
Call Form
KeyDown(KeyCode, Shift)
можно не только в кнопке а ещё и в текстовом поле и лабел и т.д.

M161350 [17.07.2013 13:12]

А какой код на Enter?

alex13sh300 [17.07.2013 13:41]

3 варианта:
13 || VbKeyEnter || asc(vbCrLf)

Ivan40 [17.07.2013 19:36]

Ну и что тут такого? Пустая форма, ничего не происходит. Кликать по ней бесполезно. Даже ошибок никаких не выдаёт. Код я вот этот написал:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = Asc("Z") Then
MsgBox "Ты нажал на Z"
End If
End Sub

Mishin870390 [17.07.2013 19:53]

Ivan, все работает. вот http://rghost.ru/47487696 я лучше файлообменников не знаю.
там проект на vb6

alex13sh300 [17.07.2013 19:56]

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Msgbox Chr$(KeyCode),,KeyCode
End Sub

Shade970 [17.07.2013 20:12]

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Dim lngEnter As String
lngEnter = (vbCrLf)
MsgBox "Нажата клавиша Enter " & Asc(lngEnter)

End Sub

zhozhek30 [06.10.2013 21:14]

как сделать ,дублирующую клавишу, кнопку на форме, типа если делаешь клавиатуру: 102 кнопки на форму кинуть, а к ним значение такое, нажал, например, на command31, и срабатывает Backspace, или command72, и срабатывает Enter?

Stertor370 [06.10.2013 22:55]

с помощью хуков.

zhozhek30 [07.10.2013 10:26]

а что такое хук?

ReDoX170 [07.10.2013 13:34]

http://bit.ly/GFcGBO
Или
Хуки — это технология перехвата вызовов функций в чужих процессах.

v19307310 [17.12.2013 18:59]

...вот вот и меня тоже очень интересует технология перехвата вызовов функций в чужих процессах.....подскажите пожл..очень надо...хотелось бы на примере как к клаве привязать выполнение какого нибудь события....а то только MsgBox работает и Visible а дальше хрен с масл....не чего не работает ни каких событий не могу врубить к определённой клаве.....приспасибки заранее

Stertor370 [18.12.2013 11:32]

Если в чужих процессах - тогда нужно писать *.dll, которая будет подгружаться к процессам. На бейсике это сделать нельзя, только на Делфи или с++. Пиши в личку, разберем.



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.