|
|
|
Скрипт Когда При Наведении Меняется Цвет Кнопки |
|
|
defens |
4.9.2011, 21:11
|
Группа: Пользователи Наличность: 0
Пользователь №: 13.953
Возраст: 29
|
Цитата(DarkMaster @ 4.9.2011, 20:48) читаем про: if move set #var findwindow showwindow left/kleft
тогда как на другие окна перейти тогда может по: set #handle windowfromcursor set workwindow #handle да и думаю надо так: move if set #var findwindow showwindow left/kleft
|
|
|
|
DarkMaster |
4.9.2011, 23:32
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27724
Пользователь №: 11.279
|
с курсором может быть не удобно. если несколько окон с одинаковым названием, то я обычно после нахождения окна и записи его хендла переимновывал его, чтобы не мешалось. Пример ренамера и автологина под рф онлайн. Пример
Код set #UOpilot findwindow (UoPilot v2.18.8 WK) //Сворачиваем пилот showwindow #UOpilot minimize // Скрипт совмещает в себе автологин для RF online и скрипт для переименования окон.
// ОПИСАНИЕ АВТОЛОГИНА // Скрипт предназначен для автоматического ввода пароля в RF online. // При запуске ланчера считывет из памяти логин, ищет логин в массиве %logPass, // при нахождении совпадения вводит пароль. // %logPass [ x 1 ] логин // %logPass [ x 2 ] пароль
set %logPass [ 1 1 ] логин set %logPass [ 1 2 ] пароль set %logPass [ 2 1 ] логин set %logPass [ 2 2 ] пароль //..... ту было еще около 50 паролей) set #sizeLogPass size (%logPass) // КОНЕЦ ОПИСАНИЯ АВТОЛОГиНА
// ОПИСАНИЕ РЕНАМЕРА // Скрипт предназанчен для отслеживания и переименования окон. // Написан изначально для RF Online. При нахождении окна пытается // считать из памяти ник перса, если ник не найдет, то считывет логин // и переменовывает согласно логину добавляя префикс "__". // Скрипт будет в дальнейшем пытатся найти ник чара у окон с префиксом. // Дальнейший поиск небходим, т.к. не загрузившись в мир // считывать ник бессмысленно.
set $firstTargetWindow "RF Online" // Целевое окно для переименования set $secondoryTargetWindow __ // Второе целевое окно для переименования он же ПРЕФИКС. set linedelay 100 // КОНЕЦ ОПИСАНИЯ РЕНАМЕРА :start
set linedelay 10 // Если расположить в шапке, то при переключении вкладки будет сбрасываться. gosub findWin gosub autologin
goto start
:findWin set #newWindowHandle findwindow ($firstTargetWindow) // Поиск целевого окна if #newWindowHandle > 0 set workwindow #newWindowHandle readmem $charName 0x0080AF79 s 10 // Попытка считать ник чара if $charName <> "" set #result setwindowtext ( #newWindowHandle $charName ) // Переименовываем согласно нику set windowpos -4 -14 1032 900 #newWindowHandle else readmem $accountName 0x0127E70C s 10 // Ник не был найден, считываем логин set windowpos -4 -14 1032 900 #newWindowHandle set #result setwindowtext ( #newWindowHandle $secondoryTargetWindow $accountName) // Переименовываем согласно логину end_if end_if set #newWindowHandle findwindow ($secondoryTargetWindow) // Поиск окон переименованных согласно логину. if #newWindowHandle > 0 set workwindow #newWindowHandle readmem $charName 0x0080AF79 s 10 // Попытка считать ник чара. if $charName <> "" set windowpos -4 -14 1032 900 #newWindowHandle // Переименовываем согласно нику set #result setwindowtext ( #newWindowHandle $charName ) end_if end_if return
:autologin set #launcherMain findwindow (RF OLD x3) set #testTargetWindow getwindow (#launcherMain CHILD) if #testTargetWindow = 0 // При запуске создается два окна с одинаковым названием. Одно ложное - отсекаем. set #result setwindowtext (#launcherMain RF_OLD x3 ) // Переименовываем ложное, чтобы больше не ловить его. else set linedelay 0 set workwindow #launcherMain readmem #markerLogin 0x00C40014 d readmem $login #markerLogin s 10 set #i 0 while #i < #sizeLogPass // Сопоставление логина из ланчера с базой логин/пароль (%logPass) set #i #i + 1 set $loginArr %logPass [ #i 1 ] if $loginArr = $login break end_if if #i = #sizeLogPass return end_if end_while set #launcher getwindow (#launcherMain CHILD) // Перебор окон для задания рабочим оконом поле ввода пароля repeat 11 set #launcher getwindow (#launcher NEXT) end_repeat set #launcher getwindow (#launcher CHILD) set #launcher getwindow (#launcher NEXT) set workwindow #launcher say %logPass [ #i 2 ] // Вводим пароль send enter set workwindow #launcherMain set #breakWaitConnect timer + 20000 while_not 821, 42 65280 if #breakWaitConnect < timer msg Ошбка подключения к серверу. Слишком долго не было видно статуса сервера. return end_if wait 100 end_while get mouse_pos #xReturn #yReturn kleft 821, 42 move #xReturn, #yReturn set linedelay 10 wait 2s end_if return
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
DarkMaster |
5.9.2011, 2:09
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27724
Пользователь №: 11.279
|
подпрограмма findwind из поста выше по факту сильно усложненный вариант того, что вам нужно. Цитата если взять Дескриптор каждого окна из WindowScanner проще через findwindow найти все хендлы попутно переименовывая найденные окна, чтобы не попались по второму кругу. Цитата и вставить в set #var findwindow Финдвиндов как раз и находит хендл. В него вставляют заголовок окна. Цитата как реализовать переключение на другое окно уже предлагал почитать про showwindow Цитата ведь курсор будет удерживаться там где move укажет курсор "удерживаться" не будет. мув только перемещает. как это осложняет переключение окон не понял. Цитата есле реализовать через wait в любом случае придется делать задержку на разворачивание окна Цитата wait но как ему указать на какое следующее кликнуть кому "ему"? Сообщение отредактировал DarkMaster - 5.9.2011, 2:09
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
defens |
5.9.2011, 2:25
|
Группа: Пользователи Наличность: 0
Пользователь №: 13.953
Возраст: 29
|
Цитата(DarkMaster @ 5.9.2011, 3:09) кому "ему"?
курсору, его же от место move не оторвать, без задержки
|
|
|
|
defens |
5.9.2011, 2:41
|
Группа: Пользователи Наличность: 0
Пользователь №: 13.953
Возраст: 29
|
с окнами думаю чтоб меньше заморочиваться открою в разных браузерах в findwindow найду хендлы в ShowWindow <handle> <SHOW> окна думаю не разворачивать а поделить экран на части Цитата(DarkMaster @ 5.9.2011, 3:29) А зачем его отрывать то? что страшного в задержке? вот только зачем?
задержка то как раз не страшна, а отрывать чтоб на другое переключить вот тоже придется делать тогда через set $a findcolor чтоб курсор шел туда в котором появится вновь эта кнопка так и не могу разобраться с переименованием окон, может есть другой проще пример
|
|
|
|
Pandorka |
6.9.2011, 15:18
|
Neophyte
Сообщений: 46
Регистрация: 6.9.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.958
|
Добрый день, в общем то вопрос тот же, но вид сбоку можно ли забить массив из цвета кнопки и проверить из него все, если можно научите пожалуйста как =) пока выглядит так Код set #x99 145 set #y99 547 wait 200 move #x99, #y99 abs wait 200 get color #хр #x99, #y99 abs wait 200 if #xp = 36316 or #xp = 158398 or #xp = 5987163 or #xp = 45560 or #xp =6645093 or #xp = 27073 goto next end_if
|
|
|
|
defens |
7.9.2011, 1:29
|
Группа: Пользователи Наличность: 0
Пользователь №: 13.953
Возраст: 29
|
Цитата(DarkMaster @ 6.9.2011, 4:35) Завидное упорство не следовать советам. Ваши усилия да в правильное русло... (IMG: style_emoticons/default/smile.gif) стараюсь следовать им и очень признателен за помощи и терпение, но чем дальше тем в больший ступор меня загоняют ответы (IMG: style_emoticons/default/ohmy.gif) Цитата(DarkMaster @ 6.9.2011, 4:35) Код set #i 1 set #winHandle (СЮДА ИМЯ ОКНА) while #winHandle > 0 set %winHandle [ #i ] #winHandle set #result setwindowtext ( #winHandle #i ) set #winHandle (СЮДА ИМЯ ОКНА) set #i #i + 1 end_while
showwindow %winHandle [ НОМЕР НАЙДЕНОГО ОКНА ] // Вытащит окно
все хендлы окон с введенным тобой названием будут занесены в массив %winHandle
а это как дополнение к раннему или новое да и нашел ранее написанное вами в другой теме set #n 1 set #var findwindow (Lineage II) while #var <> 0 set #result setwindowtext ( #var Окно № #n) set #var findwindow (Lineage II) set #n #n + 1 end_while stop_script скрипт отрабатывает без видимых процессов и без ошибок, а нет он имя сменил хотя я его ранее сменил в Window Scanner (IMG: style_emoticons/default/biggrin.gif) в это ( #var Окно № #n) ввел цифры хендлы взятые из Window Scanner наконец то хоть что то сдвинулось, осталось разобраться с переключением окон и кликами
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|