|
|
|
Переименование окон, Скрип для переименования названия окон Windows... |
|
|
bumer |
23.9.2019, 10:13
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Да это то что надо, с переименованием любого окна Код set #handle FindWindow("Калькулятор") //найти окно калькулятора set #a SetWindowtext (#handle Pilot) //переименовать его в Pilot End_script
Но вот с идентификацией кнопок, по их названию всё гораздо сложней. Наверно нужно подыскивать что то другое, чтоб уверено распознавать название кнопок, внутри окна... Возможно будет правильней использовать какой нить, другой метод распознавание состояние ярлычков кнопок внутри окна, чтоб ориентируясь по их внешнему виду прожимать по координатам или иным способом
|
|
|
|
bumer |
24.9.2019, 10:33
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Всё таки какой замечательный этот форум, такие вкусные загатовки скрипта появляются Вот супер, можно искать всё что угодно по картинке в области, в моем случаи кнопку: Код --lua local startX, startY, endX, endY = 0, 0, 1280, 720 -- координаты поиска local path2 = [["C:\картинка.bmp"]] -- путь к картинке local arr, a = findimage (startX, startY, endX, endY, {path2}, 2, 70, 6, 5 ) -- поиск картинки hint (a) -- результат поиска, подсказка в правом нижнем углу if arr then -- если найдена log ("картинка найдена в координатах X= " .. arr[1][1] .. " Y= " .. arr[1][2]) kleft (262, 594) -- кликнули wait ("2s") -- ждать секунды else log ("Картинка.bmp не найдена") end
Спасибо Fors1k ! Код init_arr %path(1 1) "C:\картинка2.bmp" "C:\картинка3.bmp" "C:\картинка4.bmp" // что искать init_arr %snd(1 1) 2 3 4 // клавиши
for #i 1 size(%path) // цикл поиска set #a FindImage (0, 0 1280, 720(%path[#i]) %arr 2 70 6 5 abs) // поиск каждой картинки if #a > 0 // если нашли send %snd[#i] // действие, соответствующее найденной картинке end_if end_for end_script
или вот прожатие по приоритету... Код //-----Условия set $a 100, 200 0 and 300, 400 435346 set $b 500, 600 0 and 700, 800 43475 set $c ??? //-----Условные действия while ($a) = 1 // приоритет 1 send A // действия приоритет 1 end_while while ($b) = 1 and ($a) !=1 // приоритет 2 send B // действия приоритета 2 end_while while ($c) = 1 and ($a) != 1 and ($b) != 1 // приоритет 3 send C // действия приоритета 3 end_while
П.С. Смотришь на всё это и душа радуется! Жаль что я не капли не программист и сам неспособен делать красивые вещи. Но некто не мешает использовать уже придуманное!
|
|
|
|
bumer |
28.11.2019, 1:20
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Не захотел открывать новую тему, кажется вот эта как рас подходящая! Скажем вот если вдруг мне надо запустить калькулятор в три окна, но чтоб окна переименовывались, так как мне надо, как это сделать? Ну с Код set #handle FindWindow("Калькулятор") //найти окно калькулятора set #a SetWindowtext (#handle Pilot) //переименовать его в Pilot End_script
Понятно... Но как заставить его запускать .eхе файл, потом найденное окно переименовать Pilot1, запустить ещё раз, переименовать Pilot2... Pilot3 это повторить три раза? П.С. надеюсь у меня получилось описать то что нужно...
|
|
|
|
bumer |
28.11.2019, 14:46
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Цитата(cirus @ 28.11.2019, 12:06) Может проще сразу запустить все окна и потом все переименовать? Код init_arr %arr Pilot1 Pilot2 Pilot3
for #i 1 3 exec C:\Windows\notepad.exe end_for
set %handle FindWindow("Блокнот") while size(%handle) < 3 set %handle FindWindow("Блокнот") wait 100 end_while
for #i 1 3 set #h %handle[#i 1] set #b SetWindowtext (#h %arr[#i]) end_for End_script Непринципиально, главное чтоб обработало нужные окна... ------ Испытал, да запускает. Всё ОК. Но есть недостаток... Если по какой то причине было закрыто одно из окон, при перезапуске скрипт, запускает все окна, даже если не хватало всего одно! Было бы здорово если вначале шла проверка и запускало недостающие окно, такое возможно?
|
|
|
|
Fors1k |
29.11.2019, 11:42
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2398
Пользователь №: 18.746
|
Цитата(bumer @ 29.11.2019, 9:29) Спасибо за очень интересное решение... Я ведь правильно всё понял. Запускаешь скрипт на исполнение и в ручную стартуешь приложение которое вам нужно. Скрипт переименовывает окна? Вот только он почему то у меня начинает отсчёт окон с номера 2, затем 3, а первого нет! На этом скрипт завершает работу...
Нет, приложение стартует само по указанному пути. Посмотри сейчас ещё раз на код. Насчёт нумерации - как видно в коде, цикл стартует с единицы, так что нумерация пойдёт с 1. Я запускал у себя, все работает норм Ничего сам не запускай, закрой все блокноты, и просто запусти скрипт. После попробуй закрыть например test2, затем запусти скрипт, и он создаст только окно под номером 2.
--------------------
Для связи
|
|
|
|
bumer |
29.11.2019, 12:07
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Цитата(Fors1k @ 29.11.2019, 11:42) Нет, приложение стартует само по указанному пути. Посмотри сейчас ещё раз на код. Насчёт нумерации - как видно в коде, цикл стартует с единицы, так что нумерация пойдёт с 1. Я запускал у себя, все работает норм.
Да я поглядел, значение i действительно меняется с 1 до 3, но вот окон запускает всего два с нумерацией 2 и 3. Номера 1 просто нет! Непонятно почему, может слишком быстро всё происходит, может ещё по какой причине...
|
|
|
|
Fors1k |
29.11.2019, 12:26
|
Journeyman
Сообщений: 497
Регистрация: 19.12.2017 Группа: Пользователи Наличность: 2398
Пользователь №: 18.746
|
Цитата(bumer @ 29.11.2019, 12:07) Да я поглядел, значение i действительно меняется с 1 до 3, но вот окон запускает всего два с нумерацией 2 и 3. Номера 1 просто нет! Непонятно почему, может слишком быстро всё происходит, может ещё по какой причине...
Попробуй выставить паузу между строк 100мс. Хотя у меня и на нуле благополучно запускался. Не знаю даже, ещё раз проверил у себя - работает как часы. Может у кого из ребят будут идеи, в связи с чем у тебя не запускается. Cirus, попробуй запустить у себя, если есть возможность. Если как у бумера будет, то может сможешь разглядеть ошибку... Не может же работать только на моем пк:))
--------------------
Для связи
|
|
|
|
bumer |
29.11.2019, 12:56
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Цитата(Fors1k @ 29.11.2019, 12:26) Попробуй выставить паузу между строк 100мс. Хотя у меня и на нуле благополучно запускался. Не знаю даже, ещё раз проверил у себя - работает как часы. Может у кого из ребят будут идеи, в связи с чем у тебя не запускается. Cirus, попробуй запустить у себя, если есть возможность. Если как у бумера будет, то может сможешь разглядеть ошибку... Не может же работать только на моем пк:))
поставил даже 5 секунд, ну и заметил вот что, при первом цикле когда i=1 проскакивает сразу в конец, а при втором и третьем цикле уже обрабатывает каждую строчку кода... П.С. Если есть дискорд + желание поглядеть то можно обговорить, даже могу видосик снять. В общем открыт к общению
|
|
|
|
bumer |
29.11.2019, 13:14
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Цитата(Fors1k @ 29.11.2019, 13:04) Я сейчас в больничке лежу, так что пока только кое-как через тимку заходил на комп) Вечером сегодня уже буду дома по идее, и можно будет попробовать. Ну а пока можем только подождать результат запуска у кого-нибудь другого)
Угу, понятно. Я попробовал стартануть блокнот, он действительно стартует и открывает так как вы описываете. Но вот другое приложение первый цикл проглатывает, когда i=1 П.С. Пусть таблетки, чай, малина Вам помогут поскорей Пролететь болезней мимо, Стать бодрей и веселей.!
|
|
|
|
bumer |
29.11.2019, 14:32
|
Apprentice
Сообщений: 167
Регистрация: 2.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.998
|
Цитата(Fors1k @ 29.11.2019, 13:19) Спасибо) Ну по логике, если он пропускает первую итерацию, значит он где-что находит окно, где в имени есть test1. Попробуй поменять test на qweAbc, что бы проверить эту теорию. Может он при поиске test1 находит это в имени окна какой-либо другой запущенной программы.
Я нашёл проблему, что не давала правильно работать скрипту! Код set $Name Блокнот // Имя окна до
Перед именем два пробела... Убрал один и всё стало работать как надо! П.С. Огромное спасибо за помощь, выздоравливай! У меня уже есть следующая хотелка... Но пока что воздержусь описывать, выздоравливай скорей!
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|