Здравствуйте, гость ( Вход | Регистрация )

6 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Хендл окна! Баг!?,
xolost
сообщение 21.10.2012, 14:32
Сообщение #1


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Сколько уже написал скриптов в пилоте, так не разу и не удалось привязать пилот к окну минуя "ctrl+a"
что бы полноценно работало.
Вот четкий пример..
Открываем блокнот, открываем пилот.
Пишем в пилоте:

set #handleWin findwindow (test - Блокнот)
set workwindow #handleWin
send rabotaet
end_script

или

set #handleWin findwindow (PID указываем реальный номер)
set workwindow #handleWin
send rabotaet
end_script

Ни в одном ни во втором случае текст не вбивается в окно.
А если стереть хендл
и оставить вот так:

send rabotaet
end_script

Нажать на блокноте ctrl+a

то в блокноте успешно напишется сообщение.

Или я полный тормоз или функция не работает или работает не корректно...

Прошу подсказать что не так я делаю или что надо сделать что бы заработало.
Спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.10.2012, 14:40
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.595
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 28780
Пользователь №: 11.279



Блокнот на win7 имеет злую подлость: родительское окно не восприимчиво к посылам клавиш. Область ввода текста является одним из дочерних окон. Итого ты нашел не тот хендл.
Чтобы не вставать на подобные грабли, смотри дерево окон с помощью windowscanner.

Сообщение отредактировал DarkMaster - 21.10.2012, 14:40


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 21.10.2012, 14:45
Сообщение #3


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(DarkMaster @ 21.10.2012, 15:40) *

Блокнот на win7 имеет злую подлость: родительское окно не восприимчиво к посылам клавиш. Область ввода текста является одним из дочерних окон. Итого ты нашел не тот хендл.
Чтобы не вставать на подобные грабли, смотри дерево окон с помощью windowscanner.


Не поверишь, я скажу почему я сдался и решил создать эту тему.
Я снес к чертовой бабке со всех компов вин7 и везде воткнул винХП 32бита! Стандартнее просто не бывает... хотел вин98, но не нашел образов...

Потому заявляю, проблема не решилась.

Но windowscanner не пробовал - щас попробую, спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 21.10.2012, 15:03
Сообщение #4


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Кстати, блокнот я привел для примера! Ни в каком браузере у меня не работало не разу.. точно так же как в блокноте..

И ещё, что-то этот InqSoft Window Scanner что-то не желает интерфейс показывать(( в запущенных приложениях виден, якобы развернут, а всё равно нету интерфейса.. блин.. не помнишь, комп перезагружать надо после переустановки?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.10.2012, 15:07
Сообщение #5


***********

Модератор UOPilot
Сообщений: 9.595
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 28780
Пользователь №: 11.279



Сканер вообще не требует установки.

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 21.10.2012, 15:23
Сообщение #6


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(DarkMaster @ 21.10.2012, 16:07) *

Сканер вообще не требует установки.

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


сцыль можешь дать на рабочую версию? а то первая страница поисковика кидает видимо на вирусный софт, который я по всей видимости уже скушал, раз установил..


при пиде и текстовом варианте
16:21:21 6 (, 2): 44500254
16:21:52 6 (, 2): 44500254
вот такие логи
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.10.2012, 15:31
Сообщение #7


***********

Модератор UOPilot
Сообщений: 9.595
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 28780
Пользователь №: 11.279



http://s0m.narod.ru/iws.html

Смотри дерево. Там уже можно начинать понимать что находишь и что следовало бы найти.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 21.10.2012, 15:35
Сообщение #8


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(DarkMaster @ 21.10.2012, 16:31) *

http://s0m.narod.ru/iws.html

Смотри дерево. Там уже можно начинать понимать что находишь и что следовало бы найти.

Я не могу у себя на компе это дерево увидеть.. не показывается нифига...
а сайт значит верный откуда качал... (тот же что и ты дал)..и он имеет установку, а не сразу запускается.. вот не хочет работать...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.10.2012, 15:37
Сообщение #9


***********

Модератор UOPilot
Сообщений: 9.595
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 28780
Пользователь №: 11.279



https://forum.uokit.com/index.php?act=A...ost&id=1171


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 21.10.2012, 15:41
Сообщение #10


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(DarkMaster @ 21.10.2012, 16:37) *

Ну понятно - тоже самое... устанавливаю, запускаю и болт...
ладно.. не трать своё время... спасибо за помощь...
причину ты описал, теперь мне ясно..
хотя не ясно, почему в винхп 32 бита проблема актуальна так же.. если ты говоришь что не должно быть..
может в список багов добавить?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.10.2012, 15:51
Сообщение #11


***********

Модератор UOPilot
Сообщений: 9.595
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 28780
Пользователь №: 11.279



99% ты не тот хендл находишь.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
_LESTAT_
сообщение 21.10.2012, 17:16
Сообщение #12


****

Apprentice
Сообщений: 103
Регистрация: 12.3.2011
Группа: Пользователи
Наличность: 0
Пользователь №: 13.512
Возраст: 25



Все работает с блокнотом на виндовс 7 , просто ты не указывал переход на дочернее окно, являющееся едитом. Пользуйся windows scaner'ом , чтобы узнать на сколько дочерних окон спускаться и куда.
Цитата
set #a findwindow ( — Блокнот )
set #a getwindow (#a CHILD)
set workwindow #a
if #a > 0
showwindow #a
send Privet ot LESTAT85
sendex {Enter}
send Как видишь, все работает !
end_if
stop_script


Это простейший рабочий пример, в более сложных веб приложениях поиск нужного рабочего окна целый процесс, вот например кусок кода скрипта отвечающий за это в моем скрипте.
Цитата

//Поиск игрового окна
:Res0
//Help Позиции в которых может появиться нужное нам игровое окно
//0: >>v>v>> // > child , v next
//1: >>v>v>>>>
//2: >>>v>>
//3: >>>v>>>>
//4: >>>v>>> (10.09.2012)
//5: >>>v>>>v (21.10.2012)
set #w #w + 1
if #w > 2
set #w 0
gosub win_lost
end_if
//set logging > w = #w
:Opo
set #va findwindow ( какая то игра)
if #va = 0
gosub win_lost
end_if
set #wjug0 #va //Для Обновления страницы
set #var getwindow (#va CHILD)
if #var = 0
gosub opoj //Для отсеивания постор. окон
end_if
get windowpos #va #wx #wy #ww #wh //Получаем размеры окна
// set logging #va #wx #wy #ww #wh
set #hposx (#wx + (#wx + #ww / 2)) //Вычисляем середину окна
set #hposy (#wy + #wh - 50) //Вычисляем почти низ окна
set #var getwindow (#var CHILD)
if #w = 1
set #varbuf #var
set #var getwindow (#var NEXT) //2 or 3
if #var = 0
set #var #varbuf
end_if
end_if
set #var getwindow (#var CHILD)
set #var getwindow (#var NEXT) //1 or 3
set #var getwindow (#var CHILD)
set #var getwindow (#var CHILD)
gosub ButEn_seach
set #var getwindow (#var CHILD)
gosub WinGame_seach //сделать дополнительный goto
if #w = 2
set #varbuf #var
set #var getwindow (#var NEXT) //5
gosub WinGame_seach
if #var = 0
set #var #varbuf
end_if
end_if
set #var getwindow (#var CHILD)
gosub WinGame_seach
goto Res0
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 15:01
Сообщение #13


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



Цитата(DarkMaster @ 21.10.2012, 14:51) *

99% ты не тот хендл находишь.

Такая же беда...
код
Цитата
set workwindow 0007079C
set $w workwindow
log $w
move 1015, 307
stop_script



В логе "0"
мувает по абсолютным 1440*900
ВинХП


Брауз Хром

В любой вкладке мувает в одно место,и даже если все свернуть делает то же на раб.столе.


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 15:19
Сообщение #14


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



причем если после мува добавить лефт туда же, то не лефтает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 10.1.2013, 15:23
Сообщение #15


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Санчес @ 10.1.2013, 16:19) *

причем если после мува добавить лефт туда же, то не лефтает.

мувит не зависимо от привязки.
а вот лефтить будет только к привязанному.
Вернее визуально будет выглдяить словно лефтит, а по факту не лефтит.


Сколько настрадался с хендалами, так и плюнул на них и не стал их добивать. Ушел на альтернативную привязку к окну через курсор. Пока хватает такого решения.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 15:35
Сообщение #16


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



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

и фильм на весь экран хочу (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 10.1.2013, 15:39
Сообщение #17


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Санчес @ 10.1.2013, 16:35) *

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

и фильм на весь экран хочу (IMG:style_emoticons/default/smile.gif)


Не понимаю, в чем отличие между привязкой по курсору и по хендлу? ну по-сути?
Курсор не нужно всегда держать на окне.
Курсор нужно один раз навести куда нужно через move (на окно к которому привязывать будем) и написать:
Код
set WorkWindow WindowFromCursor

И всё, к этому окну будет привязан.


кажется я понял почему ты считаешь это проблемой.
Твой код использует "шапку"?
Если не знакомо понятие "шапка", то поясняю.

сначала указываем все константы в коде:

Например,
Код
//шапка
set #a 1
set $a 10
move 500, 500
set WorkWindow WindowFromCursor

//+++++++++++++= тело
:na4alo
while 1 = 1
   // тут много всякого кода.
end_while


т.е. в верхней части мы указали данные, которые не будут передергиваться во время работы скрипта, а только при запуске один раз. Т.е. привязались к нужному окну и больше не трогаем привязку и курсор соответственно.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 10.1.2013, 15:41
Сообщение #18


***********

Модератор UOPilot
Сообщений: 9.595
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 28780
Пользователь №: 11.279



Ну для начала вы присвоили переменной workwindow вместо хенда текст.
set workwindow 0007079C
0007079C для пилота текст и не более того. Либо пишите признак шестнадцатиричного числа 0x0007079C, либо используйте десятичный вид числа(предпочтительнее).

Во вторых напрашивается вопрос зачем вы вообще задаете константой хендл? Он при каждом запуске будет сгенерирован новый. Без findwindow не обойдетесь.

Цитата
кажется я понял почему ты считаешь это проблемой.
Твой код использует "шапку"?

Куда страшнее когда работа с браузером и хендлы меняются, как перчатки.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 15:44
Сообщение #19


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



Цитата
Не понимаю, в чем отличие

запустил скрипт в нужном окне
привязал
включил фильм
скрипт повторился
и...
к чему он привяжется в этот раз??
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
xolost
сообщение 10.1.2013, 15:45
Сообщение #20


******

Expert
Сообщений: 517
Регистрация: 17.6.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.035



Цитата(Санчес @ 10.1.2013, 16:44) *

запустил скрипт в нужном окне
привязал
включил фильм
скрипт повторился
и...
к чему он привяжется в этот раз??


Ответил на это чуть выше про шапку.
Как раз то о чем вы спрашиваете
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

6 страниц V  1 2 3 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 1.11.2024, 2:49
Designed by Nickostyle