Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум Basic > Форум Visual Basic
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 25.12.2011, 15:10   #1
snyppimylt
Форумчанин
 
Аватар для snyppimylt
 
Регистрация: 18.12.2011
Сообщений: 375
Репутация: 7 (7)
Лучшие ответы: 1
Эмуляция нажатия клавиш / Visual Basic

Хочу написать программу, что бы она сама выполняла определенные действия клавиатуры за меня. как это возможно сделать?
Старый 25.12.2011, 18:13   #2
Linoge
Форумчанин
 
Аватар для Linoge
 
Регистрация: 25.10.2011
Сообщений: 446
Репутация: 710 (251)
Лучшие ответы: 9
Эмуляция нажатия клавиш

Нажатие виртуальной клавиши
Код Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'Объявление
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
 
'bVk - код клавиши
'dwFlags - флаг события
 
Const KEYEVENTF_KEYUP = &H2
'Константа для события отжатие клавиши, нажатие - 0
 
Private Sub Command1_Click()
Call keybd_event(&H12, 0, 0, 0)
Call keybd_event(&H73, 0, 0, 0)
Call keybd_event(&H73, 0, KEYEVENTF_KEYUP, 0)
Call keybd_event(&H12, 0, KEYEVENTF_KEYUP, 0)
End Sub

Коды виртуальных клавиш
1 Левая кнопка мыши.
2 Правая кнопка мыши.
3 Обработка комбинации клавиш*Control-Break.*
4 Средняя кнопка мыши (трехкнопочная мышь).
5 Windows 2000/XP: кнопка*X1*мыши.
6 Windows 2000/XP: кнопка*X2*мыши.
7 Не определен.
8 Клавиша*BACKSPACE*(возврата на позицию).
9 Клавиша*TAB*(табуляции).
0A-0B Зарезервированы.
0C Клавиша*CLEAR.
0D Клавиша*ENTER*(ввод).
0E-0F Не определены.
10 Клавиша*SHIFT*(вспомогательная).
11 Клавиша*CTRL*(управления).
12 Клавиша*ALT*(навигации по меню).
13 Клавиша*PAUSE*(останов работы).
14 Клавиша*CAPS*LOCK*(переключатель регистра символов).
15 Редактор метода ввода* (IME)) режим*Kana.
15 Редактор метода ввода (IME) режим*Hanguel*(поддерживается для совместимости; используется*VK_HANGUL).
15 Редактор метода ввода (IME) режим*Hangul.
16 Не определен.
17 Редактор метода ввода (IME) режим*Junja.*
18 Редактор метода ввода (IME) заключительный режим.
19 Редактор метода ввода (IME) режим*Hanja.
Редактор метода ввода (IME) режим*Kanji.
1A Не определен.
1B Клавиша*ESC*(отмены).
1C Преобразованный*IME.
1D Не преобразованный*IME.
1E Принятый*IME.
1F Запрос изменить режим*IME.
20 Клавиша*SPACEBAR*(пробел).
21 Клавиша*PAGE*UP*(страницей выше).
22 Клавиша*PAGE*DOWN*(страницей ниже).
23 Клавиша*END*(в конец текста).
24 Клавиша*HOME*(в начало текста).
25 Клавиша*LEFT*ARROW*(стрелка влево).
26 Клавиша*UP*ARROW*(стрелка вверх).
27 Клавиша*RIGHT*ARROW*(стрелка вправо).
28 Клавиша*DOWN*ARROW*(стрелка вниз).
29 Клавиша*SELECT*(выбор).
2A Клавиша*PRINT*(печать).
2B Клавиша*EXECUTE*(исполнить).
2C Клавиша*PRINT*SCREEN*(печать экрана).
2D Клавиша*INS*(вставить).
2E Клавиша*DEL*(удалить).
2F Клавиша*HELP*(справка).
30 Клавиша*0.
31 Клавиша*1.
32 Клавиша*2.
33 Клавиша*3
34 Клавиша*4.
35 Клавиша*5.
36 Клавиша*6.
37 Клавиша*7.
38 Клавиша*8.
39 Клавиша*9.
3A-40 Не определены.
41 Клавиша*A.
42 Клавиша*B.
43 Клавиша*C.
44 Клавиша*D.
45 Клавиша*E.
46 Клавиша*F.
47 Клавиша*G.
48 Клавиша*H.
49 Клавиша*I.
4A Клавиша*J.
4B Клавиша*K.
4C Клавиша*L.
4D Клавиша*M.
4E Клавиша*N.
4F Клавиша*O.
50 Клавиша*P.
51 Клавиша*Q.
52 Клавиша*R.
53 Клавиша*S.
54 Клавиша*T.
55 Клавиша*U.
56 Клавиша*V.
57 Клавиша*W.
58 Клавиша*X.
59 Клавиша*Y.
5A Клавиша*Z.
5B Левая клавиша*Windows*(Клавиатура Microsoft® Natural® ).
5C Правая клавиша*Windows*(Клавиатура Microsoft® Natural® ).
5D Клавиша приложения (Клавиатура Microsoft® Natural® ).
5E Зарезервирован.
5F Клавиша*Sleep*(сна) компьютера.
60 Клавиша*0*вспомогательной цифровой клавиатуры.
61 Клавиша*1*вспомогательной цифровой клавиатуры.
62 Клавиша*2*вспомогательной цифровой клавиатуры.
63 Клавиша*3*вспомогательной цифровой клавиатуры.
64 Клавиша*4*вспомогательной цифровой клавиатуры.
65 Клавиша*5*вспомогательной цифровой клавиатуры.
66 Клавиша*6*вспомогательной цифровой клавиатуры.
67 Клавиша*7*вспомогательной цифровой клавиатуры.
68 Клавиша*8*вспомогательной цифровой клавиатуры.
69 Клавиша*9*вспомогательной цифровой клавиатуры.
6A Клавиша умножения (*).
6B Клавиша сложения (+).
6C Клавиша разделения (\).
6D Клавиша вычитания (-).
6E Клавиша десятичная.
6F Клавиша деления (/).
70 Клавиша*F1.
71 Клавиша*F2.
72 Клавиша*F3.
73 Клавиша*F4.
74 Клавиша*F5.
75 Клавиша*F6.
76 Клавиша*F7.
77 Клавиша*F8.
78 Клавиша*F9.
79 Клавиша*F10.
7A Клавиша*F11.
7B Клавиша*F12.
7C Клавиша*F13.
7D Клавиша*F14.
7E Клавиша*F15.
7F Клавиша*F16.
80 Клавиша*F17.
81 Клавиша*F18.
82 Клавиша*F19.
83 Клавиша*F20.
84 Клавиша*F21.
85 Клавиша*F22.
86 Клавиша*F23.
87 Клавиша*F24.
88-8F Предназначения нет.
90 Клавиша*NUM*LOCK.
91 Клавиша*SCROLL*LOCK.
92-96 Определяет*OEM.
97-9F Предназначения нет.
A0 Левая клавиша*SHIFT.
A1 Правая клавиша*SHIFT.
A2 Левая клавиша*CONTROL.
A3 Правая клавиша*CONTROL.
A4 Левая клавиша*MENU
A5 Правая клавиша*MENU.
A6 Windows 2000/XP: клавиша*Browser*Back*(просмотр вперед).
A7 Windows 2000/XP: клавиша*Browser*Forward*(просмотр назад).
A8 Windows 2000/XP: клавиша*Browser*Refresh*(обновить экран просмотра).
A9 Windows 2000/XP: клавиша*Browser*Stop*(остановить просмотр).
AA Windows 2000/XP: клавиша*Browser*Search*(поиск в окне просмотра).
AB Windows 2000/XP: клавиша*Browser*Favorites*(предпочтительного просмотра).
AC Windows 2000/XP: клавиша*Browser*Start*и*Home*(эапуск брузера и на главную страницу).
AD Windows 2000/XP: клавиша*Volume*Mute*(временно выключить звук).
AE Windows 2000/XP: клавиша*Volume*Down*(понизить громкость звука).
AF Windows 2000/XP: клавиша*Volume*Up*(повысить громкость звука).
B0 Windows 2000/XP: Клавиша*Next*Track*(следующая дорожка).
B1 Windows 2000/XP: Клавиша*Previous*Track*(предыдущая дорожка).
B2 Windows 2000/XP: Клавиша*Stop*Media*(останов проигрывателя).
B3 Windows 2000/XP: Клавиша*Play/Pause*Media*(воспроизведение/пауза проигрывателя).
B4 Windows 2000/XP: Клавиша*Start*Mail*(запуск почтовой программы).
B5 Windows 2000/XP: Клавиша*Select*Media*(выбора медиа).
B6 Windows 2000/XP: Клавиша*Start*Application*1*(запуск приложения 1).
B7 Windows 2000/XP: Клавиша*Start*Application*2*(запуск приложения 2).
B8-B9 Зарезервированы.
BA Используется для разных знаков; он может изменяться клавиатурой.

Windows 2000/XP: для американской стандартной клавиатуры это клавиша*';:'.
BB Windows 2000/XP: для любой страны/региона это клавиша '+'.
BC Windows 2000/XP: для любой страны/региона это клавиша*','.
BD Windows 2000/XP: для любой страны/региона это клавиша '-'.
BE Windows 2000/XP: для любой страны/региона это клавиша*'.'.
BF Используется для разных знаков; он может изменяться клавиатурой.

Windows 2000/XP: для американской стандартной клавиатуры это клавиша*'/?'.
C0 Используется для разных знаков; он может изменяться клавиатурой.

Windows 2000/XP: для американской стандартной клавиатуры это клавиша '`~'.
C1-D7 Зарезервированы.
D8-DA Предназначения нет.
DB Используется для разных знаков; он может изменяться клавиатурой.

Windows 2000/XP: для американской стандартной клавиатуры это клавиша '[{'.
DC Используется для разных знаков; он может изменяться клавиатурой.

Windows 2000/XP: для американской стандартной клавиатуры это клавиша '\|'.
DD Используется для разных знаков; он может изменяться клавиатурой.

Windows 2000/XP: для американской стандартной клавиатуры это клавиша ']}'.
DE Используется для разных знаков; он может изменяться клавиатурой.

Windows 2000/XP: для американской стандартной клавиатуры это клавиша 'одиночная*кавычка/двойная*кавычка'.
DF Используется для разных знаков; он может изменяться клавиатурой.
E0 Зарезервирован.
E1 Специальный для*OEM.
E2 Windows 2000/XP:*или клавиша*угловой*скобки*или*обратный*слэш*(наклонная черта влево) на*RT*клавиатуре с 102 клавишами.*
E3-E4 Специальные для*OEM.
E5 Windows 95/98/Me, Windows NT 4.0, Windows 2000/XP: клавиша*IME*PROCESS*(обработка*IME).*
E6 Специальные для*OEM.
E7 Windows 2000/XP: Используется* для перехода на символы**Unicode*, как будто бы они были нажатиями клавиш. Клавиша**VK_PACKET*- младшее слово 32-разрядного значения*Virtual*Key, используемого для не клавиатурного метода ввода данных. Подробную информацию, см. в разделе Замечания в описании*KEYBDINPUT,*SendInput,*WM_KEYDOWN*и*WM_KEYUP.*
E8 Предназначения нет.
E9-F5 Специальные для*OEM.
F6 Клавиша*Attn.
F7 Клавиша*CrSel.
F8 Клавиша*ExSel.
F9 Клавиша очистки*EOF.
FA Клавиша воспроизведения.
FB Клавиша увеличения/уменьшения.
FC Зарезервировано для будущего использования.
FD Клавиша*PA1.
FE Клавиша очистки.*
Другие темы раздела Форум программистов Visual Basic. Программирование на Visual Basic. Помощь в решении задач.
Visual Basic Проверить, идет ли в строке после точки заглавная буква
Проверить "правильность" написания текста: после ". " (точки и пробела) должна стоять заглавная буква. Если это не так, то исправить. Недавно изучаю ВБ. Не знаю как обозначить, чтобы слово начинающееся с нижнего регистра исправилось на верхний. Если кто знает, то подскажите, очень интересно.
Крякозябры в программном коде Visual Basic
Подскажите пожалуйста как исправить это
Старый 25.12.2011, 22:11  [ТС]   #3
snyppimylt
Форумчанин
 
Аватар для snyppimylt
 
Регистрация: 18.12.2011
Сообщений: 375
Репутация: 7 (7)
Лучшие ответы: 1
Эмуляция нажатия клавиш

Не очень понял код
Старый 25.12.2011, 23:31   #4
Linoge
Форумчанин
 
Аватар для Linoge
 
Регистрация: 25.10.2011
Сообщений: 446
Репутация: 710 (251)
Лучшие ответы: 9
Эмуляция нажатия клавиш

Куда уж подробнее)
Это полный листинг эмуляции нажатия alt F4.
Старый 25.12.2011, 23:31
Google
Объявления
Старый 26.12.2011, 23:59  [ТС]   #5
snyppimylt
Форумчанин
 
Аватар для snyppimylt
 
Регистрация: 18.12.2011
Сообщений: 375
Репутация: 7 (7)
Лучшие ответы: 1
Эмуляция нажатия клавиш

Да спасибо, ток я не понял, как он работает, вот я чета сделал так. что на ЛКМ нажимаю для запуска программы, он показывает свойства файла
Старый 27.12.2011, 00:55   #6
Linoge
Форумчанин
 
Аватар для Linoge
 
Регистрация: 25.10.2011
Сообщений: 446
Репутация: 710 (251)
Лучшие ответы: 9
Эмуляция нажатия клавиш

Так код в студию)
Старый 27.12.2011, 23:50  [ТС]   #7
snyppimylt
Форумчанин
 
Аватар для snyppimylt
 
Регистрация: 18.12.2011
Сообщений: 375
Репутация: 7 (7)
Лучшие ответы: 1
Эмуляция нажатия клавиш

Как только, так сразу)
Старый 31.12.2011, 02:34   #8
Опан
Форумчанин
 
Аватар для Опан
 
Регистрация: 17.12.2010
Сообщений: 404
Репутация: 175 (134)
Лучшие ответы: 11
Эмуляция нажатия клавиш

Ещё так:
Код Visual Basic
1
2
3
4
5
6
7
8
Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' Запускаем калькулятор
AppActivate ReturnValue ' Активизируем калькулятор
For I = 1 To 100 ' Циклимся 100 раз
SendKeys I & "{+}", True ' Имитируем нажатие на клавишу в калькулятор
Next I ' Добавляем к значению в калькуляторе переменную I
SendKeys "=", True ' Имитируем нажатие на знак равенства
SendKeys "%{F4}", True ' Имитируем Alt+F4 для закрытия калькулятора
Старый 02.01.2012, 21:00  [ТС]   #9
snyppimylt
Форумчанин
 
Аватар для snyppimylt
 
Регистрация: 18.12.2011
Сообщений: 375
Репутация: 7 (7)
Лучшие ответы: 1
Эмуляция нажатия клавиш

Можно и так
Старый 15.01.2012, 22:06   #10
Опан
Форумчанин
 
Аватар для Опан
 
Регистрация: 17.12.2010
Сообщений: 404
Репутация: 175 (134)
Лучшие ответы: 11
Эмуляция нажатия клавиш / Visual Basic

У меня попутно возник вопрос - как симитировать отдельно нажатие на определённую клавишу, а потом отдельно отжатие?
Старый 15.01.2012, 22:06
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
jQuery эмуляция нажатия клавиш
Люди, задам может быть тупой вопрос, но возможно ли программно в jquery или js эмулировать нажатия клавиш клавиатуры или мыши?
NeoLord
Delphi для начинающих Эмуляция нажатия клавиш
помогите с кодом разобраться, не работает( Var PWD, Login : String; procedure PressingKeyboard(Key: byte; extra: DWORD); begin keybd_event(Key, extra, 0, 0);
paxan86
Pascal (Паскаль) Эмуляция нажатия клавиш.
Программа заключается в том, чтоб был постоянно повторяющийся цикл(по моему так) раз в пол минуты(не пренципиально можно и минуту но не больше) было нажатие клавиши MOUSE1 и клавиши A либо D. Заранее спасибо!! Добавлено через 10 часов 18 минут Народ ну подскажите плз!)
Рита_ru
Visual C++ HOOK + Эмуляция нажатия клавиш
Есть программа которая эмулирует нажатие клавиш void CfgdfgDlg::OnBnClickedButton1() { int Len, DropLen; CString buffDroped; WORD w; //Строка которую мы будем эмулировать
N0mad
Delphi для начинающих эмуляция нажатия комбинации клавиш
доброго времени суток) народ, кто знает, подскажите пожалуйста, такая ситуация: зарегистрированы Hotkeys ctrl+J можно ли эмулировать их нажатие на форме,именно пары клавиш, а не одной? подскажите пожалуйста, кто, так сказать компетентен :)
Landser
Опции темы

Текущее время: 07:19. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.