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

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

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

> Описание: Ввод данных во время выполнения скрипта с помощью диалогового окна.
burn
Отправлено: 02 Июня, 2018 - 05:50:02
Post Id



Пользователь
Наблюдатель


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




 Kibor пишет:
burn ,
в этом случае лучше использовать стандартное окно диалоговое.

 Цитата:
external(VOID, "GetOpenFileName", "GetOpenFileNameA", "COMDLG32.DLL"Подмигивание;

char b[512];
b[0]=formatic(0);

char a[77];
for (int n=0; n<77; n++)a[n]=0;

writeaddress(76, address(#a[0]));
writeaddress(0, address(#a[4]));
writeaddress(0, address(#a[8]));
writeaddress(0, address(#a[12]));
writeaddress(0, address(#a[16]));
writeaddress(1634928, address(#a[20]));
writeaddress(1000, address(#a[24]));
writeaddress(address(#b[0]), address(#a[28]));
writeaddress(512, address(#a[32]));
writeaddress(0, address(#a[36]));
writeaddress(6148, address(#a[40]));

GetOpenFileName(address(#a[0]));
messagebox(format(#b[0]));

что то не открывает.
появляется окно с выбором файла, при нажатии на файл отображается его путь в mesagebox, но до открытия файла дело не доходит.
 
 Top
Kibor
Отправлено: 02 Июня, 2018 - 08:35:52
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 burn пишет:
что то не открывает

Естественно.
Используйте путь format(#b[0])
в своем скрипте.
 
 Top
burn
Отправлено: 02 Июня, 2018 - 08:37:55
Post Id



Пользователь
Наблюдатель


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




Если имеется поле ввода данные которого должны быть введены вручную. В моём случае поле для капчи.
Значит в коде что делать в этом поле надо написать, это?
CODE:
key(a);
messagebox (input (a));

(Отредактировано автором: 02 Июня, 2018 - 08:44:17)

 
 Top
Zireael
Отправлено: 02 Июня, 2018 - 10:58:27
Post Id



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


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




Зачем все функции вставлять в messagebox?
CODE:
string s;
s=unput(); // переменная s будет хранить введённый текст.
 
 Top
burn
Отправлено: 02 Июня, 2018 - 17:37:39
Post Id



Пользователь
Наблюдатель


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




 Zireael пишет:
Зачем все функции вставлять в messagebox?
CODE:
string s;
s=unput(); // переменная s будет хранить введённый текст.

видимо я что то делаю не так.
в блоке старт обозначил переменную k в string
CODE:
string k;

написал
CODE:
k=input();
там где нужно вводить текст руками(эта команда вызывает окно для ввода).
Но все что я в нем пишу не перемещается в поле. Пробовал еще обозначить что в это поле нужно делать ввод
CODE:
key (k);
 
 Top
Zireael
Отправлено: 02 Июня, 2018 - 18:41:08
Post Id



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


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




 Цитата:
Но все что я в нем пишу не перемещается в поле.

Просто окно input не успевает свернуться и текст не печатается. Паузу поставьте перед key или активируйте нужное окно, activate(wind).
А лучше вообще использовать sendkey или sendtext.
Примеры на блокноте:
CODE:
start("C:\Windows\System32\Notepad.exe"); // запускаем блокнот
while(window(-1, "Notepad", -1)==0)sleep(100); // ждём когда откроется
win w=window(-1, "Notepad", -1); // указатель
sleep(200);

string k=input(); // запрос на ввод текста
activate(w); // активируем окно
// язык не проверяется, или устанавливайте нужную раскладку, или используйте sendtext
key(k); // печатаем текст

CODE:
start("C:\Windows\System32\Notepad.exe"); // запускаем блокнот
while(window(-1, "Notepad", -1)==0)sleep(100); // ждём когда откроется
win w=window (-1, "Edit", window (-1, "Notepad", -1)); // указатель
sleep(200);

string k=input(); // запрос на ввод текста
sendkey(k, w); // печатаем
// или
sendtext(k, w); // при этом проверяется раскладка
 
 Top
burn
Отправлено: 02 Июня, 2018 - 18:57:47
Post Id



Пользователь
Наблюдатель


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




[quote=Zireael]
 Цитата:
]

Я так же подумал и выставил вначале паузу - безрезультатно. После попробовал активировать окно, но что то пошло не так))
В итоге сделал активацию окна кликом мыши в нужное поле. Но проблема как я понимаю не в паузе.
Ну хотя бы скрипт выдаёт окно с вводом когда нужно ввести вручную(некий сигнал) Радость
Попробую ваш вариант

(Отредактировано автором: 02 Июня, 2018 - 19:03:49)

 
 Top
Zireael
Отправлено: 02 Июня, 2018 - 19:00:42
Post Id



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


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




Естественно что курсор должен находится в нужном поле. Вообще лучше использовать sendtext, только указатель должен быть не на окно, а не поле.
 
 Top
burn
Отправлено: 02 Июня, 2018 - 21:59:07
Post Id



Пользователь
Наблюдатель


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




 Zireael пишет:
Естественно что курсор должен находится в нужном поле. Вообще лучше использовать sendtext, только указатель должен быть не на окно, а не поле.

второй вариант не подошел, использовал ваш первый вариант:
CODE:
start("путь"); // запускаем блокнот
//while(window(-1, "Notepad", -1)==0)sleep(100); // убрал
win w=window(имя из шпиона); // указатель
sleep(200);

string k=input(); // запрос на ввод текста
pause 1000; //какую бы не ставил активация окна срабатывает быстрее чем появляется окно для ввода
activate(w); // активируем окно
// язык не проверяется, или устанавливайте нужную раскладку, или используйте sendtext
findimage_();//ищет картинку и кликает нужное поле
key(k); // печатает текст
 
 Top
Zireael
Отправлено: 02 Июня, 2018 - 22:31:08
Post Id



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


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




 Цитата:
pause 1000;

Параметры указываются в скобках.
CODE:
pause (1000);

CODE:
start("путь"); // запускаем блокнот
//while(window(-1, "Notepad", -1)==0)sleep(100); // убрал
win w=window(имя из шпиона); // указатель

Убрать ожидание запуска окна... т. е. приложение ещё не открылось, а получаете указатель. Не удивительно что вариант с sendkey не подошёл, окно просто не найдено, не куда посылать нажатия.
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by