Kibor |
Отправлено: 18 Июля, 2013 - 21:26:17
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
win и есть HWND. По каким параметрам определяется win?
Как вариант могу предложить сделать окна в разных размерах, получить эти размеры с помощью CTRL+SHIFT+S и определять win для каждого окна не по одинаковому для них названия и классу а по размерам. К примеру так:
win w1=window ("имя окна игры", "класс окна игры", -1, -1, 800, 600, -1);
win w2=window ("имя окна игры", "класс окна игры", -1, -1, 900, 700, -1);
ionich123 пишет: При попытке поменяться название окна, они возвращаются назад при первом обращении на "Lineage II".
Это такая защита в игре?
Если имя можно все же сменить хоть и до обращения к игре то можно сделать так:
win w1=window ("имя окна игры", "класс окна игры", -1);
w1.name ="новое имя окна игры";
movewindow(w1);
sleep(1000);
win w2=window ("имя окна игры", "класс окна игры", -1);
И работать с w1 и w2. Они должны указывать на разные окна. |
|
|
ionich123 |
Отправлено: 18 Июля, 2013 - 22:17:29
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2013
Репутация: 0
|
Kibor пишет: win и есть HWND. По каким параметрам определяется win?
Как вариант могу предложить сделать окна в разных размерах, получить эти размеры с помощью CTRL+SHIFT+S и определять win для каждого окна не по одинаковому для них названия и классу а по размерам. К примеру так:
win w1=window ("имя окна игры", "класс окна игры", -1, -1, 800, 600, -1);
win w2=window ("имя окна игры", "класс окна игры", -1, -1, 900, 700, -1);
Спасибо за помощь, теперь различаю окна по слегка разным местоположениям и скрипт всегда узнает нужное-)
насчет второго способа- я делал то же самое с помощью sendtext, при его испоьзовании окно меняет название когда к нему обращаешься, при способе w1.name ="новое имя окна игры"; тут же возвращается назад на ""Lineage II". |
|
|
ionich123 |
Отправлено: 18 Июля, 2013 - 23:11:03
|
Прохожий
Покинул форум
Сообщений всего: 8
Дата рег-ции: Июль 2013
Репутация: 0
|
CODE:
win w1=window ("Lineage II", "l2UnrealWWindowsViewportWindow", -1);
sendtext("1", w1);
sleep(1000);
win w2=window ("Lineage II", "l2UnrealWWindowsViewportWindow", -1);
key("waerty",1,1,w1);
key(RETURN,1,1,w1);
key("wa1212erty",1,1,w2);
key(RETURN,1,1,w2);
Работает, только приходится эксперементировать с чатом, чтобы понять кто w1 а кто w2.
Почему-то не работает у меня команда messagebox, просто с переменными работает, а при смешении текста и переменных("text"+var) ничего не происходит. |
|
|
Kibor |
Отправлено: 18 Июля, 2013 - 23:18:04
|
Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
ionich123 пишет: приходится эксперементировать с чатом
Походу первым w будет окно которое первым запустилось.
ionich123 пишет: не работает у меня команда messagebox, просто с переменными работает, а при смешении текста и переменных("text"+var)
var имеет какой тип?
Подробнее об операциях с переменными: Математические и строковые операции
string можно соединять только с string или char |
|
|
|