Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (2): [1] 2 »   

> Без описания
koba
Отправлено: 30 Августа, 2021 - 12:39:04
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2021  
Репутация: 0




Есть окна с меняющимся названием к примеру:

Окно программы(698290)Адидас
Программа(93567230)Адидас
либо
Адидас(4we58)
Адидас(56923345)

т.е. разные названия но в каждом есть постоянные неменяющееся часть названия,
как прописать в блок кода чтобы все эти окна изменяли размер и положение по заданным величинам исходя из неменяющегося названия?
 
 Top
Zireael
Отправлено: 30 Августа, 2021 - 12:59:24
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




Класс окна тоже разный?
 
 Top
koba
Отправлено: 30 Августа, 2021 - 15:05:00
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2021  
Репутация: 0




 Zireael пишет:
Класс окна тоже разный?

Класс одинаковый: "Chrome_WidgetWin_1"
а имя окна разные.
 
 Top
Zireael
Отправлено: 30 Августа, 2021 - 15:06:43
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
Класс одинаковый: "Chrome_WidgetWin_1"

Можно искать только по классу окна, вместо имени -1.
CODE:
window (-1, "Chrome_WidgetWin_1", -1);
 
 Top
koba
Отправлено: 30 Августа, 2021 - 15:26:46
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2021  
Репутация: 0




 Zireael пишет:
 Цитата:
Класс одинаковый: "Chrome_WidgetWin_1"

Можно искать только по классу окна, вместо имени -1.
CODE:
window (-1, "Chrome_WidgetWin_1", -1);

прописываю в старте
CODE:
window (-1, "Chrome_WidgetWin_1", 1619, 90, 300, 949, -1)

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

(Отредактировано автором: 30 Августа, 2021 - 15:34:10)

 
 Top
Zireael
Отправлено: 31 Августа, 2021 - 01:43:54
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
только если окно перед запуском соответствует размеру положению.

Если указали позицию и размеры, то разумеется окно должно соответствовать указанным параметрам.
 Цитата:
Даже по полностью прописанному имени и классу размеру, все кавычки включены,
и все равно вообще не реагирует.

Не реагирует и не находится не одно и тоже. Можно проверить нашлось окно или нет:
CODE:
win w = window (-1, "Notepad", -1); // найти окно блокнота
if(w)messagebox("Окно найдено");
else messagebox("Окно не найдено");


Поиск по части имени:
CODE:
// блок Старт
external(INT, "FindWindowEx", "FindWindowExA", "user32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "user32.dll");

string NameWindow="Блокнот"; // имя окна или часть имени
char FullNameWindow[255];
string temp;
win w[10];
int i, handle, CountWindow=0;


// блок кода
handle = FindWindowEx(0, 0, 0, 0);
while(handle!=0)
{
GetWindowText (handle, address (#FullNameWindow[0]), 255);
if(regexsearch(1, #temp, format(#FullNameWindow[0]), NameWindow))
{
messagebox(format(#FullNameWindow[0])); // полное имя окна
w[CountWindow]=window(format(#FullNameWindow[0])); // найти окно
CountWindow++;
}
handle=FindWindowEx(0, handle, 0, 0);
}

messagebox("Найдено окон: "+format(CountWindow));

for(i=0; i<CountWindow; i++) // цикл для всех окон
{
// новая позиция окна
w.left[i] = 200;
w.top[i] = 100;
// новый размер окна
w.width[i] = 600;
w.height[i] = 400;
movewindow(w[i]); // переместить окно
}
 
 Top
koba
Отправлено: 31 Августа, 2021 - 14:26:49
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2021  
Репутация: 0




Zireael
 Цитата:
только если окно перед запуском соответствует размеру положению.

Все прописал как выше, только у меня был размер в старте прописан и по нему же работал в фоне:
window (-1, -1, 1619, 90, 300, 949, -1)
и теперь они не совпадали, пришлось подгонять менять на:
CODE:
// новая позиция окна
w.left[i] = 1615;
w.top[i] = 63;
// новый размер окна
w.width[i] = 308;
w.height[i] = 980;
movewindow(w[i]); // переместить окно

Оно меняет размер и положение как надо, но далее не видит окно и по условиям скрипта закрывает кибор
и только когда второй раз прогу запускаешь, когда окно по размеру и положению подходит, тогда работает.
Это не дело.
 
 Top
Zireael
Отправлено: 31 Августа, 2021 - 14:33:29
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




 Цитата:
и только когда второй раз прогу запускаешь, когда окно по размеру и положению подходит, тогда работает.

Зачем искать окно по позиции и размеру если оно не соответствует этим параметрам? Ищите по имени окна, классу, имени процесса.
 
 Top
koba
Отправлено: 31 Августа, 2021 - 14:50:47
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2021  
Репутация: 0




 Zireael пишет:
 Цитата:
и только когда второй раз прогу запускаешь, когда окно по размеру и положению подходит, тогда работает.

Зачем искать окно по позиции и размеру если оно не соответствует этим параметрам? Ищите по имени окна, классу, имени процесса.

Так в том то и беда, что находит только по размеру и положению окна.
Уже и по полному имени, и по классу, все галки включены, и поочередно, и по окнам и по контролам - не находит.
(Добавление)
Попробовал в Блокноте найти лишь по классу: window (-1, "Notepad", -1)
находит и работает не закрывается.
а в Хроме броузере не работает даже со всеми включенным.
 
 Top
Zireael
Отправлено: 31 Августа, 2021 - 15:07:08
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




По части имена нашлось же?
CODE:
// блок Старт
external(INT, "FindWindowEx", "FindWindowExA", "user32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "user32.dll");

string NameWindow="Google Chrome"; // имя окна или часть имени
char FullNameWindow[255];
string temp;
win w=formatiw(0);
int handle;


// блок кода
handle = FindWindowEx(0, 0, 0, 0);
while(handle!=0)
{
GetWindowText (handle, address (#FullNameWindow[0]), 255);
if(regexsearch(1, #temp, format(#FullNameWindow[0]), NameWindow))
{
messagebox(format(#FullNameWindow[0]));
w=window(format(#FullNameWindow[0])); // найти окно
break;
}
handle=FindWindowEx(0, handle, 0, 0);
}

if(w)
{
messagebox("Окно найдено");
activate(w); // активировать найденное окно
pause(2000);
}
else messagebox("Окно не найдено");
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by