Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 14.07.2006
Сообщений: 5

Как перехвачивать нажатые клавиши?

15.07.2006, 19:08. Показов 2386. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как сделать так чтобы прога шарила какие кнопни нажимаются если она(прога) скрыта от глаз

(form1.visible = false) т.е на ней нету фокуса..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.07.2006, 19:08
Ответы с готовыми решениями:

Нажатые клавиши и Expand в TreeView
При раскрытии узла treeview, который содержит какие-то дочерние элементы, возникает событие TreeView1_Expand(ByVal Node As...

Как перехватить все нажатые клавиши
Как сделать чтобы в Memo1 отображалось все клавиши нажатые Желательно код покажите, то с Hook я не могу разобраться И почему...

Как отлавливать нажатые клавиши и изменять цвет кнопки
К примеру, нажата клавиша 1, она загорается кнопка 1 зеленым цветом и если опущена клавиша, становится стандартным цветом

7
2 / 2 / 0
Регистрация: 09.09.2009
Сообщений: 118
17.07.2006, 01:47
тов.Жуков тут Вам не Тут! :-)
Такие программы называются шпионскими и пишутся с использованием АПИ-функций, а лучше на АСМе или Си хотя бы.
Так что давайте не будем!
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
17.07.2006, 13:15
<FONT color=#0072c2>"клавишь" - это некий новый глагол?</P><FONT color=#0072c2><FONT size=4><FONT size=2><FONT size=4>
<FONT size=2>В словаре все перешаришь,
Но не сыщешь слова "клавишь".
<FONT size=2>VladConn
</P><FONT size=4>
0
1 / 1 / 1
Регистрация: 02.04.2009
Сообщений: 135
19.07.2006, 22:06
<TABLE cellSpacing=0 cellPadding=0 width="100% <TBODY><TR><TD class=SmallTxt width="80% <DIV id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl07_smAuthorName_SimpleMenuDiv Layer onmouseover="InstantASP_OpenMenuMouseOve r('ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl07_smAuthorName','ctl03_ctlTo pic_ctlPanelBar_ctlTopicsRepeater_ctl07_ smAuthorName_SimpleMenuDivLayer','<table width=100% class=PanelBar_OuterTable cellspacing=0 cellpadding=0><tr><td><table width=100% cellspacing=1 cellpadding=7><tr><td class=TableCell_Light><a href=UserInfo13084.aspx Class= 'SmlLinks ' Title= 'View Members Profile '>View Member 's Profile</a></tr><tr><td class=TableCell_Light><a href=BuddyIgnoreList1.aspx?Username=R100 1 Class= 'SmlLinks ' Title= 'Add to Buddy List '>Add to Buddy List</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendPrivateMessage ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Private Message '>Send Private Message</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendEmail ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Email To Member '>Send Email To Member</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butShowMemberPosts ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Find All Members Posts '>Find All Member 's Posts</a></tr></td></tr></table></td></tr></table>','165px');" style="DISPLAY: inline" onclick="InstantASP_OpenMenu('ctl03_ctlT opic_ctlPanelBar_ctlTopicsRepeater_ctl07 _smAuthorName','ctl03_ctlTopic_ctlPanelB ar_ctlTopicsRepeater_ctl07_smAuthorName_ SimpleMenuDivLayer','<table width=100% class=PanelBar_OuterTable cellspacing=0 cellpadding=0><tr><td><table width=100% cellspacing=1 cellpadding=7><tr><td class=TableCell_Light><a href=UserInfo13084.aspx Class= 'SmlLinks ' Title= 'View Members Profile '>View Member 's Profile</a></tr><tr><td class=TableCell_Light><a href=BuddyIgnoreList1.aspx?Username=R100 1 Class= 'SmlLinks ' Title= 'Add to Buddy List '>Add to Buddy List</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendPrivateMessage ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Private Message '>Send Private Message</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendEmail ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Email To Member '>Send Email To Member</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butShowMemberPosts ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Find All Members Posts '>Find All Member 's Posts</a></tr></td></tr></table></td></tr></table>','165px'); <A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl07_smAuthorName onmouseover="window.status = window.location;return true;" title="View R1001'S Profile..." onmouseout="window.status=''return true;" href="javascript:void(''); R1001</DIV></TD></TR></TBODY></TABLE>
давай будем (про нажатия клавиш вне программы)
как это сделать на VB... смотрите например здесь...
http://soobc
0
0 / 0 / 0
Регистрация: 14.07.2006
Сообщений: 5
22.07.2006, 05:28  [ТС]
[quote]siatl (19.07.2006)
<TABLE cellSpacing=0 cellPadding=0 width="100% <TBODY><TR><TD class=SmallTxt width="80% <DIV id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl07_smAuthorName_SimpleMenuDiv Layer onmouseover="InstantASP_OpenMenuMouseOve r('ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl07_smAuthorName','ctl03_ctlTo pic_ctlPanelBar_ctlTopicsRepeater_ctl07_ smAuthorName_SimpleMenuDivLayer','<table width=100% class=PanelBar_OuterTable cellspacing=0 cellpadding=0><tr><td><table width=100% cellspacing=1 cellpadding=7><tr><td class=TableCell_Light><a href=UserInfo13084.aspx Class= 'SmlLinks ' Title= 'View Members Profile '>View Member 's Profile</a></tr><tr><td class=TableCell_Light><a href=BuddyIgnoreList1.aspx?Username=R100 1 Class= 'SmlLinks ' Title= 'Add to Buddy List '>Add to Buddy List</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendPrivateMessage ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Private Message '>Send Private Message</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendEmail ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Email To Member '>Send Email To Member</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butShowMemberPosts ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Find All Members Posts '>Find All Member 's Posts</a></tr></td></tr></table></td></tr></table>','165px');" style="DISPLAY: inline" onclick="InstantASP_OpenMenu('ctl03_ctlT opic_ctlPanelBar_ctlTopicsRepeater_ctl07 _smAuthorName','ctl03_ctlTopic_ctlPanelB ar_ctlTopicsRepeater_ctl07_smAuthorName_ SimpleMenuDivLayer','<table width=100% class=PanelBar_OuterTable cellspacing=0 cellpadding=0><tr><td><table width=100% cellspacing=1 cellpadding=7><tr><td class=TableCell_Light><a href=UserInfo13084.aspx Class= 'SmlLinks ' Title= 'View Members Profile '>View Member 's Profile</a></tr><tr><td class=TableCell_Light><a href=BuddyIgnoreList1.aspx?Username=R100 1 Class= 'SmlLinks ' Title= 'Add to Buddy List '>Add to Buddy List</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendPrivateMessage ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Private Message '>Send Private Message</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butSendEmail ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Send Email To Member '>Send Email To Member</a></tr><tr><td class=TableCell_Light><a href=javascript:__doPostBack( 'butShowMemberPosts ', '13084 '); onMouseOver= 'window.status=window.location;return true; ' onMouseOut=window.status= ' 'return true; Class= 'SmlLinks ' Title= 'Find All Members Posts '>Find All Member 's Posts</a></tr></td></tr></table></td></tr></table>','165px'); <A class=SmlBoldLinks id=ctl03_ctlTopic_ctlPanelBar_ctlTopicsR epeater_ctl07_smAuthorName onmouseover="window.status = window.location;return true;" title="View R1001'S Profile..." onmouseout="window.status=''return true;" href="javascript:void(''); R1001</DIV></TD></TR></TBODY></TABLE>
давай будем (про нажатия клавиш вне программы)
как это сделать на VB... смотрите например
0
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 28
29.07.2006, 20:47
тов.Жуков (15.07.2006)
как сделать так чтобы прога шарила какие кнопни нажимаются если она(прога) скрыта от глаз
(form1.visible = false) т.е на ней нету фокуса..
Тут кто-то может опять завозмущаться, но выхода 2:
1. Периодически в таймере с помощью GetAsyncKeyState проверяете состояние всех клавиш (нажаты или нет?). Из минусов - довольно тормозная вещица и геморная.
2. Поставить ловушку WH_KEYBOARD_LL на систему. Иначе никак не отследите. На С, кстати, все будет аналогично. Через неделю выложу свою библиотеку для перехвата. Попробуйте, может и понравится... Написана она на VB6, и не тормозит, как считается. Тестировалась она на работе на разных машинах и ничего тормозного не наблюдалось.
0
0 / 0 / 0
Регистрация: 27.11.2009
Сообщений: 28
29.07.2006, 20:50
R1001 (16.07.2006)
тов.Жуков тут Вам не Тут! :-)
Такие программы называются шпионскими и пишутся с использованием АПИ-функций, а лучше на АСМе или Си хотя бы.
Так что давайте не будем!
А почему не будем? На VB6 такие вещи вполне себе реализуемы. Вы не правы, батенька! От АПИ, конечно, никуда не денешься - на то они и АПИ!
0
1 / 1 / 0
Регистрация: 18.11.2010
Сообщений: 139
06.08.2006, 23:01
На форме Label (name = label1)



