Kibor |
Отправлено: 15 Октября, 2019 - 15:10:30
|
Эксперт
Просматривает форум
Сообщений всего: 8222
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Покажу как кодом. Для 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);
}
}
}
} |
|
|
inre25 |
Отправлено: 16 Октября, 2019 - 12:54:38
|
Прохожий
Покинул форум
Сообщений всего: 23
Дата рег-ции: Май 2019
Репутация: 0
|
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);
}
}
}
}
спасибо работает. Но я не понимаю как из этого доделать свой код. Поскольку нет понимания ряда действий в коде, и команды которых нет в справочнике. |
|
|
Kibor |
Отправлено: 16 Октября, 2019 - 13:20:28
|
Эксперт
Просматривает форум
Сообщений всего: 8222
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Примерно так
Верхний блок кода содержит код
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);
}
}
}
} |
|
|
|