1 место Zennoposter + WinAPI (для чайников). Автоматизация любого десктоп приложения

Dmitryreps

Client
Регистрация
05.10.2017
Сообщения
24
Благодарностей
13
Баллы
3
ребята помогите понять как работает функция AutoItX.PixelSearch??
что туда надо передавать за параметры правильно и как вернуть координаты цвета найдено.
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
ребята помогите понять как работает функция AutoItX.PixelSearch??
что туда надо передавать за параметры правильно и как вернуть координаты цвета найдено.
Поддерживаю. Пробовал сделать как в офф мануале. Выдает ошибку что 5 параметров не поддерживаются. а функция очень полезная. Так как по цвету можно понять выполнены ли условия для регистрации в приложенях написанных на qt.
 

Dmitryreps

Client
Регистрация
05.10.2017
Сообщения
24
Благодарностей
13
Баллы
3
Поддерживаю. Пробовал сделать как в офф мануале. Выдает ошибку что 5 параметров не поддерживаются. а функция очень полезная. Так как по цвету можно понять выполнены ли условия для регистрации в приложенях написанных на qt.
мануал старый потому что, там сейчас 4 параметра. я вот как раз и не могу понять как передать правильно первый параметр типа Rectangle.... (как я понимаю, второй это искомый цвет, третий это хз опять же что, и четвертый это шаг в пикселях поиска в области)
 
  • Спасибо
Реакции: booldozer

sprint16

Client
Регистрация
11.08.2016
Сообщения
51
Благодарностей
9
Баллы
8
Всем привет. А как тогда переменную отправить? AutoItX.Send("{-Variable.peremennay-}"); он вставляет только цифры из переменной, а англ раскладку игнорит, или надо тоже, как выше писали попробовать русскими символами заменить?
У вас получилось вписать русский текст из переменной? У меня так же все. либо только eng буквы и цифры, либо абракадабра.
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
У вас получилось вписать русский текст из переменной? У меня так же все. либо только eng буквы и цифры, либо абракадабра.
Так я полагаю AutoItX.Send(project.Variables["Text"].Value);
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
У вас получилось вписать русский текст из переменной? У меня так же все. либо только eng буквы и цифры, либо абракадабра.
Еще нужно раскладку на русскую переключать.
 

wersav

Client
Регистрация
17.02.2014
Сообщения
99
Благодарностей
9
Баллы
8
У вас получилось вписать русский текст из переменной? У меня так же все. либо только eng буквы и цифры, либо абракадабра.
Я уже не помню :-) По моему нет, раз я перестал этим заниматься
 

sprint16

Client
Регистрация
11.08.2016
Сообщения
51
Благодарностей
9
Баллы
8
Так я полагаю AutoItX.Send(project.Variables["Text"].Value);
Я уже не помню :-) По моему нет, раз я перестал этим заниматься

В тот же день я решил эту проблему. муздохался я с этими раскладками и клавиатурами.

Выход нашел такой. закидываем текст в буфер обмена через снипет, потом кликаем по полю ввода, а затем AutoItX.Send(^v); ctrl+v
 
  • Спасибо
Реакции: Radzhab и wersav

sprint16

Client
Регистрация
11.08.2016
Сообщения
51
Благодарностей
9
Баллы
8
@Radzhab Подскажи как функцией пользоваться: https://autoit-script.ru/autoit3_docs/functions/PixelSearch.htm очень нужная штука. И я заметил не мне одному.
Я пользовался этой функцией, приходится делать много проверок. Погугли ImageSearchDLL я этим сейчас пользуюсь намного все лучше работает. Суть что ты ищешь по картинке на экране. Окно может быть в любом месте. Если нет картинки то по ошибке выходит.
 
  • Спасибо
