Padahaus |
Отправлено: 09 Января, 2017 - 01:38:10
|
Прохожий
Покинул форум
Сообщений всего: 2
Дата рег-ции: Янв. 2017
Репутация: 0
|
Почему в не могу отправить текст в перекрытое окно Варспир? Аэро включено. Нормально отправляет цифры. Отдельные символы - нет.
Спойлер (Отобразить)
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
start_();
pause(1000);
key("asd", 1, 1, w_KIB);
sendkey("qwe", 0, w_KIB);
sendtext("qwerty", w_KIB);
function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}
Ничего из этого не отправляет. |
|
|
Kibor |
Отправлено: 11 Января, 2017 - 20:05:58
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
В теме Отправка сочетаний клавиш в окно Nightshade2 выложил код. Только что его проверил на варспе. Чудесно печатает в чат в фоновом режиме warspear букву Я. Все работает.
CODE:win w=window ("Warspear Online", "Warspear", -1);
char state[256];
for (int n=0; n<256; n++)state[n]=0;
state[16]=128;
external(INT, "SetKeyboardState", "SetKeyboardState", "User32.dll");
attach(w,1);
postmessage(WM_KEYDOWN, 16, 0, w);
SetKeyboardState(address(#state[0]);
postmessage(WM_KEYDOWN, 90, 1, w);
sleep(100);
postmessage(WM_KEYUP, 90, 3221225472, w);
postmessage(WM_KEYUP, 16, 3221225472, w);
attach(w,0); |
|
|
Dantes3000 |
Отправлено: 14 Января, 2017 - 17:42:36
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
Я по образованию не программист, учусь сам, поэтому не судите строго.
Спойлер (Отобразить)
CODE:
string s;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
start_();
s=input (Ввод сообщения);
ввод(string s);
function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}
function ввод(string s)
{
char a[256];
strcpy(#a[0], s);
int size_char=size(#a[0]);
int h=0;
i:if (h<size_char)
{
h++;
goto i;
}
char state[256];
for (int n=0; n<256; n++)state[n]=0;
state[16]=128;
int k=0;
external(INT, "SetKeyboardState", "SetKeyboardState", "User32.dll");
attach(w_KIB,1);
if (k<h) //тут надо < или >?
{
postmessage(WM_KEYDOWN, #a[k], 0, w_KIB);
SetKeyboardState(address(#state[0]);
postmessage(WM_KEYDOWN, #a[n], 1, w_KIB);
sleep(100);
postmessage(WM_KEYUP, #a[k], 3221225472, w_KIB);
postmessage(WM_KEYUP, #a[k], 3221225472, w_KIB);
k++;
}
attach(w_KIB,0);
return(); //надо выйти с возвратом, не знаю как, не посмотрел еще второе видео по Hay Day
}
(Добавление)
input ("Ввод сообщения"
так надо было..Но всё равно не работает(Отредактировано автором: 14 Января, 2017 - 17:53:44) |
|
|
Kibor |
Отправлено: 14 Января, 2017 - 17:57:08
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
что то типа
CODE:char a[256];
strcpy(#a[0], s);
int size_char=size(#a[0]);
attach(w,1);
for (h=0; h<size_char; h++)
{
for (int n=0; n<256; n++)state[n]=0;
state[16]=128;
SetKeyboardState(address(#state[0]);
postmessage(WM_KEYDOWN, formatci(a)-32, 1, w);
sleep(100);
postmessage(WM_KEYUP, formatci(a)-32, 3221225472, w);
}
attach(w,0); |
|
|
Dantes3000 |
Отправлено: 14 Января, 2017 - 17:57:42
|
Эксперт
Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016
Репутация: 58
|
У меня хоть что-то правильно было?
Пишет ошибку h<0goto23
Спойлер (Отобразить)
string s="текст";
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
start_();
ввод();
function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}
function ввод()
{
char a[256];
strcpy(#a[0], s);
int size_char=size(#a[0]);
attach(w_KIB,1);
for (h=0; h<size_char; h++)
{
for (int n=0; n<256; n++)state[n]=0;
state[16]=128;
SetKeyboardState(address(#state[0]);
postmessage(WM_KEYDOWN, formatci(a)-32, 1, w_KIB);
sleep(100);
postmessage(WM_KEYUP, formatci(a)-32, 3221225472, w_KIB);
}
attach(w_KIB,0);
}
(Добавление)
.(Отредактировано автором: 14 Января, 2017 - 18:07:03) |
|
|
|