Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 113, средняя оценка - 4.73
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
#1

Нажатие кнопки и сворачивание окна программы - CMD/BAT

12.02.2013, 22:50. Просмотров 18656. Ответов 19
Метки нет (Все метки)

а реально как нибудь прописать в бате что бы после открытия тыкнулась кнопка зайти, а потом окно свернулось бы в трей(функция есть у нее такая, с обычной кнопки "свернуться" уходить трей)

 Комментарий модератора 
Сообщение выделено из темы: http://www.cyberforum.ru/cmd-bat/thread784820.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2013, 22:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нажатие кнопки и сворачивание окна программы (CMD/BAT):

Изменение некоторых параметров настроек компьютера и сворачивание окна заданной программы
Нужно создать батник, который будет отвечать за ф-ю включения "Автоматически...

Сворачивание окна Dedicated Server
Есть программа-лаунчер игрового сервера. Хотел создать батник, чтобы при...

Сворачивание программы в трей
Можна ли в трей панели задач свернуть програмку возле часов!!!

Нажатие кнопки в другой программе
Как написать бат-файл: левая клавиша мыши нажимает на баттон, на которой...

Можно ли командами cmd имитировать нажатие правой кнопки мыши?
Доброго времени суток! Может кто подсказать, можно ли через cmd имитировать...

Расположить курсор в указанной области экрана и произвести нажатие расположенной в ней кнопки
День добрый. Подскажите есть ли возможность управлять водимыми данными с...

19
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,804
Записей в блоге: 16
12.02.2013, 23:19 #2
ctac1412, попробуйте задержку после запуска программы, а затем имитацию нажатия кнопки {ENTER} или несколько раз {TAB}, а затем {ПРОБЕЛ}. Попробуйте сначала вручную это проделать, а затем уже вписать в батник.

Код для задержки (любой на Ваш выбор - задержка 10 сек.):
Bash
1
2
3
ping -n 11 127.0.0.1 >nul
ping -n 10 -w 1000 192.168.254.254>NUL
timeout /t 10 /nobreak
Имитация нажатий клавиш - например через утилиту NirCMD: http://www.cyberforum.ru/cmd-bat/thread638375.html#post3363517
Bash
1
2
Nircmdc sendkeypress enter
Nircmdc sendkeypress space
Сворачивание окна той же утилитой - по заголовку окна или по имени ее класса:
1) по заголовку - подставьте свой
Bash
1
nircmd win min ititle "Call of Duty"
2) по имени класса программы:
Bash
1
nircmd win min class "IW5 WinConsole"
Узнать имя класса можно, например, таким AutoIT-скриптом:
Class.au3
Код
#include <WinAPI.au3>
#include <Array.au3>

$sFileExe = @WindowsDir & '\notepad.exe'

$sProcess = StringRegExpReplace($sFileExe, '^.*\\', '')
$iCount = 0
If Not ProcessExists($sProcess) Then
    Run($sFileExe)
EndIf
$iPID = ProcessWait($sProcess, 5)
If Not $iPID Then
    MsgBox(16, 'Error', 'Error')
    Exit
EndIf
$aList = WinList()
If Not $aList[0][0] Then
    MsgBox(16, 'Error', 'Error')
    Exit
EndIf
Dim $aResult[$aList[0][0] + 1][4]
For $i = 1 To $aList[0][0]
    If WinGetProcess($aList[$i][1]) = $iPID Then
        $iCount += 1
        $aResult[$iCount][0] = $aList[$i][0] ;Title
        $aResult[$iCount][1] = $aList[$i][1] ;Handle
        $aResult[$iCount][2] = _WinAPI_GetClassName($aList[$i][1]);ClassName
        If BitAND(WinGetState($aList[$i][1]), 2) Then
            $aResult[$iCount][3] = 'visible'
        Else
            $aResult[$iCount][3] = 'hide'
        EndIf
    EndIf
Next
If $iCount Then
    ReDim $aResult[$iCount + 1][4]
    $aResult[0][0] = $iCount
    _ArrayDisplay($aResult, 'Все окна процесса ' & $sProcess)
Else
    MsgBox(16, 'Error', 'Error')
EndIf


Добавлено через 3 минуты
Сам AutoIT
Компилятор и среда AutoIT
Содержимое архива скопировать в папку INCLUDE: http://Dragokas.16mb.com/Forum/Dl/AutoIT_WinAPIEx_3.8_3380.rar


