Dantes3000 |
Отправлено: 14 Января, 2017 - 19:13:42
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
Nightshade2 пишет: Ты бы почитал мою тему про отправку сочетаний клавиш до конца.
Там есть отправка строки
Для меня это филькина грамота)
Spoiler (Отобразить)
win w=window ("Warspear Online", "Warspear", -1);
string str1=input();
sendtext2(string str1, win w_KIB);
function sendtext2(string str1, win w_KIB)
{
int len=size(str1);
char arr[1023];
char rus[63];
string alfa;
strcpy(#arr[0], str1);
int i=0;
int i2=0;
int n=0;
alfa="F<DULT;PBQRKVYJGHCNEA{WXIO}SM >Z";
strcpy(#rus[0], alfa);
rus[1]=188;
rus[6]=186;
rus[21]=219;
rus[26]=221;
rus[29]=222;
rus[30]=190;
char state[256];
external(INT, "SetKeyboardState", "SetKeyboardState", "User32.dll" ;
external(INT, "GetKeyboardState", "GetKeyboardState", "User32.dll" ;
for(i=0;i<len;i++)
{
i2=formatci(arr[i]);
//БОЛЬШАЯ
if (i2>=65)
{
if (i2<=90)
{
sendlanguage("00000409", w);
sleep(100);
attach(w,1);
for (n=0; n<256; n++)state[n]=0;
GetKeyboardState(address(#state[0]);
state[16]=128;
postmessage(WM_KEYDOWN, 16, 1, w);
SetKeyboardState(address(#state[0]);
postmessage(WM_KEYDOWN, i2, 1, w);
sleep(100);
postmessage(WM_KEYUP, i2, 3221225472, w);
postmessage(WM_KEYUP, 16, 3221225472, w);
state[16]=0;
SetKeyboardState(address(#state[0]);
attach(w,0);
}
}
//маленькая
if (i2>=97)
{
if(i2<=122)
{i2=i2-32;
sendlanguage("00000409", w);
sleep(100);
postmessage(WM_KEYDOWN, i2, 1, w);
sleep(100);
postmessage(WM_KEYUP, i2, 3221225472, w);
}
}
//БОЛЬШАЯ РУС
if (i2>=192)
{
if (i2<=223)
{
sendlanguage("00000419", w);
sleep(100);
i2=i2-192;
i2=formatci(rus[i2]);
attach(w,1);
for (n=0; n<256; n++)state[n]=0;
GetKeyboardState(address(#state[0]);
state[16]=128;
postmessage(WM_KEYDOWN, 16, 1, w);
SetKeyboardState(address(#state[0]);
postmessage(WM_KEYDOWN, i2, 1, w);
sleep(100);
postmessage(WM_KEYUP, i2, 3221225472, w);
postmessage(WM_KEYUP, 16, 3221225472, w);
state[16]=0;
SetKeyboardState(address(#state[0]);
attach(w,0);
}
}
//маленькая рус
if (i2>=224)
{
if (i2<=255)
{
i2=i2-224;
i2=formatci(rus[i2]);
sendlanguage("00000419", w);
sleep(100);
postmessage(WM_KEYDOWN, i2, 1, w);
sleep(100);
postmessage(WM_KEYUP, i2, 3221225472, w);
}
}
}
}
не пашет...(Отредактировано автором: 14 Января, 2017 - 19:17:55) |
|
|
Kibor |
Отправлено: 14 Января, 2017 - 20:31:13
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
CODE:string text="helloy 55";
int state[256];
for (int n=0; n<256; n++)state[n]=0;
state[16]=128;
external(INT, "SetKeyboardState", "SetKeyboardState", "User32.dll");
win w=window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));
attach(w,1);
send(text);
function send(string t)
{
char c[999];
strcpy(#c[0], t);
int siz=size(#c[0]);
int d;
for (int n=0; n<siz; n++)
{
SetKeyboardState(address(#state[0]);
d=formatci(c[n]);
if (d>96 && d<123)d=d-32;
postmessage(WM_KEYDOWN, d, 1, w);
sleep(100);
postmessage(WM_KEYUP, d, 3221225472, w);
}
}
только по английски пишет |
|
|
Dantes3000 |
Отправлено: 19 Июля, 2018 - 16:33:29
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
Kibor пишет: SetKeyboardState(address(#state[0]);
не понимаю, почему тут нет ошибки?
(Добавление)
до недавних пор этот код работал, а теперь выбивает ошибку
спойлер (Отобразить)CODE:function написать(string str1, win w)
{
int len=size(str1);
char arr[1023];
char rus[63];
string alfa;
strcpy(#arr[0], str1);
int i=0;
int i2=0;
int n=0;
char state[256];
external(INT, "SetKeyboardState", "SetKeyboardState", "User32.dll");
external(INT, "GetKeyboardState", "GetKeyboardState", "User32.dll");
for(i=0;i<len;i++)
{
i2=formatci(arr[i]);
if(i2==46) {attach(w,1);sleep(200); postmessage(WM_KEYDOWN, 190, 1, w);sleep(200); postmessage(WM_KEYUP, 190, 3221225472, w); sleep(250);attach(w,0);}
if(i2==64)
{attach(w,1);
sendkeydown(16,w_KIB); sleep(250);
postmessage(WM_KEYDOWN, 50, 1, w);sleep(200); postmessage(WM_KEYUP, 50, 3221225472, w);
sendkeyup(16,w_KIB); sleep(250);
attach(w,0);
}
if (i2>=97)
{
if(i2<=122)
{i2=i2-32;
sendlanguage("00000409", w);
sleep(150);
postmessage(WM_KEYDOWN, i2, 1, w);
sleep(150);
postmessage(WM_KEYUP, i2, 3221225472, w);
}
}
//БОЛЬШАЯ РУС
if (i2>=192)
{
if (i2<=223)
{
sendlanguage("00000419", w);
sleep(100);
i2=i2-192;
i2=formatci(rus[i2]);
attach(w,1);
for (n=0; n<256; n++)state[n]=0;
GetKeyboardState(address(#state[0]);
state[16]=128;
postmessage(WM_KEYDOWN, 16, 1, w);
SetKeyboardState(address(#state[0]);
postmessage(WM_KEYDOWN, i2, 1, w);
sleep(100);
postmessage(WM_KEYUP, i2, 3221225472, w);
postmessage(WM_KEYUP, 16, 3221225472, w);
state[16]=0;
SetKeyboardState(address(#state[0]);
attach(w,0);
}
}
//маленькая рус
if (i2>=224)
{
if (i2<=255)
{
i2=i2-224;
i2=formatci(rus[i2]);
sendlanguage("00000419", w);
sleep(150);
postmessage(WM_KEYDOWN, i2, 1, w);
sleep(150);
postmessage(WM_KEYUP, i2, 3221225472, w);
}
}
}
} |
|
|
Kibor |
Отправлено: 19 Июля, 2018 - 18:57:45
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Dantes3000 пишет: до недавних пор этот код работал, а теперь выбивает ошибку
До недавних пор такие синтаксические ошибки не всегда кибор видел.
CODE:GetKeyboardState(address(#state[0]);
Закрывающая ) где? |
|
|
Dantes3000 |
Отправлено: 19 Июля, 2018 - 19:05:58
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
Вот и я хочу спросить - где закрывающая скобка?
а главное - почему с этой ошибкой всё равно работало.
Kibor пишет: string text="helloy 55";
int state[256];
for (int n=0; n<256; n++)state[n]=0;
state[16]=128;
external(INT, "SetKeyboardState", "SetKeyboardState", "User32.dll" ) ;
win w=window (-1, "Edit", window ("Безымянный — Блокнот", "Notepad", -1));
attach(w,1);
send(text);
function send(string t)
{
char c[999];
strcpy(#c[0], t);
int siz=size(#c[0]);
int d;
for (int n=0; n<siz; n++)
{
SetKeyboardState(address(#state[0]);
d=formatci(c[n]);
if (d>96 && d<123)d=d-32;
postmessage(WM_KEYDOWN, d, 1, w);
sleep(100);
postmessage(WM_KEYUP, d, 3221225472, w);
}
}
только по английски пишет |
|
|
|