Автор Тема: Как сделать чтоб курсор не двигался во время скрипта.  (Прочитано 455 раз)

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

EvilNoob

  • Зашел в гости
  • *
  • Сообщений: 9
    • Просмотр профиля
Народ пожалуйста подскажите как сделать так чтобы, когда я нажимаю на горячую клавишу (например е), чтоб виртуальная мышка двигалась(скрипт), а физическая(мышка который я двигаю) нет, это не столь важно но иногда сильно мешает в игровом процессе когда я сам же случайно сбиваю свой скрипт из-за лишних движений мышкой. Мне нужно что бы когда мой скрипт начинается я не мог не как взаимодействовать с ним и что бы он следовал указанием, а когда заканчивается мои полномочия вернулись и я снова смог двигать мышкой.(Надеюсь это возможно сделать)
« Последнее редактирование: Апрель 07, 2019, 02:35:35 pm от EvilNoob »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3610
  • Котэ
    • Просмотр профиля
Никак.

kiril

  • Герой форума
  • *****
  • Сообщений: 754
    • Просмотр профиля
Возможно - установите виртуальную операционную систему.

dramster

  • Герой форума
  • *****
  • Сообщений: 957
    • Просмотр профиля
В библиотеке 'USER32.DLL' есть функция 'BlockInput'. Она блокирует мышь и клавиатуру. При этом, программно все работает. Блокировку можно отключить вручную сочетанием ctrl + alt + del.

Вызвать напрямую из кликермана не получится. Для использования пишем длл, где и вызываем нужную функцию.

Код длл делфи:
Код: Clickermann
  1. library cmann_plugin;
  2.  
  3. uses SysUtils, Winapi.Windows;
  4.  
  5. procedure BlockInput(fBlockIt : boolean); stdcall; external 'USER32.DLL';
  6. //------------------------------------------------------------------------------
  7. // Основное тело функции, идет на экспорт, вызывается из кликера
  8. function execute( _mas: pInteger; _size: Integer): Integer; export; stdcall;
  9. type
  10.  pIntArr = array[0..0] of Integer;
  11. var
  12.  block : Integer;
  13.  
  14. begin
  15.  
  16. block := pIntArr(_mas^)[0];
  17.  
  18. if block = 0 then BlockInput(False) else BlockInput(True);
  19.  
  20. result := block;
  21.  
  22. end;
  23. //------------------------------------------------------------------------------
  24.  
  25. // список экспорта
  26. exports execute;
  27.  
  28. begin
  29.  // тело пусто
  30. end.

Скомпилированную dll кинул во вложение. Вложение не работает  :-\ , странно. Ссылка на ядиск - https://yadi.sk/d/czxLPs_mEP32Ug

Пример вызова кликерманом:
Код: Clickermann
  1. call("block.dll", 1) //блокируем мышь и клаву
  2.  
  3.  
  4. //действуем
  5. wait(1)
  6. move(223,231)
  7. waitms(300)
  8. move(329,159)
  9. waitms(300)  
  10. move(617,153)
  11. waitms(300)  
  12. move(994,375)
  13. waitms(300)  
  14. move(856,518)
  15. waitms(300)  
  16. move(555,559)
  17. waitms(300)  
  18. move(301,409)
  19. waitms(300)  
  20. move(210,285)  
  21. wait(1)
  22.  
  23. call("block.dll", 0) //разблокируем
  24.  
  25. halt

Файл "block.dll" должен быть в одной папке с сохраненным скриптом. Dll скомпилирована для 32-битной версии кликермана.
Кликер запускать от имени администратора, иначе может не работать (у меня не работает  >:( )
« Последнее редактирование: Апрель 07, 2019, 08:09:05 pm от dramster »