В коде формы:



Option Explicit



Dim retVal0 As Boolean, retVal1 As Boolean, retVal2 As Boolean



Private Sub Form_Load()



MsgBox "Registering CTRL+F10, CTRL+F11, CTRL+F12 as hot keys..."



retVal0 = RegisterHotKey(Me.hwnd, 0, MOD_CTRL, VK_F10)

If Not retVal0 Then

MsgBox "Can not register all or one of the hotkeys CTRL+F10 ... Try other keys this key is already registered by some other running applications.", vbCritical

End If



retVal1 = RegisterHotKey(Me.hwnd, 1, MOD_CTRL, VK_F11)

If Not retVal1 Then

MsgBox "Can not register all or one of the hotkeys CTRL+F11 ... Try other keys this key is already registered by some other running applications.", vbCritical

End If



retVal2 = RegisterHotKey(Me.hwnd, 2, MOD_CTRL, VK_F12)

If Not retVal2 Then

MsgBox "Can not register all or one of the hotkeys CTRL+F12 ... Try other keys this key is already registered by some other running applications.", vbCritical

End If



If (retVal0 = False And retVal1 = False And retVal2 = False) Then

MsgBox "No Hotkey could be registered ...!", vbCritical

End

End If



glWinRet = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf CallbackMsgs)

