Что нового

как активировать конкретное окно EVE из 6ти возможных?

urrya

Новичок
Сообщения
159
Репутация
1
Доброго времени суток всем.
Не много поискал, но так ничего определённого и не нашёл.
Может быть кто нибудь умеет открывать конкретное окно из 6ти(к примеру)?
Заранее спасибо!
:smile:
 

Qenntan

Новичок
Сообщения
1
Репутация
0
Окно евы, если ты залогинен чаром непосредственно в игре имеет вид "EVE - Charname", где Charname имя твоего персонажа.
Используй
Код:
WinActivate("EVE - "&$CharName)
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Qenntan
В случае, если он пишет автологин для нескольких окон Евы, это не прокатит т.к. все окна называются "EVE"

Думаю надо искать либо по процессам, либо все окна вгонять в массив и поочереди оттуда их выбирать и логинить

Пример:
Код:
#include<Array.au3>

$win_list = WinList("EVE", '') ;Берём лист всех окон с именем "EVE"

;~ _ArrayDisplay($win_list)  ;Если раскоментить, можно увидеть что входит в эту переменную

$x = 0
$y = 0
For $i = 1 to $win_list[0][0] Step 1 ;$win_list[0][0] - это кол-во окон с тайтлом EVE
	WinMove($win_list[$i][1], '',  $x, $y) ;$win_list[1][1] - это хэндл первого окна. 
	$x += 50
Next


Если что, в справке можно подробнее посмотреть как возвращаются переменные
WinList
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
Qenntan Спасибо за подсказку, но так не работает =(
_ToBe_ прав.




Добавлено:
Сообщение автоматически объединено:

_ToBe_ Спасибо за совет, сейчас попробую, отпишусь ...



Добавлено:
Сообщение автоматически объединено:

_ToBe_
Почему то не хочет активировать и передвигать окна, при чём не только игры, но даже браузера :(


Добавлено:
Сообщение автоматически объединено:

Всё разобрался, вот так работает отлично:
Код:
#include<Array.au3>

$win_list = WinList("EVE", '') ;Берём лист всех окон с именем "EVE"

;~ _ArrayDisplay($win_list)  ;Если раскоментить, можно увидеть что входит в эту переменную

$x = 0
$y = 0
For $i = 1 to $win_list[0][0] Step 1 ;$win_list[0][0] - это кол-во окон с тайтлом EVE
	WinActivate($win_list[$i][1], '')
    WinMove($win_list[$i][1], '',  $x, $y) ;$win_list[1][1] - это хэндл первого окна.
    $x += 50
Next

Всем спасибо! ;)
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
Попутно возник вопрос, а как записать хендл окна в ini файл и затем прочитать его из другого скрипта?

P.S. Хочу сделать на 6 окон - 6 EXEшников.
:smile:
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
А в ини записывается очень просто

Код:
For $i = 1 to $win_list[0][0] Step 1
	IniWrite("Acc.ini", $i & " Window", "Handle", $win_list[$i][1])
Next
 
Автор
urrya

urrya

Новичок
Сообщения
159
Репутация
1
так записываю:
Код:
$Imy1 = $win_list[1][1]
	IniWrite("C:\imy1.ini", "Seccion1", "key", $Imy1)


так считываю:
Код:
$Imy1 = IniRead("C:\imy1.ini", "Seccion1", "key", $Imy1)


результат:
[Seccion1]
key=0x003705D4


но окно при этом не активируется :(

скорее всего надо как то записывать вместе с названием окна, а не только хендл, потом считывать так же вместе с названием окна, вот только я ещё не умею этого, и вообще такое возможно?


Добавлено:
Сообщение автоматически объединено:

вопрос решён при помощи переименования окон :smile:
Код:
WinSetTitle("Title -", "", $Imy1)

тема закрыта ;)
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
Ну, вообще-то есть и другое решение, логически правильное, раз уж мы стали на этот путь :smile:

Считываешь как ты считывал:
Код:
$Imy1 = IniRead("C:\imy1.ini", "Seccion1", "key", $Imy1)


Затем объявляешь считанный Хэндл с ини вот так:
Код:
$window1 = WinGetHandle(HWnd($Imy1))


Ну и для проверки:
Код:
WinActivate($window1)


:D
 
Верх