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

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

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

> Описание: Эмуляция печати текста более 128 символов
inre25
Отправлено: 15 Октября, 2019 - 12:19:06
Post Id



Пользователь
Прохожий


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




1.Подскажите как сделать код эмуляции печати текста, через команду key и чтобы текст был достаточно объемным более 2000 символов.

Пример: Присвоим текст A=getcontrol(EDIT_0); и вставка его командой key(A)

Более 128 символов программа просто не печатает, хотя вставляешь в созданном графическим интерфейсе больший объем текста.

2. Как правильно при таком коде будет выглядеть команда смена раскладки на русскую в активной области, хотя сам код идет без привязке к окну.

По итогу нужно чтобы: Запустил бота, вставил нужный текст в поле графического интерфейса "EDIT_0" (установим перед запуском паузу секунды три ) нажимаем запуск, щелкаем мышкой на активную область и у нас печатается текст который вставляли. Именно печатается ctr+c и ctr+v не походит.
 
 Top
Kibor
Отправлено: 15 Октября, 2019 - 12:21:31
Post Id



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


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




Засунуть текст в массив char и по одному символу печатать.
 
 Top
Zireael
Отправлено: 15 Октября, 2019 - 12:33:09
Post Id



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


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




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

// функция принимает: текст, окно, пауза между отправкой символов
send("GjvSF9fd@jg Привет", w, 100); // написать текст в блокноте


function send(string s, win w, int wait);
{
new char c[size(s)+1];
strcpy(#c[0], s);
int size_arr=sizearray(c);
for(int i=0; i<size_arr; i++)
{
int i2=formatci(c[i]);
if(i2>191) sendlanguage("00000419", w);
else sendlanguage("00000409", w);
postmessage(WM_CHAR, i2, 1, w); sleep(wait);
}
delete c;
}
 
 Top
inre25
Отправлено: 15 Октября, 2019 - 12:50:02
Post Id



Пользователь
Прохожий


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




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

// функция принимает: текст, окно, пауза между отправкой символов
send("GjvSF9fd@jg Привет", w, 100); // написать текст в блокноте


function send(string s, win w, int wait);
{
new char c[size(s)+1];
strcpy(#c[0], s);
int size_arr=sizearray(c);
for(int i=0; i<size_arr; i++)
{
int i2=formatci(c[i]);
if(i2>191) sendlanguage("00000419", w);
else sendlanguage("00000409", w);
postmessage(WM_CHAR, i2, 1, w); sleep(wait);
}
delete c;
}


это не работает когда я конкретно не перевязываюсь к окну.
Вот мой код:

string A;
A=getcontrol(EDIT_0);
pause(2000);
key(A)
goto m_KIB3;
m_KIB4: CREATE_INTERFACE
{
DIALOG "Название окна" 300 300 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 10 240 270 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
EDIT_0 "Текст по умолчанию" 10 10 270 220 //ПозицияX ПозицияY РазмерX РазмерY

}
goto exit_KIB;
m_KIB3:

exit_KIB:;

покажите пожалуйста на нем мне блокнот ненужен я же писал "смена раскладки на русскую в активной области, хотя сам код идет без привязке к окну." Я в визуальном редакторе делаю.
(Добавление)
Zireael , помоги доделать

(Отредактировано автором: 15 Октября, 2019 - 12:51:08)

 
 Top
Zireael
Отправлено: 15 Октября, 2019 - 13:00:39
Post Id



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


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




 Цитата:
не перевязываюсь к окну

Так что мешает привязаться к активному окну?
CODE:
win w=getwindow(); // получить указатель
 
 Top
inre25
Отправлено: 15 Октября, 2019 - 13:08:51
Post Id



Пользователь
Прохожий


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




 Zireael пишет:
 Цитата:
не перевязываюсь к окну

Так что мешает привязаться к активному окну?
CODE:
win w=getwindow(); // получить указатель


ок. работает
вставил в блок кода
pause(2000);
win w=getwindow();
sendlanguage("00000419", w);
A=getcontrol(EDIT_0);

только я не понимаю как дальше быть... с кодом который ты написал(куда это все вставлять).

у меня потом стоит блок кода key(A)
(Добавление)
 Zireael пишет:
CODE:
start("C:\Windows\Notepad.exe"); // открыть блокнот
while(window (-1, "Notepad", -1)==0)sleep(100); // ждать когда он откроется
win w=window (-1, "Edit", window (-1, "Notepad", -1)); // получить указатель

// функция принимает: текст, окно, пауза между отправкой символов
send("GjvSF9fd@jg Привет", w, 100); // написать текст в блокноте


function send(string s, win w, int wait);
{
new char c[size(s)+1];
strcpy(#c[0], s);
int size_arr=sizearray(c);
for(int i=0; i<size_arr; i++)
{
int i2=formatci(c[i]);
if(i2>191) sendlanguage("00000419", w);
else sendlanguage("00000409", w);
postmessage(WM_CHAR, i2, 1, w); sleep(wait);
}
delete c;
}


Кстате данный код кроме открытия блокнота ничего не печатает, как его использовать в моем случае так и не пойму
 
 Top
Kibor
Отправлено: 15 Октября, 2019 - 13:52:22
Post Id



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


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




CODE:
pause(2000);
win w=getwindow();
sendlanguage("00000419", w);
A=getcontrol(EDIT_0);
char TT[100000];
strcpy(#TT[0], A);
int Sz=size(#TT[0]);
for (int nt=0; nt<Sz; nt++)
{
key(TT[nt]);
sleep(50);
}
 
 Top
inre25
Отправлено: 15 Октября, 2019 - 14:08:11
Post Id



Пользователь
Прохожий


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




 Kibor пишет:
CODE:
pause(2000);
win w=getwindow();
sendlanguage("00000419", w);
A=getcontrol(EDIT_0);
char TT[100000];
strcpy(#TT[0], A);
int Sz=size(#TT[0]);
for (int nt=0; nt<Sz; nt++)
{
key(TT[nt]);
sleep(50);
}



string A;
pause(2000);
win w=getwindow();
sendlanguage("00000419", w);
A=getcontrol(EDIT_0);

key(A)
goto m_KIB3;
m_KIB4: CREATE_INTERFACE
{
DIALOG "Название окна" 300 300 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 10 240 270 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
EDIT_0 "Текст по умолчанию" 10 10 270 220 //ПозицияX ПозицияY РазмерX РазмерY

}
char TT[100000];
strcpy(#TT[0], A);
int Sz=size(#TT[0]);
for (int nt=0; nt<Sz; nt++)
{
key(TT[nt]);
sleep(50);
}
goto exit_KIB;
m_KIB3:
exit_KIB:;

текст пишет только 255 знаков , но с начало быстро, а потом его же дублирует уже через char c указанной задержкой 50мл.сек

(Отредактировано автором: 15 Октября, 2019 - 14:21:58)

 
 Top
Kibor
Отправлено: 15 Октября, 2019 - 14:17:28
Post Id



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


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




key(A) убрать
 
 Top
inre25
Отправлено: 15 Октября, 2019 - 14:25:00
Post Id



Пользователь
Прохожий


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




 Kibor пишет:
key(A) убрать
.
Спасибо убрал.

Текст пишет максимум 255 знаков

получается что то что у меня было в начале только код стал больше и раскладку меняет.
это с чем пришел:
string A;
A=getcontrol(EDIT_0);
pause(2000);
key(A)
goto m_KIB2;
m_KIB4: CREATE_INTERFACE
{
DIALOG "Название окна" 300 300 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 10 240 270 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
EDIT_0 "Текст по умолчанию" 10 10 270 220 //ПозицияX ПозицияY РазмерX РазмерY
}
goto exit_KIB;
m_KIB2:
exit_KIB:;

(Отредактировано автором: 15 Октября, 2019 - 14:28:41)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by