Или используйте приложенную к посту программу от virushunter-a.
2
Вложения
Тип файла: zip WinDowzer.1.1-PCL.zip (7.9 Кб, 177 просмотров)
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 00:15  [ТС] #3
Ну вот смотрите( открою истинную программу вот что у меня сейчас есть.

Bash
1
2
3
4
5
6
7
8
9
@echo off
>c:\WebSurf.ru\WebSurf.ini (
    echo [options]
    echo savepass=0
    echo login=qqqq
    echo pass=111
)
cd c:\WebSurf.ru
Start C:\WebSurf.ru\WebSurf.exe
Класс кнопки присоединиться-"Tfrmlogin", а кнопки свернуться "Tpanel"... Извините за мой тупняк... просто мне чет совсем сложно это все дается

я так понимаю что бы свернуть в конце надо будет прописать

nircmd win min class "Tpanel"
Но ничего не происходит....( паузу я поставил по вашему примеру....) просто например "свернуть" и "закрыть" имеет такой же класс. а через NirCMD я не понял как пользоваться...я ее скачал, там два exe и оба ноль эмоций. Прошу о помощи в очередной раз
0
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,804
Записей в блоге: 16
13.02.2013, 03:07 #4
ctac1412, Вы хотя бы перепишите команды в том виде, как я написал в теме http://www.cyberforum.ru/cmd-bat/thread784820.html#post4126584, не пропуская символы.
Потом когда-нибудь возникнут проблемы, если захотите что-то изменить.

Класс нужен не кнопки, а самого окна. Или название окна.
Вот см.
Название окна можно писать не полностью, а только начальные символы.
0
Миниатюры
Нажатие кнопки и сворачивание окна программы  
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 16:35  [ТС] #5
"Nircmd" не является внутренней или внешней командой, исполняемой программой или пакетным файлом...

Вот что у меня получается....
П.С. ( кнопками интэр и таб не получается активировать... зайти можно только мышкой)
0
Badger
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
13.02.2013, 17:19 #6
Цитата Сообщение от ctac1412 Посмотреть сообщение
"Nircmd" не является внутренней или внешней командой
Nircmd.exe нужно скопировать в каталог c:\windows\system32\
0
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 17:29  [ТС] #7
Цитата Сообщение от Badger Посмотреть сообщение
Nircmd.exe нужно скопировать в каталог c:\windows\system32\
А а есть ли какой нибудь способ, что бы без внесения в корневую папку??? без сторонних утилит... Повторю - по дефолту копка сворачиания - сворачивает прогу в трей.

П.С. и проблема с "входом" тоже не решена
0
Badger
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
13.02.2013, 17:43 #8
Цитата Сообщение от ctac1412 Посмотреть сообщение
А а есть ли какой нибудь способ, что бы без внесения в корневую папку?
Указать полный путь к Nircmd.exe. Н-р d:\temp\nircmd.exe.
Цитата Сообщение от ctac1412 Посмотреть сообщение
без сторонних утилит
Если Ваша программа не поддерживает такие ключи запуска - вряд ли...
Цитата Сообщение от ctac1412 Посмотреть сообщение
что бы после открытия тыкнулась кнопка зайти, а потом окно свернулось бы в трей
Dragokas писал выше:
Цитата Сообщение от Dragokas Посмотреть сообщение
Имитация нажатий клавиш - например через утилиту NirCMD: Управление положением мышы на экране
2
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 18:28  [ТС] #9
Цитата Сообщение от Badger Посмотреть сообщение
Указать полный путь к Nircmd.exe. Н-р d:\temp\nircmd.exe.

Если Ваша программа не поддерживает такие ключи запуска - вряд ли...

Dragokas писал выше:
Все получилось, огромное спасибо.

Но моя програма имеет способность сворачиваться в трей( я уже 3 раза писал)

Цитата Сообщение от Badger Посмотреть сообщение
Dragokas писал выше:
Сообщение от Dragokas
Имитация нажатий клавиш - например через утилиту NirCMD: Управление положением мышы на экране
Это я видел, но как расчитать точки куда нажимается мышь?
0
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,804
Записей в блоге: 16
13.02.2013, 18:39 #10
ctac1412, еще раз говорю. Мышь не при чем.
Программа воспринимает окно, которое требуется свернуть, по имени его заголовка, или имени класса (я Вам даже все нарисовал).
Не знаю, как можно еще доходчивей написать.
0
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 18:43  [ТС] #11
Цитата Сообщение от Dragokas Посмотреть сообщение
ctac1412, еще раз говорю. Мышь не при чем.
Программа воспринимает окно, которое требуется свернуть, по имени его заголовка, или имени класса (я Вам даже все нарисовал).
Не знаю, как можно еще доходчивей написать.
Я повторюсь что СВЕРНУТЬ у меня уже получилось..... Не получается до сих пор войти... Через tab and enter and space программа не реагирует, у nircmd есть функция тыкалки по мышке,вот как узнать координаты:?
П.С. где то видел, сейчас не могу найти что бы цитировать... Если нет такой то извините.... Все равно Большое спасибо за помощь.... каждого кто помог плюсанул
0
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,804
Записей в блоге: 16
13.02.2013, 18:59 #12
ctac1412, а окно появляется всегда в тех же самых координатах?

Можно экспериментально нащупать . С определением точных координат я Вам не помогу.
0
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 19:03  [ТС] #13
Цитата Сообщение от Dragokas Посмотреть сообщение
ctac1412, а окно появляется всегда в тех же самых координатах?

Можно экспериментально нащупать . С определением точных координат я Вам не помогу.
Да ровно по центру.... Ну щас поищу проги для определения координат, но команду не подскажите?
0
Badger
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
13.02.2013, 19:11 #14
Цитата Сообщение от ctac1412 Посмотреть сообщение
Ну щас поищу проги для определения координат
Au3Info.exe показывает и класс кнопки и координаты ее положения, находится в комплекте с Autoit, который можно скачать бесплатно с офф сайта.

Добавлено через 33 секунды
...хотя его по моему можно и отдельно от туда скачать.
2
Вложения
Тип файла: zip Au3Info.zip (259.9 Кб, 74 просмотров)
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,804
Записей в блоге: 16
13.02.2013, 19:22 #15
Цитата Сообщение от ctac1412 Посмотреть сообщение
но команду не подскажите
Bash
1
nircmdc setcursor 300 115
Левый клик мышью:
Bash
1
sendmouse left click
Полный перечень команд можно найти на оф. сайте http://nircmd.nirsoft.net/sendmouse.html
А также множество примеров по использованию нашел здесь: http://www.nirsoft.net/utils/nircmd2.html#using
1
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 19:43  [ТС] #16
Вот и свершилось!!! работа двух дней закончена))
Сделаю свои замечания для других новичков, у кого появится такая же проблема))
1) Если вы не пихаете nir в корневую папку,а используете по пути- обязательно используйте файл у которого в конце дописано с "nircmdc.exe"
2) исправьте у себя второй код( в начале допишите nircmdc)
3) Можно ли паузу сделать меньше 1 секунды?
4) Конечно же кидаю итог))

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
>C:\WebSurf.ru\websurf.ini (
    echo [options]
    echo savepass=0
    echo login=qqqq
    echo pass=xxxx
)
cd C:\WebSurf.ru
Start C:\WebSurf.ru\websurf.exe 
cd C:\Poker
Start C:\Poker\nircmdc.exe
timeout /t 1 /nobreak
nircmdc setcursor 552 388
nircmdc sendmouse left click
timeout /t 1 /nobreak
nircmdc win min ititle "WebSurf.ru"
exit
0
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,804
Записей в блоге: 16
13.02.2013, 19:46 #17
пауза в 500 мс.
Bash
1
ping -n 1 -w 500 192.168.254.254>NUL
0
ctac1412
18 / 18 / 2
Регистрация: 12.02.2013
Сообщений: 387
13.02.2013, 20:19  [ТС] #18
я нашел вариант лучше))) коль мы мир используем то вот

