Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Эмуляция печати текста

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

1. inre25 - 15 Октября, 2019 - 04:19:06 - перейти к сообщению
1.Подскажите как сделать код эмуляции печати текста, через команду key и чтобы текст был достаточно объемным более 2000 символов.

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

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

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

По итогу нужно чтобы: Запустил бота, вставил нужный текст в поле графического интерфейса "EDIT_0" (установим перед запуском паузу секунды три ) нажимаем запуск, щелкаем мышкой на активную область и у нас печатается текст который вставляли. Именно печатается ctr+c и ctr+v не походит.
2. Kibor - 15 Октября, 2019 - 04:21:31 - перейти к сообщению
Засунуть текст в массив char и по одному символу печатать.
3. Zireael - 15 Октября, 2019 - 04:33:09 - перейти к сообщению
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;
}
4. inre25 - 15 Октября, 2019 - 04:50:02 - перейти к сообщению
 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 , помоги доделать
5. Zireael - 15 Октября, 2019 - 05:00:39 - перейти к сообщению
 Цитата:
не перевязываюсь к окну

Так что мешает привязаться к активному окну?
CODE:
win w=getwindow(); // получить указатель
6. inre25 - 15 Октября, 2019 - 05:08:51 - перейти к сообщению
 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;
}


Кстате данный код кроме открытия блокнота ничего не печатает, как его использовать в моем случае так и не пойму
7. Kibor - 15 Октября, 2019 - 05:52:22 - перейти к сообщению
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);
}
8. inre25 - 15 Октября, 2019 - 06:08:11 - перейти к сообщению
 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мл.сек
9. Kibor - 15 Октября, 2019 - 06:17:28 - перейти к сообщению
key(A) убрать
10. inre25 - 15 Октября, 2019 - 06:25:00 - перейти к сообщению
 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:;

Powered by ExBB FM 1.0 Final