1

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

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

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

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

2 (изменено: SuBrex, Вчера 00:39:03)

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

Хм.

3

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

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


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

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

4

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

SuBrex пишет:

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

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

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

5

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

MtZay пишет:

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

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

Win7x64, AutoHotkey 1.1.30.00

6

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

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

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

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

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

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

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

7

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

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

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

8 (изменено: MtZay, Сегодня 03:20:19)

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

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: Зажатие клавиши при переносе файла мышью

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

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

10

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

I'm not who calling you that, ball from pussy.
У меня и свой экземпляр оригинальной справки есть, а вам пока пригодятся русский файл справки и машинный перевод онлайн.

Win7x64, AutoHotkey 1.1.30.00

11

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

teadrinker пишет:

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

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

stealzy пишет:

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

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

stealzy пишет:

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

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

12

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

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?) и причем тут многопоточность? (Непричем).

Win7x64, AutoHotkey 1.1.30.00