Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: EvilNoob on April 07, 2019, 02:27:30 PM
-
Народ пожалуйста подскажите как сделать так чтобы, когда я нажимаю на горячую клавишу (например е), чтоб виртуальная мышка двигалась(скрипт), а физическая(мышка который я двигаю) нет, это не столь важно но иногда сильно мешает в игровом процессе когда я сам же случайно сбиваю свой скрипт из-за лишних движений мышкой. Мне нужно что бы когда мой скрипт начинается я не мог не как взаимодействовать с ним и что бы он следовал указанием, а когда заканчивается мои полномочия вернулись и я снова смог двигать мышкой.(Надеюсь это возможно сделать)
-
Никак.
-
В библиотеке 'USER32.DLL' есть функция 'BlockInput'. Она блокирует мышь и клавиатуру. При этом, программно все работает. Блокировку можно отключить вручную сочетанием ctrl + alt + del.
Вызвать напрямую из кликермана не получится. Для использования пишем длл, где и вызываем нужную функцию.
Код длл делфи:
library cmann_plugin;
uses SysUtils, Winapi.Windows;
procedure BlockInput(fBlockIt : boolean); stdcall; external 'USER32.DLL';
//------------------------------------------------------------------------------
// Основное тело функции, идет на экспорт, вызывается из кликера
function execute( _mas: pInteger; _size: Integer): Integer; export; stdcall;
type
pIntArr = array[0..0] of Integer;
var
block : Integer;
begin
block := pIntArr(_mas^)[0];
if block = 0 then BlockInput(False) else BlockInput(True);
result := block;
end;
//------------------------------------------------------------------------------
// список экспорта
exports execute;
begin
// тело пусто
end.
Скомпилированную dll кинул во вложение. Вложение не работает :-\ , странно. Ссылка на ядиск - https://yadi.sk/d/czxLPs_mEP32Ug
Пример вызова кликерманом:
call("block.dll", 1) //блокируем мышь и клаву
//действуем
wait(1)
move(223,231)
waitms(300)
move(329,159)
waitms(300)
move(617,153)
waitms(300)
move(994,375)
waitms(300)
move(856,518)
waitms(300)
move(555,559)
waitms(300)
move(301,409)
waitms(300)
move(210,285)
wait(1)
call("block.dll", 0) //разблокируем
halt
Файл "block.dll" должен быть в одной папке с сохраненным скриптом. Dll скомпилирована для 32-битной версии кликермана.
Кликер запускать от имени администратора, иначе может не работать (у меня не работает >:( )
(https://i.imgur.com/9P2dc2Q.png)
-
Сам столкнулся с такой задачей, выход нашел таким способом
Может пригодится кому
SUB(hold, $tim, $_xpos, $_ypos)
$timer = $_ms + $tim // таймер
// LOGWRITE ("таймер",$tim)
MOVE($_xpos, $_ypos)
WAITMS(10)
WHILE($timer > $_ms)
IF( ($_xmouse == $_xpos) & ($_ymouse == $_ypos) )
WAITMS(10)
ELSE
$sx= $sx + ($_xmouse - $_xpos) // запоминает сдвиг который делаете мышью
$sy= $sy + ($_ymouse - $_ypos)
MOVE($_xpos, $_ypos)
WAITMS(10)
END_IF
END_CYC
END_SUB
$sx = $_xmouse // запоминаем положение курсора
$sy = $_ymouse
hold(1000, 20, 30) //вызов саба на удержание. например 1000мс в координате х20 у30
MOVE($sx,$sy) // вернуть курсор с учетом сдвига мыши во время блока