Реакции: VladimirM и booldozer

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
Я пользовался этой функцией, приходится делать много проверок. Погугли ImageSearchDLL я этим сейчас пользуюсь намного все лучше работает.
Проблема в том что я даже приблизительно не знаю как на шарпе код писать. Я не смогу эту либу заюзать ( Но за совет лайк, может кто-то найдется кто разовьет тему. Я просто сейчас делаю скрин левой тулзой из консоли. Потом перебираю в цикле на совпадение пикселей. Это сильно затратно по времени.
 

sprint16

Client
Регистрация
11.08.2016
Сообщения
51
Благодарностей
9
Баллы
8
Проблема в том что я даже приблизительно не знаю как на шарпе код писать. Я не смогу эту либу заюзать ( Но за совет лайк, может кто-то найдется кто разовьет тему. Я просто сейчас делаю скрин левой тулзой из консоли. Потом перебираю в цикле на совпадение пикселей. Это сильно затратно по времени.
Это дичь. Напиши помогу
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
ну так переключай раскладку перед тем как отправлять текст
Код:
InputLanguage.CurrentInputLanguage =  InputLanguage.FromCulture(newSystem.Globalization.CultureInfo("ru-RU"));
InputLanguage.CurrentInputLanguage =  InputLanguage.FromCulture(newSystem.Globalization.CultureInfo("en-US"));
И как переключить, у меня выкидывает ошибку, подскажите пожалуйста. Вот скрин:
https://monosnap.com/image/I1aScinlWOBedp72qWlUnd6A1nzdgP.png
 

sprint16

Client
Регистрация
11.08.2016
Сообщения
51
Благодарностей
9
Баллы
8

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
копируй в буфер обмена нужный текст, затем вставляй его предварительно указав куда вставлять.
Не. Мне нужно иногда использовать сочетания клавы для открытия определенного окна в програме. И они срабатывают только на английской раскладке. Но иногда сонный по запарке забываю и запускаю скрипт и ложусь спать. И он всю ночь просто так отрабатывает. Вот для этого и хочу чтобы при запуске менялась раскладка.
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 498
Благодарностей
1 246
Баллы
113
Не. Мне нужно иногда использовать сочетания клавы для открытия определенного окна в програме. И они срабатывают только на английской раскладке. Но иногда сонный по запарке забываю и запускаю скрипт и ложусь спать. И он всю ночь просто так отрабатывает. Вот для этого и хочу чтобы при запуске менялась раскладка.
Добавь using System.Windows.Forms;
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
Добавь using System.Windows.Forms;
Добавил. И вот такую ошибку выдает.
Компиляция кода Ошибка в действии "CS0103" "Имя "newSystem" отсутствует в текущем контексте". [Строка: 0; Cтолбец: 65]
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
Добавил. И вот такую ошибку выдает.
Компиляция кода Ошибка в действии "CS0103" "Имя "newSystem" отсутствует в текущем контексте". [Строка: 0; Cтолбец: 65]
Разобрался newSystem не стоит пробела код должен выглядеть так:
Код:
InputLanguage.CurrentInputLanguage =  InputLanguage.FromCulture(new System.Globalization.CultureInfo("ru-RU"));
InputLanguage.CurrentInputLanguage =  InputLanguage.FromCulture(new System.Globalization.CultureInfo("en-US"));
 

pars

Пользователь
Регистрация
10.12.2016
Сообщения
80
Благодарностей
41
Баллы
18
Понимаю что тема старая - но не скажите как тиким методом грузить картинку ?
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
Понимаю что тема старая - но не скажите как тиким методом грузить картинку ?
Просто иметь бы приблизительное представление о чем ты говоришь. Например скрины, текстовое описание процесса или куда картинка грузится (Название программы), и тд.
Вот список функций: https://autoit-script.ru/autoit3_docs/functions/index.htm
 
  • Спасибо
Реакции: pars

pars

Пользователь
Регистрация
10.12.2016
Сообщения
80
Благодарностей
41
Баллы
18
Просто иметь бы приблизительное представление о чем ты говоришь. Например скрины, текстовое описание процесса или куда картинка грузится (Название программы), и тд.
Вот список функций: https://autoit-script.ru/autoit3_docs/functions/index.htm
Cпасибо с этим уже разобрался ,но остался самый важный вопрос вопрос , как получить текст из десктопного телеграма )
 

pars

Пользователь
Регистрация
10.12.2016
Сообщения
80
Благодарностей
41
Баллы
18
Cпасибо с этим уже разобрался ,но остался самый важный вопрос вопрос , как получить текст из десктопного телеграма )
хахаха - я понял всю магию сраных регеров телеграмма через десктоп .... никто нихрена не клацает по кнопкам и не получает данные из окна
- все тупо по координатам , делают окнов нужном месте и нужного размера а далее тупо клик в координаты .....даже сраный код это просто клик в координаты и кнтл+с )))) а я думал в регере телеги магия какая-то с несусветным секретным кодом ))))
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
а я думал в регере телеги магия какая-то с несусветным секретным кодом ))))
Не пробовали проходить кастинг на участие в шоу битва экстрасенсов. А то я как погляжу вы имеете нормальный такой скил в разгадывании тайн. Может первое место возьмете. Ведь Пахом чувствовал там. Вам с вашей аватаркой сразу первое место дадут. Крлык, курлык.
 

booldozer

Client
Регистрация
13.02.2011
Сообщения
137
Благодарностей
45
Баллы
28
Подскажите, как получить цвет пикселя в Hex?
var color = AutoItX.PixelGetColor(557, 412); //это по каким координатам взять цвет
return color; //на выходе напиши переменную в которую будет цифра цвета
//Черный цвет 0
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)