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

Страниц (16): В начало « ... 8 9 10 11 12 13 14 [15] 16 »
 

141. Paskuda - 20 Марта, 2021 - 02:17:41 - перейти к сообщению
 Kibor пишет:
Выполнить этот код скопировав в буфер сначала текст приведенный. И четко описать что получается.
Ничего не происходит, скрипт просто выполняется без ошибок.

 Zireael пишет:
Может не срабатывает Ctrl+C и readclipboard вообще не причём. Это же легко проверить.
Ваш скрипт работает. А вот мой скрипт для проверки Ctrl+C и 2 результата отладки, с messagebox() и без, посмотрите пожалуйста то что выделено жирным.

CODE:

int x=30;
win win_game=window ("MGCloud", "PlaykeyContainerClass", -1);
string old_name="";

activate(win_game);pause(1000);
sendlanguage("00000419",win_game);

for(int i=0; i<2; i++)
{
mousemove(x, 305);pause(500);
keydown(SHIFT);pause(500)
mouse(LEFT);pause(500);
keyup(SHIFT);pause(500);

mousemove(1025, 250);pause(500);
mousedbl(LEFT);pause(500);
keydown(CONTROL);pause(500);
key(67);pause(500);
keyup(CONTROL);pause(500);
key(ESCAPE);pause(500);

string new_name="";
int r;

r=readclipboard(new_name);
if(r==-1)messagebox("ошибка r");

messagebox("Бла бла"); //Эту часть убираем во 2 варианте
pause(2000); //
activate(win_game);pause(1000); //

if(new_name==old_name)messagebox("ошибка переменной");
else{old_name=new_name;x=x+40;}
}


int x = 30
win win_game = window ( " MGCloud " , " PlaykeyContainerClass " , - 1 )
string old_name = " "
activate ( win_game )
pause ( 1000 )
sendlanguage ( " 00000419 " , win_game )
for ( int i = 0 ; i'-842150451' < 2 ; i'-842150451' ++ )
mousemove ( x'30' , 305 )
pause ( 500 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
string new_name = " "
r = readclipboard ( new_name'' )
if ( r'1' == - 1 )
messagebox ( " Бла бла " )
pause ( 2000 )
activate ( win_game )
pause ( 1000 )
if ( new_name'Имя 1' == old_name'' )
old_name = new_name'Имя 1'
x = x'30' + 40
mousemove ( x'70' , 305 )
pause ( 500 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
string new_name = " "
r = readclipboard ( new_name'' )
if ( r'1' == - 1 )
messagebox ( " Бла бла " )
pause ( 2000 )
activate ( win_game )
pause ( 1000 )
if ( new_name'Имя 2' == old_name'Имя 1' )
old_name = new_name'Имя 2'
x = x'70' + 40



int x = 30
win win_game = window ( " MGCloud " , " PlaykeyContainerClass " , - 1 )
string old_name = " "
activate ( win_game )
pause ( 1000 )
sendlanguage ( " 00000419 " , win_game )
for ( int i = 0 ; i'-842150451' < 2 ; i'-842150451' ++ )
mousemove ( x'30' , 305 )
pause ( 500 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
string new_name = " "
r = readclipboard ( new_name'' )
if ( r'1' == - 1 )
if ( new_name'Имя 1' == old_name'' )
old_name = new_name'Имя 1'
x = x'30' + 40
mousemove ( x'70' , 305 )
pause ( 500 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
string new_name = " "
r = readclipboard ( new_name'' )
if ( r'1' == - 1 )
if ( new_name'Имя 1' == old_name'Имя 1' )
messagebox ( " ошибка переменной " )
142. Zireael - 20 Марта, 2021 - 03:08:27 - перейти к сообщению
Надо искать причину почему не срабатывает Ctrl+C.
Если в блокноте этот код работает, значит проблема в приложении.
143. Kibor - 20 Марта, 2021 - 03:22:49 - перейти к сообщению
Изначально был вопрос
 Paskuda пишет:
2) Не записывается текст из буфера обмена в переменную, решил посмотреть что же там происходит и о чудо все записалось, убрал мессаджи опять перестало работать

который протестировали.

Если этот код в цикле нормально работает
CODE:
string name;
int r;
loop()
{
writeclipboard("то что в буфере");
r=readclipboard(name);
if(r==-1)messagebox("ошибка r");
if(name!="то что в буфере")messagebox("ошибка переменной");
writeclipboard("другое");
r=readclipboard(name);
if(r==-1)messagebox("ошибка r");
if(name!="другое")messagebox("ошибка переменной");
}


то с readclipboard writeclipboard все ок.
Если не срабатывают в игре комбинации, то проблема в чем то другом.
144. Paskuda - 20 Марта, 2021 - 03:41:42 - перейти к сообщению
 Zireael пишет:
Надо искать причину почему не срабатывает Ctrl+C.
Если в блокноте этот код работает, значит проблема в приложении.


 Kibor пишет:
то с readclipboard writeclipboard все ок.
Если не срабатывают в игре комбинации, то проблема в чем то другом.


Меня больше интересует почему он начинает срабатывать если вызвать messagebox(), сначала думал что не срабатывает keyup ( CONTROL ), а messagebox() дезактивируя окно ее принудительно отжимает, но readclipboard () стоит между keyup ( CONTROL ) и messagebox () так что к тому моменту текст из буфера уже должен быть записан. Потом думал что дело в задержке поставил вместо messagebox() pause(5000), но это не помогло.
145. Zireael - 20 Марта, 2021 - 04:00:54 - перейти к сообщению
readclipboard тут явно не причём. Текст вообще копируется в буфер? Если скрипт выполнит Ctrl+C несколько раз, то скопированный текст будет в буфере? Вставить его куда-то можно? Скорее всего нет, ищите причину почему не срабатывает Ctrl+C в этом приложении.
146. Paskuda - 20 Марта, 2021 - 04:23:09 - перейти к сообщению
 Zireael пишет:
readclipboard тут явно не причём. Текст вообще копируется в буфер? Если скрипт выполнит Ctrl+C несколько раз, то скопированный текст будет в буфере? Вставить его куда-то можно? Скорее всего нет, ищите причину почему не срабатывает Ctrl+C в этом приложении.
Вот пожалуйста, дописал в свой скрипт, копирует из чата и тут же вставляет обратно в чат то-же самое, но в переменную записывается только 1 раз, а во 2 цикле ее значение уже не меняется:

CODE:

int x=30;
win win_game=window ("MGCloud", "PlaykeyContainerClass", -1);
string
old_name="";

activate(win_game);pause(1000);
sendlanguage("00000419",win_game);

for(int i=0; i<2; i++)
{
mousemove(x, 305);pause(1000);
keydown(SHIFT);pause(500)
mouse(LEFT, x, 305);pause(500);
keyup(SHIFT);pause(500);

mousemove(1025, 250);pause(500);
mousedbl(LEFT);pause(500);
keydown(CONTROL);pause(500);
key(67);pause(500);
keyup(CONTROL);pause(500);

keydown(CONTROL);pause(500);
key(86);pause(500); //Вставляем
keyup(CONTROL);pause(500);
key(ESCAPE);pause(500);

string new_name="";
int r;

r=readclipboard(new_name);
if(r==-1)messagebox("ошибка r");

//messagebox("Бла бла");
//pause(2000);
//activate(win_game);pause(1000);

if(new_name==old_name)messagebox("ошибка переменной");
else{old_name=new_name;x=x+40;}
}


int x = 30
win win_game = window ( " MGCloud " , " PlaykeyContainerClass " , - 1 )
string old_name = " "
activate ( win_game )
pause ( 1000 )
sendlanguage ( " 00000419 " , win_game )
for ( int i = 0 ; i'-842150451' < 2 ; i'-842150451' ++ )
mousemove ( x'30' , 305 )
pause ( 1000 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT , x'30' , 305 )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 86 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
string new_name = " "
r = readclipboard ( new_name'' )
if ( r'1' == - 1 )
if ( new_name'Имя 1' == old_name'' )
old_name = new_name'Имя 1'
x = x'30' + 40
mousemove ( x'70' , 305 )
pause ( 1000 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT , x'70' , 305 )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 86 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
string new_name = " "
r = readclipboard ( new_name'' )
if ( r'1' == - 1 )
if ( new_name'Имя 1' == old_name'Имя 1' )
messagebox ( " ошибка переменной " )

т.е. комбинации срабатывают, не работает именно readclipboard().
147. Kibor - 20 Марта, 2021 - 04:27:03 - перейти к сообщению
В блокноте это проверьте.
148. Paskuda - 20 Марта, 2021 - 05:00:06 - перейти к сообщению
 Kibor пишет:
В блокноте это проверьте.

В блокноте работает, но я ж не в блокнот играю

Вместо переменной сделал массив имен, чтобы каждый раз записывалось в новую ячейку, но как видим readclipboard() всегда записывает то что было скопировано первый раз:

CODE:

int x=30;
win win_game=window ("MGCloud", "PlaykeyContainerClass", -1);
string
name[2];

activate(win_game);pause(1000);
sendlanguage("00000419",win_game);

for(int i=0; i<2; i++)
{
mousemove(x, 305);pause(1000);
keydown(SHIFT);pause(500)
mouse(LEFT, x, 305);pause(500);
keyup(SHIFT);pause(500);

mousemove(1025, 250);pause(500);
mousedbl(LEFT);pause(500);
keydown(CONTROL);pause(500);
key(67);pause(500);
keyup(CONTROL);pause(500);
mouse(LEFT);pause(500);

keydown(CONTROL);pause(500);
key(86);pause(500); //Вставляем
keyup(CONTROL);pause(500);
key(ESCAPE);pause(500);

int r;
r=readclipboard(name[i]);
if(r==-1)messagebox("ошибка r");

if(name[1]==name[0])messagebox("ошибка переменной");

x=x+40;
}

messagebox(name[0]);
messagebox(name[1]);


int x = 30
win win_game = window ( " MGCloud " , " PlaykeyContainerClass " , - 1 )
activate ( win_game )
pause ( 1000 )
sendlanguage ( " 00000419 " , win_game )
for ( int i = 0 ; i'-842150451' < 2 ; i'-842150451' ++ )
mousemove ( x'30' , 305 )
pause ( 1000 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT , x'30' , 305 )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
mouse ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 86 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
r = readclipboard ( name'' [ i'0' ] )
if ( r'1' == - 1 )
if ( name'' [ 1 ] == name'Имя_1' [ 0 ] )
x = x'30' + 40
mousemove ( x'70' , 305 )
pause ( 1000 )
keydown ( SHIFT )
pause ( 500 ) mouse ( LEFT , x'70' , 305 )
pause ( 500 )
keyup ( SHIFT )
pause ( 500 )
mousemove ( 1025 , 250 )
pause ( 500 )
mousedbl ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 67 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
mouse ( LEFT )
pause ( 500 )
keydown ( CONTROL )
pause ( 500 )
key ( 86 )
pause ( 500 )
keyup ( CONTROL )
pause ( 500 )
key ( ESCAPE )
pause ( 500 )
r = readclipboard ( name'' [ i'1' ] )
if ( r'1' == - 1 )
if ( name'Имя_1' [ 1 ] == name'Имя_1' [ 0 ] )
messagebox ( " ошибка переменной " )
x = x'70' + 40
messagebox ( name'Имя_1' [ 0 ] )
messagebox ( name'Имя_1' [ 1 ] )
149. Kibor - 20 Марта, 2021 - 05:15:23 - перейти к сообщению
Если в блокноте работает, то вопрос надо по другому ставить..
Почему в игре не работает, а не почему на работает readclipboard и тд.
А этого никто не знает.
150. Paskuda - 20 Марта, 2021 - 06:32:24 - перейти к сообщению
 Kibor пишет:
Почему в игре не работает, а не почему на работает readclipboard и тд.
А этого никто не знает.

Заменил messagebox() перед каждым циклом на комбинацию:
enabledeactive();
disabledeactive();
activate();

Переактивирую окно игры, в этом случае readclipboard работает, может это наведет Вас на какие то мысли, пока так оставил но это ппц коряво и тратит кучу времени.

Powered by ExBB FM 1.0 Final