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

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

11. Kibor - 15 Октября, 2019 - 07:10:30 - перейти к сообщению
Покажу как кодом. Для edita с переносом строки надо создавать другое окно.
В виз редакторе в принципе можно это в блоках кода сделать.

CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
int buttons;
int edit;
char buffer[100000];
createdialog(0);
//////////

showdialog(0, "Диалог", 558, 234, 250, 300, 1, 1);
//////////

loop() sleep(10);//Убрать после теста




function getmessage(0, WM_CREATE)
{
edit=CreateWindow(0, "EDIT", "", 4+128+4096+1048576+2097152+8388608+1342177280, 10, 10, 230, 220, gethwnd(0), 0, 0, 0); // многострочный текст
buttons=CreateWindow(0, "BUTTON", "печать", 1342177280, 10, 240, 210, 20, gethwnd(0), 0, 0, 0);
}




function getmessage(0, WM_COMMAND)
{
if(message.lparam==buttons)
{
if(GetWindowText(edit, address(#buffer[0]), sizearray(buffer))) // получить текст
{
pause(1000);
win w=getwindow();
sendlanguage("00000419", w);
int Sz=size(#buffer[0]);
for (int nt=0; nt<Sz; nt++)
{
key(buffer[nt]);
sleep(50);
}
}
}
}
12. inre25 - 16 Октября, 2019 - 04:54:38 - перейти к сообщению
 Kibor пишет:
Покажу как кодом. Для edita с переносом строки надо создавать другое окно.
В виз редакторе в принципе можно это в блоках кода сделать.

CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
int buttons;
int edit;
char buffer[100000];
createdialog(0);
//////////

showdialog(0, "Диалог", 558, 234, 250, 300, 1, 1);
//////////

loop() sleep(10);//Убрать после теста




function getmessage(0, WM_CREATE)
{
edit=CreateWindow(0, "EDIT", "", 4+128+4096+1048576+2097152+8388608+1342177280, 10, 10, 230, 220, gethwnd(0), 0, 0, 0); // многострочный текст
buttons=CreateWindow(0, "BUTTON", "печать", 1342177280, 10, 240, 210, 20, gethwnd(0), 0, 0, 0);
}




function getmessage(0, WM_COMMAND)
{
if(message.lparam==buttons)
{
if(GetWindowText(edit, address(#buffer[0]), sizearray(buffer))) // получить текст
{
pause(1000);
win w=getwindow();
sendlanguage("00000419", w);
int Sz=size(#buffer[0]);
for (int nt=0; nt<Sz; nt++)
{
key(buffer[nt]);
sleep(50);
}
}
}
}


спасибо работает. Но я не понимаю как из этого доделать свой код. Поскольку нет понимания ряда действий в коде, и команды которых нет в справочнике.
13. Kibor - 16 Октября, 2019 - 05:20:28 - перейти к сообщению
Примерно так


Верхний блок кода содержит код
CODE:
external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll" );
int buttons;
int edit;
char buffer[100000];
createdialog(0);
//////////

showdialog(0, "Äèàëîã", 558, 234, 250, 300, 1, 1);
//////////


Нижний
CODE:
function getmessage(0, WM_CREATE)
{
edit=CreateWindow(0, "EDIT", "", 4+128+4096+1048576+2097152+8388608+1342177280, 10, 10, 230, 220, gethwnd(0), 0, 0, 0); // ìíîãîñòðî÷íûé òåêñò
buttons=CreateWindow(0, "BUTTON", "ïå÷àòü", 1342177280, 10, 240, 210, 20, gethwnd(0), 0, 0, 0);
}




function getmessage(0, WM_COMMAND)
{
if(message.lparam==buttons)
{
if(GetWindowText(edit, address(#buffer[0]), sizearray(buffer))) // ïîëó÷èòü òåêñò
{
pause(1000);
win w=getwindow();
sendlanguage("00000419", w);
int Sz=size(#buffer[0]);
for (int nt=0; nt<Sz; nt++)
{
key(buffer[nt]);
sleep(50);
}
}
}
}

Powered by ExBB FM 1.0 Final