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

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

1. DeLiberate - 06 Января, 2015 - 13:45:13 - перейти к сообщению
CODE:

{
a:
string str="CapsLock pushed!";
string str1="SPACEBAR pushed!";
enabletimer(3);
CREATE_TIMER(3, 3000);

{

if (getkeystate(SPACE)==1);

{
beep(1000,500);
messagebox(str1);
goto end;
}


if (getkeystate(20)==1);

{
beep(500,500);
messagebox(str);
goto end;
}
else
{
goto a;
}
}
goto a;
end:
}

Не работает, то есть при нажатом пробеле или капслоке ничего не происходит.
Где ошибка?
2. Kibor - 06 Января, 2015 - 14:20:56 - перейти к сообщению
CODE:
string str="CapsLock pushed!";
string str1="SPACEBAR pushed!";
enabletimer(3);
a: sleep(20);
goto a;
end:


CREATE_TIMER(3, 30)
{
if (getkeystate(32)==1)
{
beep(1000,500);
messagebox(str1);
goto end;
}
if (getkeystate(20)==1)
{
beep(500,500);
messagebox(str);
goto end;
}
}
3. DeLiberate - 06 Января, 2015 - 14:30:27 - перейти к сообщению
Понял свою ошибку, Спасибо.
4. YaPA - 13 Января, 2022 - 04:58:00 - перейти к сообщению
Подскажите как сделать, что бы учитывать нажатие, только при активном нужном окне!

if (getkeystate(27)) goto exit; //Нажат Esc. Выход 27

А то нажатие завершают скрипт неактивного окна. Недовольство, огорчение
5. ivantu - 13 Января, 2022 - 05:15:23 - перейти к сообщению
Перед условием добавить

activate(wind);
if (getkeystate(27)) goto exit; //Нажат Esc. Выход 27
6. YaPA - 13 Января, 2022 - 06:05:04 - перейти к сообщению
 ivantu пишет:
Перед условием добавить

activate(wind);
if (getkeystate(27)) goto exit; //Нажат Esc. Выход 27

Это вы мне предлагаете активировать скрытое окно?

..мне надо ESC в других местах использовать! Улыбка
7. Kibor - 13 Января, 2022 - 07:52:49 - перейти к сообщению
 YaPA пишет:
Подскажите как сделать, что бы учитывать нажатие, только при активном нужном окне!


CODE:
win w=window (-1, "Notepad", -1);//Указатель на окно в котором реагировать



loop()
{
if (formatwi(getwindow())==formatwi(w))
{
if (getkeystate(27)) beep(1000, 200);
}
sleep(10);
}
8. YaPA - 13 Января, 2022 - 09:36:46 - перейти к сообщению
Пример моего кода:
int x, y;
messagebox('start');
getmouse(x, y);// Узнаем координаты мыши
win w=getwindow (1, x, y);// Выбираю активный контрол
loop()
{
if (formatwi(getwindow())==formatwi(w))
{
if (getkeystate(27)) beep(1000, 200);
}
sleep(10);
}

Всё замечательно, но в Google Chrome не работает.
Вообще работает только в Mozilla Firefox...
9. Kibor - 13 Января, 2022 - 09:40:17 - перейти к сообщению
 YaPA пишет:
но в Google Chrome не работает

Указатель не верный берете.
Сначала убедитесь что он относится именно к этому хрому и не меняется в процессе.
(Добавление)
 YaPA пишет:
win w=getwindow (1, x, y);// Выбираю активный контрол


В мозиле нет контрола. Вы получаете указатель на главное окно так.

В хроме вы получаете указатель на контрол, а getwindow() получает указатель на главное окно активное.

Надо win w=getwindow (0, x, y);
Получить указатель на окно а не на контрол
10. YaPA - 13 Января, 2022 - 10:55:43 - перейти к сообщению
Если контрол отследить активность не получается..
Может придётся делать две переменные окон..
для рабочего контрола одна и вторая для главного окна.

Жаль контролы остались только у Хрома. Недовольство, огорчение

Powered by ExBB FM 1.0 Final