Автор Тема: [Мышь, клавиатура] Как зажать пробел?  (Прочитано 4139 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Фазинур [?]

  • Новичок
  • *
  • Сообщений: 52
  • Репутация: 0
  • Пол: Мужской
    • Награды
Короче при создании бота я наткнулся на такую проблему как отсутствие какого либо инфы в справке насчет зажимания пробела. Друзья помогите. Бесконечный цикл с отправкой SPACE не подойдет, так как игра запалит бот.

Русское сообщество AutoIt

[Мышь, клавиатура] Как зажать пробел?
« Отправлен: Ноябрь 27, 2014, 20:04:08 »

Оффлайн firex [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 943
  • Репутация: 203
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #1, Отправлен: Ноябрь 27, 2014, 20:14:01 »
Фазинур  [?]
Цитировать
как отсутствие какого либо инфы в справке насчет зажимания

Оффлайн Фазинур [?]

  • Новичок
  • *
  • Сообщений: 52

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #2, Отправлен: Ноябрь 27, 2014, 20:19:36 »
Ну так, Зажимаение клавиш есть а таких клавиш как пробел, интер нету.

Русское сообщество AutoIt

Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #2 Отправлен: Ноябрь 27, 2014, 20:19:36 »

Оффлайн edyapd [?]

  • Осваивающий
  • **
  • Сообщений: 380
  • Репутация: 30
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #3, Отправлен: Ноябрь 27, 2014, 20:30:45 »
Код: AutoIt [Выделить]
Send("{SPACE DOWN}")

А так? Не пойдёт?

Оффлайн Фазинур [?]

  • Новичок
  • *
  • Сообщений: 52

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #4, Отправлен: Ноябрь 27, 2014, 20:47:26 »
К сожалению не зажимает.

Русское сообщество AutoIt

Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #4 Отправлен: Ноябрь 27, 2014, 20:47:26 »

Оффлайн edyapd [?]

  • Осваивающий
  • **
  • Сообщений: 380
  • Репутация: 30
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #5, Отправлен: Ноябрь 28, 2014, 10:23:32 »
Можно попробовать
Код: AutoIt [Выделить]
Opt("SendKeyDownDelay", 1)     ;1 миллисекунда

меняя задержку. Но это будет относится ко всем отправляемым Send.

Оффлайн C2H5OH [?]

  • Знаю я тут одно место с офигенными циркулями...
  • AutoIt Гуру
  • *****
  • Сообщений: 1473
  • Репутация: 332
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #6, Отправлен: Ноябрь 28, 2014, 12:16:23 »
У меня вообще то и вот так не зажимает
Код: AutoIt [Выделить]
Send("{a down}")
Sleep(5000)
Send("{a up}")


Вы уверены что проблема именно в пробеле?


Добавлено: Ноябрь 28, 2014, 12:23:00
И вот так тоже не зажимает...
Код: AutoIt [Выделить]
PressVK(0x41)
Sleep(5000)

Func PressVK($vcode)
    DllCall("user32.dll","int","keybd_event","int",$vcode,"int",0,"long",0,"long",0) ; нажать
    ;DllCall("user32.dll","int","keybd_event","int",$vcode,"int",0,"long",2,"long",0) ; отпустить
EndFunc

« Последнее редактирование: Ноябрь 28, 2014, 12:23:00 от C2H5OH, Причина: Объединение сообщений »
Рано или поздно все станет понятно, все станет на свои места и выстроится в единую красивую схему, как кружева. Станет понятно, зачем все было нужно, потому что все будет правильно.

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4093
  • Репутация: 1083
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #7, Отправлен: Ноябрь 28, 2014, 12:46:26 »
C2H5OH  [?]
Цитировать
вот так не зажимает
Ответ #14

Русское сообщество AutoIt

Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #7 Отправлен: Ноябрь 28, 2014, 12:46:26 »

Оффлайн C2H5OH [?]

  • Знаю я тут одно место с офигенными циркулями...
  • AutoIt Гуру
  • *****
  • Сообщений: 1473
  • Репутация: 332
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #8, Отправлен: Ноябрь 28, 2014, 13:08:32 »
InnI
ну, классно.
Но проведённый эксперимент просто показывает что текстовый редактор не подходит для опытов.
А на чём тогда из стандартных заманух Windows можно тренироваться?
(вариант поставить игрушку какую-нибудь не подходит)

Помечен как лучший ответ пользователем Фазинур Отправлен Ноябрь 28, 2014, 14:12:05

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4093
  • Репутация: 1083
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #9, Отправлен: Ноябрь 28, 2014, 13:55:18 »
C2H5OH  [?]
Цитировать
из стандартных заманух Windows
Не знаю, не интересовался.

Фазинур  [?]
Цитировать
цикл с отправкой SPACE не подойдет
Когда вы "зажимаете" на клавиатуре клавишу, контроллер клавиатуры каждые 30мс генерирует нажатие-отпускание этой клавиши. Это то же самое, как эту клавишу в цикле отправлять.

Оффлайн Фазинур [?]

  • Новичок
  • *
  • Сообщений: 52

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #10, Отправлен: Ноябрь 28, 2014, 14:13:20 »
А в бесконечном цикле тоже задержка между посылкой команды дает 30мс? И вообще у каждой клавы 30мс? Или у всех по разному?

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4093
  • Репутация: 1083
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #11, Отправлен: Ноябрь 28, 2014, 14:21:03 »
Фазинур  [?]
Цитировать
задержка между посылкой команды
В цикле вы сами можете регулировать различные задержки. К вашим услугам
Код: AutoIt [Выделить]
Opt("SendKeyDelay", nn)
Opt("SendKeyDownDelay", nn)
Sleep(nn)


Цитировать
у каждой клавы
Данная настройка прописывается в реестре "HKEY_CURRENT_USER\Control Panel\Keyboard", параметр "KeyboardSpeed".

Оффлайн Фазинур [?]

  • Новичок
  • *
  • Сообщений: 52

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #12, Отправлен: Ноябрь 28, 2014, 15:28:53 »
Фазинур  [?]
Цитировать
задержка между посылкой команды
В цикле вы сами можете регулировать различные задержки. К вашим услугам
Код: AutoIt [Выделить]
Opt("SendKeyDelay", nn)
Opt("SendKeyDownDelay", nn)
Sleep(nn)


Цитировать
у каждой клавы
Данная настройка прописывается в реестре "HKEY_CURRENT_USER\Control Panel\Keyboard", параметр "KeyboardSpeed".
Так бот не спалится?
Код: AutoIt [Выделить]
while 1=1
sleep(30)
send("{SPACE}")
wend


Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 4093
  • Репутация: 1083
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #13, Отправлен: Ноябрь 28, 2014, 15:42:50 »
Фазинур  [?]
Цитировать
Так бот не спалится?
Я не знаю. Я в защитах игр не разбираюсь.

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2700
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #14, Отправлен: Ноябрь 28, 2014, 17:24:44 »
Так бот не спалится?

Делайте рандомные задержки, как-то так:

Код: AutoIt [Выделить]
#Include <WinAPIEx.au3>

...

While 1
    _WinAPI_Keybd_Event(0x20, 0x00) ; Нажать пробел
    _Delay(Random(20, 40, 1)) ; Задержка 20-40 мс
    _WinAPI_Keybd_Event(0x20, 0x02) ; Отжать пробел
    _Delay(Random(20, 40, 1)) ; Задержка 20-40 мс
WEnd

Func _Delay($iDelay)
    Local $Timer = TimerInit()
    While TimerDiff($Timer) <= $iDelay
        ; Nothing
    WEnd
EndFunc   ;==>_Delay



Думай, прежде чем говорить.

Русское сообщество AutoIt

Re: [Мышь, клавиатура] Как зажать пробел?
« Ответ #14 Отправлен: Ноябрь 28, 2014, 17:24:44 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
8177 Просмотров
Последний ответ Май 17, 2011, 03:13:07
от Alonwoolf_
2 Ответов
3408 Просмотров
Последний ответ Март 26, 2012, 14:46:25
от noor
0 Ответов
2356 Просмотров
Последний ответ Декабрь 14, 2012, 09:41:25
от madmasles
4 Ответов
6680 Просмотров
Последний ответ Май 17, 2013, 14:42:05
от MnM
2 Ответов
3333 Просмотров
Последний ответ Октябрь 07, 2013, 18:26:41
от CreatoR
1 Ответов
2434 Просмотров
Последний ответ Ноябрь 08, 2013, 08:43:50
от madmasles
1 Ответов
3667 Просмотров
Последний ответ Январь 14, 2014, 16:01:14
от InnI
7 Ответов
1463 Просмотров
Последний ответ Январь 03, 2017, 14:43:27
от InnI
6 Ответов
2343 Просмотров
Последний ответ Апрель 11, 2017, 22:14:02
от Alofa
4 Ответов
339 Просмотров
Последний ответ Июль 20, 2018, 22:42:51
от cdjsend