Me.Hide



End Sub



Private Sub Form_Resize()



If Me.WindowState = 1 Then

Me.Hide

End If



End Sub





Private Sub Form_Unload(Cancel As Integer)

' If first hotkey is registered then

' unregister it.

If retVal0 Then

UnregisterHotKey Me.hwnd, 0

End If



' If second hotkey is registered then

' unregister it.

If retVal1 Then

UnregisterHotKey Me.hwnd, 1

End If



' If third hotkey is registered then

' unregister it.

If retVal2 Then

UnregisterHotKey Me.hwnd, 2

End If

End Sub





В модуле:

[i]

Option Explicit



Public Declare Function RegisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal ID As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long



Public Declare Function UnregisterHotKey Lib "user32" (ByVal hwnd As Long, ByVal ID As Long) As Long



Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long



Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long



Public Const WM_HOTKEY = &H312

Public Const GWL_WNDPROC = -4



Public Const MOD_CTRL = &H2

Public Const MOD_SHFT = &H4

Public Const MOD_ALT = &H1



' VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z'

' VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '9'

' and others are listed below



Public Const VK_NUMPAD0 = &H60

Public Const VK_NUMPAD1 = &H61

Public Const VK_NUMPAD2 = &H62

Public Const VK_NUMPAD3 = &H63

Public Const VK_NUMPAD4 = &H64

Public Const VK_NUMPAD5 = &H65

Public Const VK_NUMPAD6 = &H66

Public Const VK_NUMPAD7 = &H67

Public Const VK_NUMPAD8 = &H68

Public Const VK_NUMPAD9 = &H69

Public Const VK_MULTIPLY = &H6A

Public Const VK_ADD = &H6B

Public Const VK_SEPARATOR = &H6C

Public Const VK_SUBTRACT = &H6D

Public Const VK_DECIMAL = &H6E

Public Const VK_DIVIDE = &H6F

Public Const VK_F1 = &H70

Public Const VK_F2 = &H71

Public Const VK_F3 = &H72

Public Const VK_F4 = &H73<
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.08.2006, 23:01
Помогаю со студенческими работами здесь

Как отловить нажатые клавиши в консольном приложении (неактивной)
Помогите я новичок учусь, все обыскал, нужен кусочек кода который отлавливает все символьные клавиши которые были нажаты при не активном...

Как перехватить нажатые клавиши не прерывая их нормальную отработку виндой?
Проще говоря, как работают программы вроде Punto switcher-а? Если сделать RegisterHotKey, то зарегистрированная клавиша перехватывается...

Как создать программу которая отслеживает и записывает в listBox нажатые клавиши
Подскажите как создать программу которая отслеживает и записывает в listBox нажатые клавиши и сочетания клавиш. Например: нажата S ,...

Нажатые клавиши
Нужно получить код нажатой клавиши и обратно (RSHIFT -&gt; 0xA1 и 0xA1 -&gt; RSHIFT). Шифты и другие &quot;спецклавиши&quot; надо...

Определить две одновременно нажатые клавиши
Необходимо одновременное нажатие двух клавиш (например W+1). Для одной пишут так (все работает). void __fastcall...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru