FreeBasic
Главная
Вход
Регистрация
Воскресенье, 19.11.2017, 22:52Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Freebasic » Вопросы по языку FreeBasic » Проблемы с Select и Timer (Timer и Select Case)
Проблемы с Select и Timer
FrostДата: Среда, 07.10.2015, 11:49 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
Код
#Include "Window9.bi"
Sleep(10000)
Dim i As Byte
Dim As Double Start
Dim As Double TM
'AddKeyboardShortcut(NULL,NULL,VK_F5,1001)
Start = Timer

While 1
TM=Timer
Select Case TM
Case Start+2
Print 1
keybd_event(VK_W, 0,0,0)
Case Start+600.2
keybd_event(VK_W, 0,KEYEVENTF_KEYUP,0)
Case Start+600.4
keybd_event(VK_RBUTTON, 0,0,0)
Case Start+607.4
keybd_event(VK_RBUTTON, 0, KEYEVENTF_KEYUP, 0)
Case Start+607.7
keybd_event(VK_T, 0,0,0)
Case Start+608
keybd_event(VK_T, 0, KEYEVENTF_KEYUP, 0)
Case Start+608.3
keybd_event(VK_OEM_2, 0,0,0)
Case Start+608.5  
keybd_event(VK_OEM_2, 0, KEYEVENTF_KEYUP, 0)
Case Start+608.8
keybd_event(VK_W, 0,0,0)
Case Start+609
keybd_event(VK_W, 0, KEYEVENTF_KEYUP, 0)
Case Start+609.3
keybd_event(VK_A, 0,0,0)
Case Start+609.5
keybd_event(VK_A, 0, KEYEVENTF_KEYUP, 0)
Case Start+609.8
keybd_event(VK_R, 0,0,0)
Case Start+610
keybd_event(VK_R, 0, KEYEVENTF_KEYUP, 0)
Case Start+610.3
keybd_event(VK_P, 0,0,0)
Case Start+610.5
keybd_event(VK_P, 0, KEYEVENTF_KEYUP, 0)
Case Start+610.8
keybd_event(VK_SPACE, 0,0,0)
Case Start+611
keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0)
Case Start+611.3
keybd_event(VK_T, 0,0,0)
Case Start+611.5
keybd_event(VK_T, 0, KEYEVENTF_KEYUP, 0)
Case Start+611.8
keybd_event(VK_O, 0,0,0)
Case Start+612
keybd_event(VK_O, 0, KEYEVENTF_KEYUP, 0)
Case Start+612.3
keybd_event(VK_N, 0,0,0)
Case Start+612.5
keybd_event(VK_N, 0, KEYEVENTF_KEYUP, 0)
Case Start+612.8
keybd_event(VK_E, 0,0,0)
Case Start+613
keybd_event(VK_E, 0, KEYEVENTF_KEYUP, 0)
Case Start+613.3
keybd_event(VK_L, 0,0,0)
Case Start+613.5
keybd_event(VK_L, 0, KEYEVENTF_KEYUP, 0)
Case Start+613.8
keybd_event(VK_RETURN, 0,0,0)
Case Start+614
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0)
i=i+1
Start=Timer
If i=4 Then
End
EndIf
End Select
Sleep(10)
Wend


Добрый день уважаемые форумчане. Не могу разобраться почему ни одно из условий Select не исполняется. Компилятор на выше приведенный код не ругается, вроде бы все должно работать. Пробовал в Select подставлять timer потом решил использовать буферную переменную. Но Увы.... Приведенный код отлично работает со Sleep для реализации пауз. Приложение задумывалось как "Бот" для майнкрафта. Выполнив 4 цикла должен завершить приложение. Подскажите где моя ошибка.
Спасибо!
 
haavДата: Среда, 07.10.2015, 12:55 | Сообщение # 2
Генерал-лейтенант
Группа: Администраторы
Сообщений: 793
Репутация: 34
Статус: Offline
Ветки Select Case не выполняются , потому что не совпадают условия. Функция Timer возвращает очень длинную дробную часть , у вас же числа округлены до одной десятой. Можно поймать лишь приблизительные значения. Используйте блок IF-ENDIF и более точнее обозначайте логику. Например число должно быть больше или равно Start+2 , но меньше Start+2.01 . Так же, раз используются нажатия клавиш, то наверно стоит создать флаги , чтобы не дублировались нажатия клавиш между Start+2 и Start+2.01 (хотя может это лишнее, но я бы наверно сделал).

Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
FrostДата: Среда, 07.10.2015, 13:17 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 10
Репутация: 0
Статус: Offline
Благодарю за верное направление. Попробовал сделать вот так:

Код
Case Start+2 To Start+2.01

Такого промежутка хватает как раз на один проход. Пробовал около 10 раз. Событие происходило.
 
Форум » Freebasic » Вопросы по языку FreeBasic » Проблемы с Select и Timer (Timer и Select Case)
Страница 1 из 11
Поиск: