Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
14 / 13 / 2
Регистрация: 18.02.2012
Сообщений: 75

Как определить нажатие клавиш, даже когда окно не активно

18.02.2012, 22:04. Показов 4413. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, помогите плиз. Как в VB 2010 считывать нажатие клавиш, даже когда окно VB не активно, допустим когда играю или что нибудь набираю в интернете?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.02.2012, 22:04
Ответы с готовыми решениями:

Отправить нажатие клавиш в неактивное окно и определить, когда стороннее приложение закончит работу
открывается приложение X Dim dp As New Process() dp.StartInfo.FileName = "c:\X.exe" ...

Как определить активно ли окно программы
Здравствуйте. Private Sub Button1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles...

Как заставить реагировать контейнер на нажатие клавиш, когда фокус находится на дочернем элементе?
как заставить реагировать контейнер на нажатие клавиш в то время когда фокус находится на одном из его дочерних элементов? я создал...

12
 Аватар для morgann55
1365 / 207 / 37
Регистрация: 09.02.2012
Сообщений: 745
18.02.2012, 22:17
Вот посмотри тему - я недавно учился...
Как отловить вводимый в IE текст. Ошибки в коде препятствуют загрузке проекта
1
14 / 13 / 2
Регистрация: 18.02.2012
Сообщений: 75
18.02.2012, 22:34  [ТС]
Цитата Сообщение от morgann55 Посмотреть сообщение
Да в том то и дело, что данная статья для VB6, а нужно для VB2010...

Добавлено через 7 минут
допустим с клавишами alt, shift, ctrl, - всё просто используя команду :
My.Computer.Keyboard
А как определить остальные клавиши?
0
Заблокирован
18.02.2012, 22:34
Цитата Сообщение от speaker04 Посмотреть сообщение
Да в том то и дело, что данная статья для VB6, а нужно для VB2010...
Дак вы же в разделе для "программирования на VB6" находитесь.
Особо не переживайте, модераторы перенесут тему в раздел https://www.cyberforum.ru/vb-net/.

А перевести не получается?
1
14 / 13 / 2
Регистрация: 18.02.2012
Сообщений: 75
18.02.2012, 22:39  [ТС]
Цитата Сообщение от Dzhej-Dzhej Посмотреть сообщение
А перевести не получается?
Да уже и так и сяк. Даже хотел плюнуть и написать прогу на vb6, только гадина не пошла на windows7...
0
Заблокирован
18.02.2012, 23:01
Я похоже что снес нелицензионным C# vb.net-edition 2010. так что помочь ничем не смогу.

Добавлено через 11 минут
Не переживайте, модераторы перенесут тему и ответят на Ваш вопрос(или другие форумчане).
(Сейчас, вроде, нет модераторов этого раздела "в чате", выходные как-никак).
1
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
18.02.2012, 23:13
Лучший ответ Сообщение было отмечено как решение

Решение

VB.NET
1
2
3
4
5
6
7
8
    <Runtime.InteropServices.DllImport("user32.dll")> _
    Public Shared Function GetAsyncKeyState(ByVal vKey As System.Windows.Forms.Keys) As Short
    End Function
 
'А дальше в таймер (если нажали Контрл+R)
If GetAsyncKeyState(Keys.LControlKey) And GetAsyncKeyState(Keys.R) Then
MsgBox("1")
End If
3
Заблокирован
18.02.2012, 23:21
[DEL]
0
14 / 13 / 2
Регистрация: 18.02.2012
Сообщений: 75
19.02.2012, 01:09  [ТС]
Цитата Сообщение от Hennasy Посмотреть сообщение
VB.NET
1
2
3
4
5
6
7
8
    <Runtime.InteropServices.DllImport("user32.dll")> _
    Public Shared Function GetAsyncKeyState(ByVal vKey As System.Windows.Forms.Keys) As Short
    End Function
 
'А дальше в таймер (если нажали Контрл+R)
If GetAsyncKeyState(Keys.LControlKey) And GetAsyncKeyState(Keys.R) Then
MsgBox("1")
End If
Благодарю, вроде работает

Добавлено через 1 час 39 минут
Последний вопрос: в VB6 была такая команда DoEvents, как теперь используется данная команда?
(когда несколько потоков шло одновременно)
0
Заблокирован
19.02.2012, 01:16
C#
1
Application.DoEvents();
1
14 / 13 / 2
Регистрация: 18.02.2012
Сообщений: 75
19.02.2012, 16:46  [ТС]
Теперь точно последний вопрос (плиз помогите и прога будет готова):
Как создать имитацию клика пр/лв клавишей мышки?
0
525 / 487 / 99
Регистрация: 25.12.2011
Сообщений: 1,176
19.02.2012, 16:58
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
 
Private Const MOUSEEVENTF_LEFTDOWN = &H2 
Private Const MOUSEEVENTF_LEFTUP = &H4 
 
Public Sub MouseClick()
Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
End Sub
 
'Допустим потом в кнопку:
Cursor.Position = New Point(10, 10) 'переносим курсор в точку 10. 10.
MouseClick() 'Клик лкм.
'Конец.
1
14 / 13 / 2
Регистрация: 18.02.2012
Сообщений: 75
19.02.2012, 17:20  [ТС]
Всем огромное спасибо за помощь!!! Всё отлично работает!!!

Добавлено через 2 минуты
кому интересно с таймером имитация вот:
VB.NET
1
2
3
4
5
6
7
8
9
10
 Declare Function mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Int32, ByVal dX As Int32, ByVal dY As Int32, ByVal cButtons As Int32, ByVal dwExtraInfo As Int32) As Boolean
    Private Const MOUSEEVENTF_LEFTDOWN = &H2
    Private Const MOUSEEVENTF_LEFTUP = &H4
    Private Const MOUSEEVENTF_rightDOWN = &H8
    Private Const MOUSEEVENTF_rightUP = &H10
  Private Sub Timer14_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer14.Tick
        Application.DoEvents()
        Call mouse_event(MOUSEEVENTF_rightDOWN, 0, 0, 0, 0)
        Call mouse_event(MOUSEEVENTF_rightUP, 0, 0, 0, 0)
    End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2012, 17:20
Помогаю со студенческими работами здесь

Реакция программы на нажатие клавиш, даже если она свернута в трей
Здравствуйте. При нажатии на клавишу D значение переменной klav увеличивается на 1. Static k As Integer = 0 If...

Отловить нажатие определенной комбинации клавиш, даже когда программа не в фокусе
Бодрого дня или ночи! :D Написал программу и теперь нузно разобраться как сделать в ней управление сочитанием клавиш, а именно нужно,...

Управление программой даже если окно не активно
Бейсико-Знающие Проблема следующая: Как управлять своей программой чрез горячие клавиши даже если она(программа) неактивна. Проще. ...

Как сделать так, чтобы программа реагировала на нажатие кнопок даже когда она свернута?
Всем добрый день! Знаю много раз такое спрашивали, но у меня нечего не получилось, поэтому прошу в гугл не посылать. У меня есть...

Отловить нажатие клавиш даже если приложение свернуто
Как сделать чтобы даже когда программа в трее или просто не на первом плане, она продолжала слушать заданные кнопки? То есть у меня...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru