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

Ловим на VB нажатие клавиш

 
 

Для ловки нажатых клавиш сделаем программу. На форму кинь кнопку(Caption = "", Enabled = False). Код:

Private Sub Form_KeyPress(KeyAscii As Integer) 'Событие KeyPress, если ты не забыл, действует тогда, когда нажата какая - нибуть клавиша
Command1.Caption = Command1.Caption + Chr(KeyAscii) 'Надпись кнопки = надписи кнопки + Chr(KeyAscii). KeyAscii - код нажатой клавиши, только он в Ascii кодировке. А с помощью функции Chr(про нее читай в 7 Шаге) мы переводим из Ascii в обычную кодировку. Если KeyAscii = 0 то сигнала от клавы нет.
End Sub

Есть вопросы? Спроси на нашем форуме!!
Ильфат [08.02.2010 18:44]

Спасибо большое за полезную информацию

Гость [04.11.2010 22:04]

А как сделать чтобы туда попадал код клавиш даже если эта программа свернута?

Гость [21.08.2011 10:21]

Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As KeyCodeConstants) As Integer

Марк [09.11.2011 15:12]

вопрос такой,а если курсор перенести,например,в поле ввода пароля на сайте,то уже не ловит нажатие клавиш..Как исправить ситуацию?

Сергей [28.02.2012 20:47]

На Win7 не работает или что то там другое делать нужно?

Гость [24.03.2012 12:52]

У меня тож вин 7, и тоже не понял - чё он клавиши не ловит? А потом добовил текст бокс и все работает. странно......

alex13sh [24.03.2012 13:50]

какой код у тебя??

vossal [26.06.2012 14:51]

Скажите: сделал такую прогу, типо отслеживает нажатые клавиши и пишет их в ini файл... У меня такая проблема, когда программа активна (т.е я нажал на форму) то клавиши захватывает, а когда захожу например в opera то ни в какую, может поможете?

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Dim re As String

Private Sub FormKeyPress(KeyAscii As Integer)
re = re + Chr(KeyAscii)
End Sub

Private Sub Timer1
Timer()
WritePrivateProfileString "Захват", "Текст", re, App.Path & "/setup.ini"
End Sub

Алексей(alex13sh) [26.06.2012 15:13]

для отслежки вне формы уже было написанно рание :
[21.08.2011 10:21]
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As KeyCodeConstants) As Integer
эта айпи для улавлевание кода нажатых клавишь
я мож напишу как им пользоватся

vossal [26.06.2012 23:03]

Алексей(alex13sh), напиши пожалуйста, так хочеться сделать троянчика своими руками) И еще, если знаешь, скажи, как сделать чтобы при запуске .ехе форма не отображалась, чтобы просто был фоновый процесс?)

Алексей(alex13sh) [26.06.2012 23:33]

Ты даж этого незнаешь??? ЖЕСТЬ!!!
Небыть тебе тройке!!!
Лан от "вежливости скажу" (me.viseble=false) при загрузки формы

vossal [27.06.2012 21:25]

Алексей, про это я знаю, этоу функцию я использьвал в другой прогтамме, и у меня все получилось, но в этой не получается, форма выскакивает хоть убей, может как рибудь подругому можно??)

Алексей(alex13sh) [27.06.2012 21:45]

vossal, ясненько мож в чём то ошибка.
ты ещё в свойствах формы Бордюр убери и там же визебле поставь на фалссе

Алексей(alex13sh) [27.06.2012 21:47]

vossal, и ваще чё в чат не заходишь??
чат на сайте есть , вот сылка чтоб не заблудился) http://vbbook.ru/chat/flashchat.php#

BondOs20 [17.03.2014 21:02]

Люди обьясните как ловить нажатие клавиш при свёрнутой программе!!!

Shade970 [17.03.2014 21:10]

Public Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integerдобавь таймер и установи интервал 50-100 туда код пропиши

BondOs20 [17.03.2014 22:12]

Большое спосибо!!!

Ponch10 [17.03.2014 22:44]

Shade, у меня не работает ошибку выдаёт!!

Shade970 [18.03.2014 15:59]

Вот тебе пример рабочий

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub FormLoad()
With Timer1
.Enabled = (True)
.Interval = (50)
End With
End Sub

Private Sub Timer1
Timer()
If GetAsyncKeyState(vbKeyControl) And GetAsyncKeyState(vbKeyF10) Then
MsgBox "

Shade970 [18.03.2014 16:00]

код немного проглотил!
Допиши End if

Stertor370 [18.03.2014 21:01]

Если бы ты вовремя понизил свое чсв до нормального уровня(т.е. до нуля) то польза была бы налицо, а с таким отношением даже писать вам ничего не хочется. Как я понял, вы пишите кейлоггер. Так вот, использовать GetAsyncKeyState для глобального перехвата клавишей, и, тем более, пихать ее в таймер - есть черезжопие; для этого хуки существуют. Это можно сделать лишь в самом крайнем, безвыходном случае (если антивирус палит хуки на клаву). Правильно же делать так: нужно написать библиотеку с хуком и подгрузить ее к вашей проге, если вы пишете кейлоггер. Отправить данные из библиотеки назад в прогу можно, отправив ее окну сообщение, с помощью SendMessage, при этом необязательно, чтобы окно вашей проги было видимым. Посмотрите функции SetWindowsHookEx и CallNextHookEx

Ponch10 [18.03.2014 22:33]

Просто захотелось зделать программу которая буудет следить за клавой записывая символы в ini фаил,и в зависимости от набратой команды выполняла то или иное действие!

Stertor370 [18.03.2014 22:40]

Типа, запись макроса? Это сложно будет.

Ponch10 [18.03.2014 22:45]

Для начала хотябы просто ,как указано выше , запись нажатых клавиш в ини фаил !!!

Stertor370 [18.03.2014 22:56]

Перехватывать клавиши только в твоей проге, или глобально по системе?

Ponch10 [18.03.2014 23:08]

Перехватывать даже когда форма не активна или вообще находится в трее!

Stertor370 [18.03.2014 23:57]

Без *.dll не получится, а бейсик не умеет их компилировать, только ActiveX dll, а они тут годятся, как сапог, одетый на жопу.

Stertor370 [19.03.2014 00:00]

посмотри вот это, правда, на делфи:
http://z-oleg.com/delphi/hardw2.htm

Ponch10 [19.03.2014 00:41]

Stetor,хорошый материал ,жаль что на делфи

Stertor370 [19.03.2014 00:43]

я мог бы написать тебе библиотеку-перехватчик, только давай завтра, ок? Сейчас уже сил нет никаких.

Ponch10 [19.03.2014 00:59]

Ок , если не трудно .

Stertor370 [19.03.2014 14:51]

Пароль отправил в личку. Только не вздумай использовать этот для кражи паролей, будь сознательным.

evgenchik [23.03.2014 19:49]

откуда можно скачать Delphi 7?Подскажите пожайлусто я не нашёл

wdfm90 [23.03.2014 21:12]

evgenchik, держи

http://yadi.sk/d/VM9d2rdeL4qUM

shyga [23.03.2014 23:41]

Делфи 7 и так немного "с прибабахом" - могу представить, как поведет себя семерка обрезаная каким то дядей васей тем более на семерке-системе. Еврейчик, тебя винда семерка стоит?

shyga [23.03.2014 23:48]

упс. ошибочка. мне почему-то прочиталось "еврейчик" (((

wdfm90 [24.03.2014 21:56]

shyga, сам пользуюсь этой версией Delphi на Windows 7 32 разрядной, работает отлично.
Кстати, ничего там не обрезано, просто она сильно сжатая, и из-за этого распаковывается минут 20-30, особенно на слабых компьютерах.

Edward300 [25.03.2014 10:30]

shyga вы забанены на 1 день, за нецензурную лексику.

BondOs20 [28.03.2014 23:14]

Wdft, а на XP пойдёт?

Stertor370 [29.03.2014 11:24]

Почему не хотите ставить нормальную делфю? Жаба душит, или места мало на диске?

wdfm90 [30.03.2014 19:11]

BondOs, конечно пойдет.

wdfm90 [30.03.2014 19:13]

Stertor, это и есть нормальная delphi, она весит так мало потому что компоненты в ней компилируются из исходного кода при установке.

Ponch10 [02.04.2014 20:46]

Посоветуйте материал по делфи!

BenLaden [08.04.2014 11:44]

Ponch, сайт delphi-vsem.ru.



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




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