Zireael |
Отправлено: 15 Октября, 2019 - 12:33:09
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 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;
} |
|
|
inre25 |
Отправлено: 15 Октября, 2019 - 12:50:02
|
Прохожий
Покинул форум
Сообщений всего: 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) |
|
|
Zireael |
Отправлено: 15 Октября, 2019 - 13:00:39
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: не перевязываюсь к окну
Так что мешает привязаться к активному окну?
CODE:win w=getwindow(); // получить указатель |
|
|
inre25 |
Отправлено: 15 Октября, 2019 - 13:08:51
|
Прохожий
Покинул форум
Сообщений всего: 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;
}
Кстате данный код кроме открытия блокнота ничего не печатает, как его использовать в моем случае так и не пойму |
|
|
inre25 |
Отправлено: 15 Октября, 2019 - 14:08:11
|
Прохожий
Покинул форум
Сообщений всего: 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) |
|
|
inre25 |
Отправлено: 15 Октября, 2019 - 14:25:00
|
Прохожий
Покинул форум
Сообщений всего: 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) |
|
|
|