С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/76: Рейтинг темы: голосов - 76, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 4

Передать нажатие клавиши в другую программу

11.05.2014, 22:16. Показов 16222. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сразу извиняюсь если не в том разделе форума создал тему. Вообщем проблема такова. Есть батник в котором нужно прописать нажатие кнопки после запуска приложения, а точнее кнопка на цифровой клавиатуре "*" ({MULTIPLY}) . Мучаюсь целый день на такой простой задаче.
Внутринности батника:

Bash
1
2
3
start /min sh3FOV.exe 
sh3.exe
taskkill /im sh3FOV.exe
Что нужно добавить что бы приложение sh3.exe после запуска исполнило нажатие кнопки "*" ?

Заранее спасибо за ответ.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2014, 22:16
Ответы с готовыми решениями:

Передать нажатие клавиши неактивному окну
Добрый день! Мне нужно зажать клавиши и, спустя некоторое время, отпустить "UP" (стрелка вверх) и "DOWN" (стрелка вниз)...

Передать нажатие клавиши другому приложению
предположим, что по нажатию F5 в программе выполняются определенные действия. как передать из моей программы в эту нажатие F5?

Как передать нажатие клавиши от компонента к компоненту?
Всем добрый день! Есть форма, на ней два компонента. Edit Box и Combo Box. Активен только Edit Box и он же всегда в фокусе. Если...

10
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
11.05.2014, 22:30
Не в нативном батнике. Пробуйте nircmd или обертку на js. Щас напишу код последней.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
11.05.2014, 22:34
Лучший ответ Сообщение было отмечено Eva Rosalene как решение

Решение

masato56, здравствуйте!

Обратите внимание на строку № 10.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@set @x=0; /*
@echo off
SetLocal EnableExtensions
chcp 866 >NUL
chdir /d "%~dp0"
 
start /min sh3FOV.exe 
sh3.exe
 
cscript.exe //nologo //e:jscript "%~f0" "Полный заголовок Вашей программы"
 
taskkill /im sh3FOV.exe
 
pause
Exit /B
 
 
*/try {
  var WSHShell = new ActiveXObject('WScript.Shell');
 
      var act_success = false;
      var begin = 1 * new Date();
      // Мой WatchDog на 10 секунд дедлайна при запуске RSIT
      for (var cur = 1 * new Date(); ((cur - begin) < 10000) && ((cur - begin) >= 0) && !act_success; cur = 1 * new Date()) {
        WScript.Sleep (1000);
        act_success = WSHShell.AppActivate (WScript.Arguments(0));
      }
      if (act_success) {
        WScript.Sleep (1000);
        WSHShell.SendKeys ("*");
      }
  }
catch (e) { }
Программа, которой Вы отправляете нажатие не должна быть свернута в трей:
Цитата Сообщение от masato56 Посмотреть сообщение
/min
2
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
11.05.2014, 22:37
Bash
1
2
3
4
5
6
7
8
9
10
@set @x=0; /*
@echo off
start /min sh3FOV.exe
sh3.exe
ping -n 1 -w 1500 1.0.0.0 >nul 2>nul
cscript //nologo //e:js "%~f0"
taskkill /im sh3FOV.exe
exit /b
*/
(new ActiveXObject("WScript.Shell")).SendKeys("*");
1
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 4
11.05.2014, 23:43  [ТС]
Не проходит ни один из сценариев.
Как происходит сам запуск.

1: Грузится sh3fov.exe
2: Грузится sh3.exe
3: Должна нажаться кнопка "*". Сигнал идёт для программы sh3fov.exe которая уже выполняет действия для sh3.exe. То есть когда происходит сценарий нажатия кнопки "*" эти программы должны работать.

Судя по вашим скриптам нажатие происходит тогда когда обе программы уже закрыты.

PS: Я прошу прощения если я что-то не так написал. Просто я разбираюсь в батчах поверхностно.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.05.2014, 00:23
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

masato56, замените в обоих кодах строку

Bash
sh3.exe
на
Bash
start "" sh3.exe
а эту
Bash
taskkill /im sh3FOV.exe
на
Bash
1
2
3
4
:begin
ping -n 2 127.1 >NUL
TASKLIST /FI "IMAGENAME eq sh3.exe" |>NUL find /i "sh3.exe" && goto begin
taskkill /im sh3FOV.exe
Добавлено через 7 минут
или вот так:

Кликните здесь для просмотра всего текста

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@set @x=0; /*
@echo off
SetLocal EnableExtensions
chcp 866 >NUL
chdir /d "%~dp0"
 
start /min sh3FOV.exe 
start "" cscript.exe //nologo //e:jscript "%~f0" "Полный заголовок Вашей программы"
sh3.exe
 
taskkill /im sh3FOV.exe
 
pause
Exit /B
 
 
*/try {
  var WSHShell = new ActiveXObject('WScript.Shell');
 
      var act_success = false;
      var begin = 1 * new Date();
      // Мой WatchDog на 10 секунд дедлайна при запуске RSIT
      for (var cur = 1 * new Date(); ((cur - begin) < 10000) && ((cur - begin) >= 0) && !act_success; cur = 1 * new Date()) {
        WScript.Sleep (1000);
        act_success = WSHShell.AppActivate (WScript.Arguments(0));
      }
      if (act_success) {
        WScript.Sleep (1000);
        WSHShell.SendKeys ("*");
      }
  }
catch (e) { }
1
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 4
12.05.2014, 00:45  [ТС]
Увы...

Меня беспокоит что скрипт с нажатием кнопки происходит уже тогда когда программы закрылись или я не правильно
читаю сценарий.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.05.2014, 01:02
Цитата Сообщение от masato56 Посмотреть сообщение
Меня беспокоит что скрипт с нажатием кнопки происходит уже тогда когда программы закрылись
Ну. Это поспешный вывод. Вы не можете судить это "на глаз".
Скорее всего нажатие уходит мимо этой программы.

Цитата Сообщение от masato56 Посмотреть сообщение
или я не правильно читаю сценарий.
Либо окно программы не активируется потому что:
- либо неверно указали в коде заголовок окна;
- либо сохранили сценарий в неверной кодировке. Должна быть обязательно в OEM-866. Посмотрите это руководство: Русский текст в консоли
0
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 4
12.05.2014, 01:09  [ТС]
Всё происходит точно так же как и в нативном режиме. В ручную нажатие кнопки действует, а в скрипте нет.
Кириллицы я не использую.
Может что-то кроме "Полный заголовок Вашей программы" ещё что-то нужно внести мне?

PS: Приведите пожалуйста свой простой пример заголовка окна.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
12.05.2014, 14:02
Цитата Сообщение от masato56 Посмотреть сообщение
PS: Приведите пожалуйста свой простой пример заголовка окна.
Заголовок: Калькулятор
Проверьте на нем.

Добавлено через 25 секунд
А у Вас какой?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
18.05.2014, 19:30
Вот таким же кодом управляю Касперским: Считаем количество попугаев на своих Киберлошадях
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.05.2014, 19:30
Помогаю со студенческими работами здесь

Как вызвать Form1_KeyDown и передать нажатие определенной клавиши?
нужно в коде вызывать Form1_KeyDown и передавать на него нажатие клавиши.

Как передать нажатие клавиши другому окну? (api в delphi)
всем доброго вечера. подскажите как мне передать нажатие клавиши другому окну? например у меня есть другая программа с эдитом. так вот в...

Как получить в программу нажатие какой-либо клавиши на клавиатуре?
Как получить в программу нажатие какой-либо клавиши на клавиатуре, например кл. End?

Сделать резидентную программу, которая бы пропускала каждое второе нажатие клавиши 7
В данном коде, не знаю по чему, не работает прерывание. Т.е. возможно оно работает и выводятся символы А на экран, но потом зависает...

Эмулировать нажатие кнопки мыши или нажатие клавиши на Web - странице
Здравствуйте. Как на эмулировать переходы по страницам на сайте, открытом в Интернет эксплорере!. Например: В определенные...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru