Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: gsukhado on September 21, 2019, 11:23:37 PM
-
У меня достаточно близкий вопрос, не буду плодить тем.
Открыто несколько окон Блюстака, через его мультиоконный режим. Мне нужно получить массив из их hwnd , чтобы потом переключаться между ними.
Если запрашиваю через WNDFIND
$hwnd_tmp = WNDFIND("BlueStacks", 0)
IF($hwnd_tmp > 0)
print("нашли окно = ", $hwnd_tmp)
print(hgettext($hwnd_tmp) )
ELSE
HINTPOPUP("Окно не найдено", "Ошибка")
HALT
END_IF
halt
то получаю значение только для одного окна. А как найти все окна, содержащие в начале своего названия "BlueStacks"? При этом заранее ввести массив потенциальных названий окон и делать по ним перебор не вполне удобно, т.к. не все они могут быть открыты, или где-то может смениться название, которое идет после "BlueStacks"...
-
Тебе нужно скачать Clickermann 4.14.003b
http://crapware.aidf.org/forum/index.php?topic=356.msg33512#msg33512 (http://crapware.aidf.org/forum/index.php?topic=356.msg33512#msg33512)
Новая функция WNDFINDARR возвращает массив окон по заголовку.
WNDFINDARR($arr_hwnd, "BlueStacks")
IF(ARRSIZE($arr_hwnd) > 0)
FOR($i=0,$i<ARRSIZE($arr_hwnd))
LOGWRITE ("Нашли окно = ", $arr_hwnd[$i])
LOGWRITE ("Заголовок = ", HGETTEXT($arr_hwnd[$i]))
END_CYC
ELSE
HINTPOPUP("Окно не найдено", "Ошибка")
HALT
END_IF
HALT
-
Еще варианты из прошлого http://crapware.aidf.org/forum/index.php?topic=3168.0,
тоже может пригодиться.
-
Еще варианты из прошлого http://crapware.aidf.org/forum/index.php?topic=3168.0,
тоже может пригодиться.
Спасибо за идею, на ее основе все вроде заработало. Скрипт вот такой:
UNDEFINE($windows_hwnd_of_Game)
$hwnd_tmp=0
$okno_number_tmp=0
if($emulator_vybor>0) // выбор эмулятора, если =1 то для BlueStacks, если =0 то для Nox
$hwnd_tmp = wndfind("BlueStacks") // получаем HWND окна Блюстака
if ($hwnd_tmp > 0)
print("нашли хотя бы одно окно BlueStacks, начинаем цикл обработки окон")
WHILE($hwnd_tmp > 0) // работает пока находим новые окна BlueStacks
$hwnd_tmp=0
$hwnd_tmp = wndfind("BlueStacks") // получаем HWND окна Блюстака
IF($hwnd_tmp > 0)
print("нашли окно №= ", $hwnd_tmp)
print("...с названием=", hgettext($hwnd_tmp) )
ARRPUSH($windows_hwnd_of_Game, $hwnd_tmp) // добавили HWND окна в массив окон с игрой
HSETTEXT($hwnd_tmp, STRCONCAT("oknoGame_",$okno_number_tmp)) // переименовываем окна в "oknoGame_" с нарастающим номером
$okno_number_tmp=$okno_number_tmp+1
ELSE
HINTPOPUP("Окно не найдено", "Завершаем цикл окон")
print("Окно не найдено, завершаем цикл окон")
END_IF
end_cyc
else
print("Ни одного окна BlueStacks не нашли")
end_if
else
print("идентично можно сделать для Nox")
end_if
Тебе нужно скачать Clickermann 4.14.003b
...
Спасибо, но вроде задачу получилось решить не меняя версию Кликермана )