[решено] BlockInputEx и MouseClick несколько вопросов
-
r35p3ct
[решено] BlockInputEx и MouseClick несколько вопросов
В описании к BlockInputEx написано: "2 - Block only mouse", там же в примере
;Here we block only *Mouse* input (without keyboard).
_BlockInputEx(1) В чем подвох?)
Сначала хотел использовать блокирование мышки для того, чтобы во время выполнения случайно не двинуть мышку, но при заблокированной мышке комманда MouseClick тоже не работает. Можно ли как нибудь послать клик в определенную координату и заблокировать мышку?
;Here we block only *Mouse* input (without keyboard).
_BlockInputEx(1) В чем подвох?)
Сначала хотел использовать блокирование мышки для того, чтобы во время выполнения случайно не двинуть мышку, но при заблокированной мышке комманда MouseClick тоже не работает. Можно ли как нибудь послать клик в определенную координату и заблокировать мышку?
-
Diamond
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Для тех кто не вкурсе, речь про самопальную функцию
Цитата r35p3ct:
В чем подвох?
Ни в чём, это просто ошибка в примере. Поправлено в последней версии.
Цитата r35p3ct:
Сначала хотел использовать блокирование мышки для того, чтобы во время выполнения случайно не двинуть мышку, но при заблокированной мышке комманда MouseClick тоже не работает. Можно ли как нибудь послать клик в определенную координату и заблокировать мышку?
Тут есть два варианта решения. Первый это отключение блокировки на момент клика, а второй это изначальная блокировка только движения мышки, ну или всего кроме левого клика:
Код:
BlockInputEx
.Цитата r35p3ct:
В чем подвох?
[решено] BlockInputEx и MouseClick несколько вопросов
Ни в чём, это просто ошибка в примере. Поправлено в последней версии.
Цитата r35p3ct:
Сначала хотел использовать блокирование мышки для того, чтобы во время выполнения случайно не двинуть мышку, но при заблокированной мышке комманда MouseClick тоже не работает. Можно ли как нибудь послать клик в определенную координату и заблокировать мышку?
[решено] BlockInputEx и MouseClick несколько вопросов
Тут есть два варианта решения. Первый это отключение блокировки на момент клика, а второй это изначальная блокировка только движения мышки, ну или всего кроме левого клика:
Код:
Код: Выделить всё
;Here we block *Mouse* input, except the mouse primary click.
_BlockInputEx(2, "{MPDOWN}|{MPUP}")-
r35p3ct
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Код:
Клик не происходит...
Про первый вариант не понял, суть такая, сижу за компьютером работаю, скрипт например должен кликать через определенное время куда нибудь, вот нужно как нибудь не допустить перемещения мышки в момент клика...
Код: Выделить всё
_BlockInputEx(2, "{MPDOWN}|{MPUP}")
MouseClick("left",685,122,1,0)
sleep(1000)
_BlockInputEx(0)Клик не происходит...
Про первый вариант не понял, суть такая, сижу за компьютером работаю, скрипт например должен кликать через определенное время куда нибудь, вот нужно как нибудь не допустить перемещения мышки в момент клика...
-
Creat0R
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Цитата r35p3ct:
Клик не происходит
И не должен. Тут ведь функция пытается подвинуть мышку, а её движение блокируется.
Цитата r35p3ct:
Про первый вариант не понял
Имелось в виду отключение (_BlockInputEx(0)) блокировки на время клика.
Цитата r35p3ct:
суть такая, сижу за компьютером работаю, скрипт например должен кликать через определенное время куда нибудь, вот нужно как нибудь не допустить перемещения мышки в момент клика...
Ну, это совсем другая задача, тут _BlockInputEx не поможет, не для этих целей он делался.
Для этого лучше использовать обычный BlockInput:
Код:
Клик не происходит
[решено] BlockInputEx и MouseClick несколько вопросов
И не должен. Тут ведь функция пытается подвинуть мышку, а её движение блокируется.
Цитата r35p3ct:
Про первый вариант не понял
[решено] BlockInputEx и MouseClick несколько вопросов
Имелось в виду отключение (_BlockInputEx(0)) блокировки на время клика.
Цитата r35p3ct:
суть такая, сижу за компьютером работаю, скрипт например должен кликать через определенное время куда нибудь, вот нужно как нибудь не допустить перемещения мышки в момент клика...
[решено] BlockInputEx и MouseClick несколько вопросов
Ну, это совсем другая задача, тут _BlockInputEx не поможет, не для этих целей он делался.
Для этого лучше использовать обычный BlockInput:
Код:
Код: Выделить всё
BlockInput(1)
MouseClick("Main", 685, 122, 1, 0)
Sleep(1000)
BlockInput(0)-
Creat0R
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Creat0R, отлично, работает. Только вот не пойму почему происходит такой глюк, поэтому то и думал, что функция глючная с начала и не юзал. Вобщем после выполнения этого кода в моей проге мышка начинает норм шевелиться, но при нажатии например на клаве цифры 3, выполняется мой HotKeySet("!3", "ip"), даже когда программа выключена, тоесть получается как будто залипла клавиша alt...если выполнять этот код отдельным проектом, то норм. При нажатии ctrl+alt+del все нормализуется.
Как найти из за чего такое может быть? {ALTDOWN} или чего то похожего не использую...да и выполнял этот код как отдельную функцию...
Как найти из за чего такое может быть? {ALTDOWN} или чего то похожего не использую...да и выполнял этот код как отдельную функцию...
-
r35p3ct
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Цитата r35p3ct:
Как найти из за чего такое может быть?
Сложно сказать не видя скрипта. Но если попробовать, то можно сделать такой трюк:
Код:
Как найти из за чего такое может быть?
[решено] BlockInputEx и MouseClick несколько вопросов
Сложно сказать не видя скрипта. Но если попробовать, то можно сделать такой трюк:
Код:
Код: Выделить всё
#include
HotKeySet("!3", "ip")
;....
Func ip()
;Ждём пока нажата клавиша Alt
While _IsPressed(12)
Sleep(10)
WEnd
;тут содержание функции
EndFunc-
Creat0R
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Вот что показало вскрытие:
Код:
По первому хоткею работает нормально, по второму не очень, пришлось ребутать ПК, клавиши ctrl и alt получается зажаты и не функционируют...
Что делать в принципе понятно) Получается BlockInput глючит?
Код:
Код: Выделить всё
;HotKeySet("{F9}", "a")
HotKeySet("!0", "a")
While 1
Sleep(100)
WEnd
func a()
BlockInput(1)
sleep(2000)
MouseClick("Main", 685, 122, 1, 0)
Sleep(2000)
BlockInput(0)
EndFuncПо первому хоткею работает нормально, по второму не очень, пришлось ребутать ПК, клавиши ctrl и alt получается зажаты и не функционируют...
Что делать в принципе понятно) Получается BlockInput глючит?
-
r35p3ct
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Цитата r35p3ct:
Получается BlockInput глючит?
Нет. Получается что после вызова функции, модифицирующие клавиши (в нашем случае это Alt) не успевают отжиматься до того как BlockInput вступает в силу. В справке ведь написано:
Цитата
Remarks
If BlockInput is enabled, the Alt keypress cannot be sent!
видимо оно касается и предварительного нажатия юзером. Поэтому решение из моего последнего поста будет оптимальным.
Получается BlockInput глючит?
[решено] BlockInputEx и MouseClick несколько вопросов
Нет. Получается что после вызова функции, модифицирующие клавиши (в нашем случае это Alt) не успевают отжиматься до того как BlockInput вступает в силу. В справке ведь написано:
Цитата
http://www.autoitscript.com/autoit3/doc ... KeySet.htm
:Remarks
If BlockInput is enabled, the Alt keypress cannot be sent!
видимо оно касается и предварительного нажатия юзером. Поэтому решение из моего последнего поста будет оптимальным.
-
Creat0R
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Если я правильно понял, то решением будет либо не использовать в хоткеях alt, либо
перед каждым вызовом blockinput сделать так?
Код:
перед каждым вызовом blockinput сделать так?
Код:
Код: Выделить всё
#include
HotKeySet("!3", "ip")
Func ip()
alt()
blockinput(1)
;.... функция
blockinput(0)
endfunc
func alt()
While _IsPressed(12)
Sleep(10)
WEnd
endfunc-
r35p3ct
Re: [решено] BlockInputEx и MouseClick несколько вопросов
Цитата r35p3ct:
решением будет либо не использовать в хоткеях alt, либо
перед каждым вызовом blockinput сделать так?
Так точно.
решением будет либо не использовать в хоткеях alt, либо
перед каждым вызовом blockinput сделать так?
[решено] BlockInputEx и MouseClick несколько вопросов
Так точно.