Bash
1
2
3
4
nircmdc wait 300
nircmdc setcursor 552 388
nircmdc sendmouse left click
nircmdc wait 100
после wait - количество в миллисекунд


Источник - ссылка удалена

Главное мышкой не шевелить в промежуток передвижения и клацанья

Добавлено через 13 минут
как считаете, реально ли произвести передвижение и клац внутри окна??? Щас ищу на вашем сайте пока не вижу... ( дефолтно он по всему экрану двигает)
0
Dragokas
Эксперт WindowsАвтор FAQ
16922 / 7007 / 851
Регистрация: 25.12.2011
Сообщений: 10,804
Записей в блоге: 16
13.02.2013, 20:41 #19
Если окно было перемещено, можно его, к примеру, центрировать перед отправкой нажатия мыши:

Bash
1
nircmdc win center ititle "WebSurf.ru"
Посмотрите по ключевой фразе
win [action] [find] [window to find] [Additional Parameters]
здесь в теме на оф.сайте. Может, еще что полезное для себя найдете.
0
Eva Rosalene
Male-to-Female
4049 / 1587 / 301
Регистрация: 06.01.2013
Сообщений: 4,176
Завершенные тесты: 2
13.07.2013, 19:26 #20
Nircmd можно еще и рядом с батником положить...
0
13.07.2013, 19:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2013, 19:26
Привет! Вот еще темы с решениями:

Программы, имеющие окна
Здравствуйте. Необходим командный файл: Среди выполняющихся на ПК программ...

Запуск программы с определенными параметрами окна
Здравствуйте. Такой вопрос: Можно ли средствами CMD/BAT запускать firefox.exe...

Предотвратить сворачивание окна по нажатию кнопки Windows «Свернуть все окна»
Здравствуйте, пишу что то вроде гаджета на c# wpf, и возник вопрос: можно ли...

Как запретить сворачивание окна приложения при нажатии кнопки "свернуть все окна"
Что происходит при нажатии этой кнопки в плане сообщениий, и как их...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru