1 (изменено: MtZay, 2021-02-02 22:11:06)

Тема: AHK: Зажатие клавиши при переносе файла мышью

Есть задача перенестимелеент из одной коардинаты в другую, просисходит нажатие на элемент,  затем перемещение курсора с последующим разжатием левой кнопки. Но, при всем этом должна быть зажата клавиша ctrl и разжата вместе с левой кнопкой мыши.

Команду зажатия и отпускания я нашел, но как при этом активировать ctrl - сообразить не могу, пишу в первой версии, соответственно без многопоточности.

выручите советом.

2 (изменено: SuBrex, 2020-08-02 00:39:03)

Re: AHK: Зажатие клавиши при переносе файла мышью

Хм.

3

Re: AHK: Зажатие клавиши при переносе файла мышью

MtZay
Я далеко не эксперт, но могу предложить:


SendInput, {LButton Down}{Ctrl Down}
MouseMove
SendInput, {LButton Up}{Ctrl Up}

Ну, надеюсь, Вы знаете как работает MouseMove .

4

Re: AHK: Зажатие клавиши при переносе файла мышью

SuBrex пишет:

Я далеко не эксперт, но могу предложить:

То что нужно! Премного благодарен!

З.ы: не думал, что такое простое решение конечно, мне казалось что чтение кода не продолжается, пока не отпустится клавиша, т.к. в мануале читал, что эмулирование зажатия клавиши происходит чередой нажатия на нее, как при реалонм вводе с клавы. Т.е. эта функция вроде settimer'a, эмулирует многопоточность интересно..

5

Re: AHK: Зажатие клавиши при переносе файла мышью

MtZay пишет:

в мануале читал, что эмулирование зажатия клавиши происходит чередой нажатия на нее

Нет, не читали.

6 (изменено: MtZay, 2021-02-02 22:10:53)

Re: AHK: Зажатие клавиши при переносе файла мышью

stealzy пишет:
MtZay пишет:

в мануале читал, что эмулирование зажатия клавиши происходит чередой нажатия на нее

Нет, не читали.

Это вы меня так мягко пи*даболом назвали?)

https://i.imgur.com/AMBv6Bx.png

На сколько понял, клавиши-модификаторы являются исключениями.

7

Re: AHK: Зажатие клавиши при переносе файла мышью

Боюсь, вы не совсем поняли, что тут написано.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8 (изменено: MtZay, 2021-02-02 22:10:31)

Re: AHK: Зажатие клавиши при переносе файла мышью

teadrinker пишет:

Боюсь, вы не совсем поняли, что тут написано.

Определенно, я через переводчик читаю) Но для моего контекста достаточно, что Control/Shift/Alt/Win не отпускаются автоматически, как другие клавиши, этот момент я прочел лишь после помощи товарища SuBrex'a, до этого считал, что все нажатия клавишь нужно эмулировать путем петли, количество которыхи(цыклов петель) пропорционально времени нажатия, как и в примере мануала.

When a key is held down via the method above, it does not begin auto-repeating like it would if you were physically holding it down (this is because auto-repeat is a driver/hardware feature). However, a Loop can be used to simulate auto-repeat.

stealzy же упрекает меня в том, что эмулирование происходит иначе, или вообще весь процесс происходит по другому.

Так что же я конкретно не понял?

з.ы:речь идет о дефолте, без учета параметров DownTemp и DownR.

9

Re: AHK: Зажатие клавиши при переносе файла мышью

Здесь как раз написано, что при эмулировании зажатия способом Send {a down} автоповтора не происходит, каковой возникает при физическом зажатии клавиши.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Зажатие клавиши при переносе файла мышью

teadrinker пишет:

Здесь как раз написано, что при эмулировании зажатия способом Send {a down} автоповтора не происходит, каковой возникает при физическом зажатии клавиши.

Так а я про что? А клавиши-модификаторы лвяются исключениями, и каким то образом зажимаются до команды отпускания.

stealzy пишет:

I'm not who calling you that, ball from pussy.

Вы бы мне конкретно объяснили, что вас в моих словах не устраивает..

stealzy пишет:

пригодятся русский файл справки

Вот за это спасибо, не мог его найти в таком виде.

11

Re: AHK: Зажатие клавиши при переносе файла мышью

MtZay пишет:

Так а я про что?

Совсем про другое, у вас мешанина из несвязанных между собой вещей.
Зажатие клавиши и автоповтор — разные вещи.
В коде SuBrex можно зажать любую клавишу.

Send {F1 Down}
Send {Ctrl Down}
ToolTip % GetKeyState("F1")
MouseClickDrag Left, 200, 0, 0, 0, 50, R
Send {Ctrl Up}
ToolTip % GetKeyState("F1")
Send {F1 Up}
Sleep 1000

Можно и вручную зажать клавишу без автоповтора: зажмите одну (например Й) и не отпуская, щелкните по второй (Ц) — в результате клавиша (Й) зажата, но автоповтор не идет.

MtZay пишет:

эта функция вроде settimer'a, эмулирует многопоточность

Какая функция (команда Send?) и причем тут многопоточность? (Непричем).

12

Re: AHK: Зажатие клавиши при переносе файла мышью

stealzy пишет:

Зажатие клавиши и автоповтор — разные вещи.

Можно и вручную зажать клавишу без автоповтора: зажмите одну (например Й) и не отпуская, щелкните по второй (Ц) — в результате клавиша (Й) зажата, но автоповтор не идет.

Вот так уже понятно в чем соль.
Получается, что зажимая букву "й" я не зажимаю ее, а включаю тем самым функцию автоповтора. Для клавишь-модификаторов функции автоповтора получается нет, они могут быть зажатыми, или разжатыми, а для всех остальных есть 2 варианта?

MtZay пишет:

эта функция вроде settimer'a, эмулирует многопоточность

Какая функция (команда Send?) и причем тут многопоточность? (Непричем).

Этот мой вывод проистек из раннего представления об одной и той же природе зажатия и автоповтора клавиш.
Видимо есть какая то отдельная память для состояний зажатия, которая существует отдельно от выполнения кода? (это уже разумеется сложно назвать отдельным потоком)

Благодарю за разъяснение!

13

Re: AHK: Зажатие клавиши при переносе файла мышью

Когда удерживаете на клавиатуре клавишу, и она через 1-2 секунды начинает повторяться много раз - это делает Windows, а не AutoHotkey.