Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (3): « 1 [2] 3 »   

> Без описания
Nightshade2
Отправлено: 16 Декабря, 2016 - 10:15:58
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2016  
Репутация: 1




Спасибо за помощь ::cool24.gif::
Для информации...
Вот такой код отсылает большую букву Я(или Z) в фоновое окно. ::biggrin24.gif::
А значит в фоновые окна можно слать текст учитывая регистр и раскладку.
Было бы неплохо добавить в Кибор по аналогии с key("asd",0,1,w);
CODE:

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);

И в таком варианте в других программах не нажимается SHIFT.

(Отредактировано автором: 16 Декабря, 2016 - 10:32:42)

 
 Top
Kibor
Отправлено: 16 Декабря, 2016 - 10:29:02
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Хм. Спасибо. Будет возможно расширить функционал.
 
 Top
Dantes3000
Отправлено: 16 Декабря, 2016 - 11:30:46
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




В варспир вон не хочет отправлять текст. Вот и появилась возможность исправить это.
 
 Top
Nightshade2
Отправлено: 16 Декабря, 2016 - 11:51:05
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2016  
Репутация: 1




Не факт, что это поможет. У меня в игре в неактивном окне можно нажимать мышь, писать текст в текстовые поля. А вот нажать клавишу "открыть окно пати" или любую другую клавишу действий НЕЛЬЗЯ. А в активном окне напрочь отказывается воспринимать wm_keydown. Зато сообщения wm_syskeydown игра съедает с радостью. В чем фишка мне непонятно.
 
 Top
Nightshade2
Отправлено: 16 Декабря, 2016 - 14:07:11
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2016  
Репутация: 1




функция отправки англ текста в нужном РеГиСтРе
CODE:

function sendtext2(string str1, win w)
{

int len=size(str1);
char arr[1023];
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]);
//messagebox(format(i2));
//БОЛЬШАЯ
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);
//external(INT, "MapVirtualKey", "MapVirtualKeyA", "User32.dll");
//i2=i2-127;
//i2=MapVirtualKey(address(#i2),0);
//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

(Отредактировано автором: 16 Декабря, 2016 - 14:15:26)

 
 Top
Kibor
Отправлено: 16 Декабря, 2016 - 14:18:03
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Код потом посмотрю. интересно..
 Nightshade2 пишет:
Кстати && нифига не работает в условиях. Продолжаем писать каскады if

С 13 года чудесно работает все что душе угодно..

CODE:
if (5>2 && 3<25)
{
messagebox ("5>2 && 3<25");
}

if (5<2 && 3<25)
{
messagebox ("5<2 && 3<25");
}

if (5>2 && 3>25)
{
messagebox ("5>2 && 3>25");
}

if (5>2 || 3>25)
{
messagebox ("5>2 || 3>25");
}

if ((2>1 && 20>10) || (10<=10 && 100>5))
{
messagebox ("(2>1 && 20>10) || (10<=10 && 100>5)");
}
 
 Top
Nightshade2
Отправлено: 16 Декабря, 2016 - 14:21:23
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2016  
Репутация: 1




Я писал
if (i2>=97) && (i2<=122)
{i2=i2-32;}
И не попадал в условие. Еще 1 скобки нужны? ((i2>=97) && (i2<=122))
 
 Top
Kibor
Отправлено: 16 Декабря, 2016 - 15:07:04
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Нарушение правил синтаксиса C
Читайте справку.(для просмотра ссылки Вам необходимо авторизоваться)
 Nightshade2 пишет:
if (i2>=97) && (i2<=122)

 Nightshade2 пишет:
Еще 1 скобки нужны? ((i2>=97) && (i2<=122))

Не еще одни, а НЕ надо брать каждое условие в скобки. Это не несет в себе никакого смысла. Скобки в Кибор несут функциональную нагрузку как в С. Нагрузка приоритета как в математике.
Это ошибка синтаксиса.
if (i2>=97) && (i2<=122)
это
if (i2>=97 && i2<=122)
а внутренние скобки означают БЛОК условия как в примере
if ((2>1 && 20>10) || (10<=10 && 100>5))

Проследите логику по скобкам. Логика как в математике..
 
 Top
Nightshade2
Отправлено: 16 Декабря, 2016 - 21:42:20
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 35
Дата рег-ции: Нояб. 2016  
Репутация: 1




Добил рус символы. Всякие знаки препинания пока мне не нужны. Код громоздкий и возможно можно переписать проще, но рабочий Подмигивание
Код (Отобразить)
 
 Top
Kibor
Отправлено: 16 Января, 2017 - 18:09:46
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Отправление зажатий и отпусканий клавиш клавиатуры в не активные окна sendkeydown и sendkeyup
 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by