|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - запуск бат файла с указанием месторасположения окна |
|
CMD/BAT - запуск бат файла с указанием месторасположения окна
|
Новый участник Сообщения: 6 |
Профиль | Сайт | Отправить PM | Цитировать здравствуйте!
имеются 2 бат файла просто запускающие "ping" к указанному IP адресу. при запуске их поочередно одно окно накладывается на другое. приходиться ручками перемещать чтоб видеть оба окна параллельно. хотелось бы это автоматизировать. как это можно осуществить? |
|
Отправлено: 13:06, 02-03-2013 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Тимур_Макенов@vk:
А Вы попробуйте: Сохраните код в файл с расширением .vbs и запустите. |
|
Отправлено: 09:33, 03-03-2013 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Спасибо огромное! И мне помогло. Долго мучался искал как сделать чтоб проверка сети "красиво запускалась" в один клик. Ваш код просто супер. С небольшими твиками вот он ниже. Запускается три окна - пинг на роутер (есть подозрения что проблемы именно с ним), на EX.UA, и конечно же GOOGLE.COM. Сделал фон чуть более контрастным (черный с белым, красным и зеленым), а так же указал заголовки окон (тоже удобно знать кого пингует это окно. Окна, при разрешении моего ноута занимают весь экран - пинг роутера всю левую половину, пинг екса - верхнюю правую часть, пинг гугла - нижнюю правую. Option Explicit Const SW_NORMAL = 1 Dim objSWbemObjectEx_Win32_Process Dim objSWbemObjectEx_Win32_ProcessStartup Dim lngProcessID Dim strCommandLine1 Dim strCommandLine2 Dim strCommandLine3 strCommandLine1 = "ping.exe -t 192.168.1.1" strCommandLine2 = "ping.exe -t ex.ua" strCommandLine3 = "ping.exe -t google.com" With WScript.CreateObject("WbemScripting.SWbemLocator") With .ConnectServer(".", "root\cimv2") Set objSWbemObjectEx_Win32_Process = .Get("Win32_Process") Set objSWbemObjectEx_Win32_ProcessStartup = .Get("Win32_ProcessStartup").SpawnInstance_ With objSWbemObjectEx_Win32_ProcessStartup .ShowWindow = SW_NORMAL .CreateFlags = 16 .X = 0 .Y = 0 .XSize = 640 .YSize = 690 .XCountChars = 40 .YCountChars = 3000 .Title = "Ping ROUTER" .FillAttribute = 2 End With If objSWbemObjectEx_Win32_Process.Create(strCommandLine1, Empty, objSWbemObjectEx_Win32_ProcessStartup, lngProcessID) <> 0 Then WScript.Echo "Can't create process [" & strCommandLine1 & "]" WScript.Quit 1 End If With objSWbemObjectEx_Win32_ProcessStartup .X = 680 .XSize = 640 .YSize = 330 .Title = "Ping EX.UA" .FillAttribute = 4 End With If objSWbemObjectEx_Win32_Process.Create(strCommandLine2, Empty, objSWbemObjectEx_Win32_ProcessStartup, lngProcessID) <> 0 Then WScript.Echo "Can't create process [" & strCommandLine2 & "]" WScript.Quit 2 End If With objSWbemObjectEx_Win32_ProcessStartup .X = 685 .Y = 365 .XSize = 640 .YSize = 330 .Title = "Ping GOOGLE.com" .FillAttribute = 7 End With If objSWbemObjectEx_Win32_Process.Create(strCommandLine3, Empty, objSWbemObjectEx_Win32_ProcessStartup, lngProcessID) <> 0 Then WScript.Echo "Can't create process [" & strCommandLine2 & "]" WScript.Quit 3 End If End With End With WScript.Quit 0 |
|
Отправлено: 21:52, 22-01-2016 | #12 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Прошло почти два года. Теперь на Винде 10 и сервер 2016 этот скрипт частично развалился. Все параметры работают, кроме размера окна. Он теперь открывает три больших окна с нужными координатами. Вопрос - что не так со скриптом или виндой и как это исправить? Пробую менять параметры - на координаты и цвета реагирует, на размеры окон - никак.
|
Отправлено: 00:47, 13-12-2017 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Yoshimura, скриншоты, Ваш код, и ждать, пока кто-нибудь с Windows 10 на борту проверит-подтвердит таковое поведение.
|
Отправлено: 01:49, 13-12-2017 | #14 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Уже все, нашел сам как исправить. Это как то связанно с нововведениями МелкоСофта в новой версии консоли встроенной в винду. Это можно отключить.
После запуска любого консольного приложения, нужно нажать правой кнопкой мыши на иконке консоли (самый левый верхний угол), в появившемся меню выбрать "Значения по умолчанию". Там во вкладке "настройки" выбрать внизу "Использовать прежнюю версию консоли". Возможно еще понадобиться зайти во вкладку "Расположение" и убрать галку в самом низу "автоматический выбор". Данные действия возвращают поведение консоли "назад", к привычному по 7 винде. Только нужно учитывать что это применяет настройки для всех консольных приложений. |
Отправлено: 02:46, 13-12-2017 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Yoshimura:
|
|
Отправлено: 03:06, 13-12-2017 | #16 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Сложно сказать. Я довольно внимательно изучил код и конкретно функцию которая создает окна - именно с ней и была проблема. Все ее атрибуты работают и в новой версии консоли. Все кроме указания размера окна. С чем это связано я не знаю. На старой версии работает отлично как и было изначально. Разбираться в деталях дальше не вижу смысла и не имею желания - теперь работает как мне нужно и это хорошо.
|
Отправлено: 03:10, 13-12-2017 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Yoshimura, Вы так и не показали, что происходит, на скриншотах. Посему, я имел в виду, чтобы Вы определили конкретную настройку/возможность в новой версии консоли, которая препятствует ранее корректной работе класса Win32_ProcessStartup. Возможно, дело в новых умолчаниях для буфера окна, возможно — в чём-то другом, мне глядеть-проверять не на чем.
|
Отправлено: 03:27, 13-12-2017 | #18 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Iska, Я чесс слово не могу понять что я делаю не так или что от меня требуется. Я никогда еще не объяснял так долго не проблему, а ее, уже найденное собой же решение...
Ок, давайте еще раз что было/стало. Итак сначала. Ваш код (спасибо большое еще раз за него) несколькими сообщениями выше я несколько модифицировал под свои цели. Его же и выложил сразу за вашим последним сообщением (Ваше от 03-03-2013 08:33, мое от 22-01-2016 20:52). Все было мило и прекрасно пока я не обновился на Windows 10, и на некоторых машинах на Windows Server 2016. Там этот код не дает задать размер окон - они появляются с неким "стандартным" размером в не зависимости от того как я менял этот код. Проблема еще усугубляется тем что обычно я работаю на мониторах с не очень большим разрешением, либо вообще через TeamViewer. Может для 1080p или тем более 4K монитора это совсем не было бы проблемой. Для меня это проблема так как и без того места мало на экране. Скриншот в приложении. Повторюсь я не знаю какие методы, обновления или умолчания в новой версии консоли. Я вообще не знаю что такое новая версия консоли. Я просто методом тыка пришел к тому что если поставить галку в настройках этой самой консоли "Использовать прежнюю версию консоли" то проблема исчезает. Все это уже было описано двумя сообщениями выше с конкретными скриншотами куда и что нужно нажимать. Я не знаю какие от этого меняются буфера, настройки внутри системы и т.д. Но я знаю что раньше была проблема, после нажатия этой галки эта проблема решилась. Парой сообщений выше есть мой пост с инструкцией как эту проблему решить, если кому вдруг понадобиться. В этом посте в приложении скриншоты с "было" и "стало". Этого достаточно? |
Отправлено: 03:53, 13-12-2017 | #19 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Yoshimura, никаких проблем, кроме одной: выяснить, в чём, собственно, кроется причина такого поведения. Не «в особенностях поведения новой консоли Windows 10.0», а в чём конкретно. Всё остальное было зараз понятно и малоинтересно. И понятно, что Вы сами в дебри WinAPI не лазаете. От Вас я хотел хотя бы скриншот, и Вы его выложили, спасибо Вам за это.
Возможно, как-то поможет совместно-параллельное задание не только пары X/YSize, но и X/YCountChars, не знаю… Повторю, что мне пробовать даже не на чем. Цитата Yoshimura:
Цитата Yoshimura:
|
||
Отправлено: 04:58, 13-12-2017 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Нужен скрипт для бат файла | vlad_exe@vk | Тест-форум | 0 | 01-11-2012 00:58 | |
Создание Бат-файла. | Bond01 | Тест-форум | 3 | 08-05-2010 21:34 | |
CMD/BAT - [решено] помогите плиз с написание бат файла | sergey12989 | Скриптовые языки администрирования Windows | 7 | 16-04-2009 11:07 | |
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? | mitiya | Скриптовые языки администрирования Windows | 2 | 27-06-2008 20:50 | |
Работа с почтовиком с помощью бат файла | lehha | Программирование и базы данных | 5 | 18-04-2003 03:08 |
|