Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
3 / 3 / 4
Регистрация: 11.10.2015
Сообщений: 156

Имитация нажатия кнопки

18.11.2017, 23:37. Показов 3186. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я хочу сделать так, чтобы в каком-нибудь окне (которое я выберу естественно) имитировалось нажатие клавиши (например кнопки 'D') каждые там несколько секунд. При этом окно может быть свернуто и все должно работать. Есть ли у меня перспективы в этом деле? Желательно, чтобы мне понадобился только *.vbs файл (на компе винда само собой). Если я где-то ошибся в формулировке, прошу простить, на VB никогда не кодил
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2017, 23:37
Ответы с готовыми решениями:

Имитация нажатия клавиши
Помогите пожалуйста, не могу придумать, как сделать так, чтобы, если я нажимаю на пример букву <а>, она имитировалась тоисть еще...

Имитация нажатия клавиш
Здравствуйте. Пожалуйста помогите с кодом. Нужно написать программу, что бы при нажатии "Q" нажималась ПКМ затем через долю...

Имитация нажатия мыши в браузере на VB
Приветствую =) Вот написал я простенький браузер на VB, загрузил страничку и есть на этой страничке одна нужная кнопка из...

5
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.11.2017, 07:28
Цитата Сообщение от Scriptozaur Посмотреть сообщение
Желательно, чтобы мне понадобился только *.vbs файл (на компе винда само собой).
Цитата Сообщение от Scriptozaur Посмотреть сообщение
При этом окно может быть свернуто и все должно работать.
- вот это не прокатит на VBS. Скриптовый язык не умеет работать с WinAPI, а то, что умеет имитировать работу клавиатуры, не умеет различать приложения. Что активно, туда и шлет - впрочем, как и реальная физическая клавиатура.
Минимально это так выглядит:
Visual Basic
1
2
set WSHShell = CreateObject("WScript.Shell")
WSHShell.SendKeys("{ENTER}") ' нажатие ENTER
Задержка перед нажатием может быть получена так
WScript.Sleep 5000 ' задержка на 5 секунд
1
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
19.11.2017, 10:32
Это по простому, в идеале должно быть отправленно сообщение через WinApi
чтото вроде sendmessage или postmesage
у этих двух методов кстати тоже есть различия, я както юзал, нажать то нажал а отжать не мог
нужно передовать не только сообщение wm_mouseDown но еще и wm_mouseUp

Но опять-же смотря что требуется я искал способ нажатия и удерживания в нажатом виде кнопку
пока не появится контекстное меню, но дело в том что в это время система видит что сообщение обработанно и не показывает меню, пока я не сделаю кнопку опять отдавленной ))

Можно еще так сделать
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Option Explicit
 
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
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_RIGHTDOWN = &H8
Private Const MOUSEEVENTF_RIGHTUP = &H10
 
 
Private Sub Command1_Click()
     mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, 0, 0
End Sub
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
19.11.2017, 11:59
Цитата Сообщение от fever brain Посмотреть сообщение
Можно еще так сделать
В vbs ?
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
19.11.2017, 12:13
Цитата Сообщение от fever brain Посмотреть сообщение
wm_mouseDown но еще и wm_mouseUp
Это вообще не из той оперы, как и mouse_event.
Читать же надо, что Человек пишет:
имитировалось нажатие клавиши (например кнопки 'D')
Каким боком нажатие кнопки на мышке поможет имитировать работу клавиатуры?
sendmessage или postmesage
- да это подойдет, но опять же смотря какое приложение.
Если это для игры WorldOfTanks и т.п. читерств, то не прокатит.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
19.11.2017, 19:56
Цитата Сообщение от SoftIce Посмотреть сообщение
В vbs ?
Ну и пусть бы постил для Vbs, я со своей стороны чем мог тем помог,
Пусть и немного не в строчку, тему он так и назвал имитация нажатия
всеравно на vbs изящно это сделать не получится с таким ущербным
вызовом как SendKeys в лучшем случае чтото зависнет или вылетет
в худшем пошлет он эту клавишу сильно не туда

Вот более полный пример для вызова калькулятора
и чтото там вписать:
Visual Basic
1
2
3
4
5
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
WScript.Sleep 2000
Res = WshShell.AppActivate(WshExec.ProcessID)
If Res Then WshShell.SendKeys("0123456789")
Но этот пример сильно ограничен, особенно для программ с отсутствующим фокусом
или программ работающих в скрытом режиме, или если вызывающая
программа не передает фокус, да много чего еще
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.11.2017, 19:56
Помогаю со студенческими работами здесь

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

Имитация нажатия клавиши клавиатуры
Добрый день! Прошу помощи. Подскажите, пожалуйста, как слелать виртуальную клавиатуру. Вопрос состроит в следующем: В аудитории 10...

Имитация нажатия Tab с помощью keybd_event
Имитирую нажатия клавиш в сторонней программе с помощью Private Declare Sub keybd_event Lib "user32.dll" _ ...

Имитация нажатия клавиш в стороннем окне
Я знаю текст заголовка окна. Как мне передать в него нажатия клавиш и в том числе специальных - таких как esc, enter? Можно пойти иным...

Имитация нажатия клавиши Tab в стороннем приложении (игре)
Проблемка вот в чем. Скорее всего я не до конца понимаю принцип работы функций, которые использую. Простая программка, через...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru