1

Тема: WSH: Передать свёрнутому окну bat файла нажатие клавиши

Передать свёрнутому или скрытому окну bat файла нажатие клавиши, заранее известной (enter и т д через хот кеи). Окно возможно будет неактивно, разворачивать его нельзя. Хендл окна  его PID, можно выцепить из консоли с помощью утилиток, если это будет надо, и средствами VBS не получится, заголовок известен.

2

Re: WSH: Передать свёрнутому окну bat файла нажатие клавиши

а если сразу избежать необходимости в нажатии ?

Я конечно далек от мысли... (с)

3 (изменено: roma351234567890, 2012-02-03 19:15:52)

Re: WSH: Передать свёрнутому окну bat файла нажатие клавиши

Дело в том, что этот батник у меня делает кучу вещей, но требует моего подтверждения или отрицания или ещё чего то, то есть ему достаточно передать нажатия клавиши(например enter,  или + затем enter, или не плюс не enter затем enter). То есть три четыре клавиши ему будет достаточно, батник голосом подтверждает мои действия, так что видеть его окно необязательно, и я могу другими делами заниматься. В батниках я разбираюсь, а во всём остальном только название слышал(vbs, autoit, WSH ...) . То есть он в этом интерактивном режиме работает довольно долго.

4

Re: WSH: Передать свёрнутому окну bat файла нажатие клавиши

roma351234567890, хотелось бы всё таки взглянуть на код батника. Чтобы была возможность проанализировать ситуацию. А вообще если всё таки нужно клавиши отправлять в невидимое или скрытое окно батника, то надо копать в сторону AutoIT. Либо городить ActiveX для VBS. Т.к ни JS ни VBS не дают такой возможности (только если с видимым окном).

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

5 (изменено: roma351234567890, 2012-02-03 19:31:41)

Re: WSH: Передать свёрнутому окну bat файла нажатие клавиши

Xameleon пишет:

roma351234567890, хотелось бы всё таки взглянуть на код батника. .

стандартно, отрабатывается

set /p t=
if "%t%"=="+" команда

И да, мне уже сказали, что vbs не годится.

6

Re: WSH: Передать свёрнутому окну bat файла нажатие клавиши

roma351234567890 пишет:

стандартно, отрабатывается

set /p t=
if "%t%"=="+" команда

Т.е ввод данных создан искусственно, а не является запросом из приложений. Тогда мне кажется вообще проще отказаться от батника, так чтобы окна вообще не было, а использовать только код на VBS. Думаю это будет проще и логичнее.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

7

Re: WSH: Передать свёрнутому окну bat файла нажатие клавиши

Xameleon пишет:

Т.е ввод данных создан искусственно, а не является запросом из приложений. Тогда мне кажется вообще проще отказаться от батника, так чтобы окна вообще не было, а использовать только код на VBS. Думаю это будет проще и логичнее.

К сожалению, это маленький кусочек из уже налаженных и работающих батников, вызывающих друг из друга, а VBS я не владею совершенно и переделать не представляется возможным, если совсем не найду решения, то буду активировать и развёртывать окно с помощью nircmd или cmdow. Хотя вот набрёл на такое:
http://sources.ru/delphi/delphi_send_keystrokes.shtml

Посылаем нажатия клавиш другому приложению.

Автор: Gert v.d. Venis

Скачайте компонент Sendkeys

Описание:
Данный компонент получает хэндл(handle) любого запущенного окна и даёт возможность отправить по указанному хэндлу любые комбинации нажатия клавиш.

Совместимость: Все версии Delphi

Теперь буду спрашивать у дельфистов что и как.