Long press is not working Topic is solved

Get help with using AutoHotkey (v1.1 and older) and its commands and hotkeys
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

16 Apr 2024, 21:57

@Rohwedder the following script and double tapping script you provided with notebook.exe as an example work great. I modified it for work and replaced notebook.exe to the program I am running the script at work. It works fine on work program as long as I ask the script to send a simple one line command on long press. Eg send Z. However, the script does not work for longer or multi step commands.
Eg Send ^+ q
Sleep 500
Send ^m
Sleep 500
Send L
I even tried to create a script to trigger the steps listed above via single character and run it indirectly through long press script. But it still does not go through all steps.

Is there a solution for it?
Thank you.

Code: Select all

#IFWinActive, ahk_exe notepad.exe
$d::
keywait, d, T0.5
if errorlevel {
	SoundBeep
	Send e
} else Send d
keywait, d
; d key down would immediately trigger $d:: again
return
#IFWinActive
Rohwedder
Posts: 7659
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Long press is not working

17 Apr 2024, 01:06

Then:

Code: Select all

#IFWinActive, ahk_exe notepad.exe
$*d:: ; $* both modifier required!
keywait, d, T0.5
if errorlevel {
	SoundBeep
	SendTimer(1, " ; long press starts SendTimer no. 1
	( LTrim Join C
		{Ctrl Down}{Shift Down}{h}{Shift Up}{Ctrl Up} ; ^+h
		{100} ; Sleep 100
		{Ctrl Down}{m}{Ctrl Up} ; ^m
		{500} ; Sleep 500
		L ; L
	)")
} else Send d ; short press
keywait, d
SendTimer(-1) ; SendTimer no. 1 is cancelled when key D is released
return
#IFWinActive

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SendTimer(N, Output:="", Delay:=-100, AddRandom:=0)
{   Local D, C ;global Pseudo-Arrays: Ο%%, Τ%%, Δ%%, Ρ%%
    If (N>0 And Ο%N%>"") ;Update lock
        Return ;with Ο:Omikron, Τ:Tau, Δ:Delta, P:Rho
    Critical,% (C:=A_IsCritical)?:"Off"
    N:=Abs(N), Ο%N%:=Τ%N%:=Output, D:=Abs(Δ%N%:=Delay)
    Random, D, D, D+Ρ%N%:=AddRandom, N:=Func("T").Bind(N)
	SetTimer,% N,% (""<Output)?D*(Delay>0):"Off"
    Critical,% C?:"Off" ;restore original criticality
    Return
}
T(N) ; called by SendTimer(), Timer function
{   Static Needle:="\{([0-9\-]{2,}|%.+%)\}|\{[^\}]*\}|."
    , BlindText:="{Blind}{Text}", Label:="SendTimerOff-"
    Critical
    Random, D, D:=Abs(Δ%N%),D+Ρ%N%,RegExMatch(Τ%N%,Needle,K)
    Random, K1, !(R:=StrSplit(K1,"-")) R.1, Max(0 R.1, 0 R.2)
    SendInput,% (StrLen(K)=1)?BlindText K:(K1?:D(K))
    SetTimer,,% D:=("0"<K1 Τ%N%:=StrReplace(Τ%N%, K,,, 1))
    ?Max(D, K1?D(K1):0):(Δ%N%>0)?(D, Τ%N%:=Ο%N%):"Off"
    IF !++D And (!Ο%N%:="") And IsLabel(D:=Label N)
        SetTimer,% D, -10 ;jump to Label SendTimerOff-N
    Exit
}
D(K) ; called by T(), Deref function expands variable references
{   Static Needle := "%(.*?)%", Pos:=1
    While, Pos:=RegExMatch(K, Needle, M, Old:=Pos+StrLen(M))
        Out .= SubStr(K, Old, Pos-Old) %M1%
    Return, Out SubStr(K, Old), Pos:=1
}
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SendTimer(N [, Output, Delay, AddRandom ])
SendTimerOff-N:


SendTimer() creates and terminates any number of independent timers which automatically and repeatedly send a respective Output.
The timers do not use Sleep, KeyWait, SetKeyDelay, or any other time robbers that prevent threads from ending. Often even external KeyWait and due to a built-in repeat function, Loops can be saved.
SendTimer() acts globally, but the only global variables are four pseudo-arrays named with Greek capital letters. All others variables are neither global (nor Greek).

N: Integer number of the timer.
N > 0: the timer with number N will be created, an update will be prevented.
N < 0: the timer with the number of the absolute value of N will be updated or created.
An updated timer without Output will be terminated. E.g. SendTimer(-2) stops Timer 2.

When the timer N ends, the label SendTimerOff-N is jumped to, if present.

Output: A string consisting of Text, Keys, Clicks, and Local Delays.
Text: e.g. "Hello world!" is sent with SendInput in blind text mode.
{Key}: e.g. "{Ctrl down}{c}{Ctrl up}" are sent with SendInput.
{Click [Options]}: e.g. {Click 100 200 Right} or {Click, %X% , %Y%, %Button%}
Variable references %Variable% within {..} will be extended currently).

Delay: the absolute value of Delay determines the delay in milliseconds, after each sent text character, key or click.
> 0: the Output of the timer is repetitive.
< 0: the Output is done once.
AddRandom: Random increase of the delay by up to (additive) AddRandom in milliseconds.

{Inline Delay}: e.g. "{1000}, {-2000}, {100-300} replaces the next delay
if that is smaller. Random delay 50 - 1000 ms: {50-1000}
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 06:01

@Rohwedder Thank you for your prompt response with detailed explanation of the code. Looks very complicated but I can't wait to learn more about it. It may be few days before I can fully learn it but can't wait to soon try it at work. Thank you. If it is not a tremendous burden, can you demonstrate where and how sendtimer will be inserted if one wants to put longer script instead of "send d" for short press? Also, I am using the following script by you. Again, no rush but would you be able to show how it looks with sendtimer modification? Will give you feed back on the long press. Thanks.

Code: Select all

#IFWinActive, ahk_exe notepad.exe
$d::
Switch, Morse() {
Case "0":Send d ;single short press sends d
Case "1":Send e ; single long press sends e
Case "00":Send f ; send "f" with double tapping of "d" key
Case "000":Send g ; send "g" with double tapping of "d" key
Default:MsgBox,, Pattern without Case,% Pattern, 3
} Return
#IFWinActive

Morse(Timeout = 350) {
    Global Pattern := ""
    RegExMatch(A_ThisHotkey, "\W$|\w*$", Key)
    While, !ErrorLevel {
        T := A_TickCount
        KeyWait %Key%
        Pattern .= A_TickCount-T > Timeout
        KeyWait %Key%,% "DT" Timeout/1000
    } Return Pattern
}
Rohwedder
Posts: 7659
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Long press is not working

17 Apr 2024, 07:33

Try:

Code: Select all

#IFWinActive, ahk_exe notepad.exe
$*d::
Switch, Morse() {
Case "0":SendTimer(5, "single short press`n",-200) 
;single short press writes "single short press" with 200ms/character
Case "1":Send e ; single long press sends e
Case "00":Send f ; send "f" with double tapping of "d" key
Case "000":Send g ; send "g" with double tapping of "d" key
Default:MsgBox,, Pattern without Case,% Pattern, 3
} Return

*q::SendTimer(1, "Hello World!",-100)
    ; Timer 1: Delay: 100 ms, only one time

SendTimerOff-1: ;This label is go to when timer 1 stops
    SoundBeep
Return

*w::
    SendTimer(2, "Hello {200-1000}World!{Enter}", 100)
    ; Timer 2: Delay: 100ms, periodic, with a pause of 200-1000 ms
    Sleep, 4900
    SendTimer(-2) ;Timer 1 is switched off after 4900 ms 
Return

*e::SendTimer(3, "{Shift Down}{a 5}{Shift Up}{a 5}", -500)
    ; Timer 2: Delay: 500 ms, only one time
    ; {a 5} = 5 times key A without Delay
    
; Let run Timer 2 + 3 simultaneously (hold keys W and E)
; The key state of Shift has no influence on the sending of text.

*t::SendTimer(99, "{Click,%X%,%Y%}", 100, 200), X:=100, Y:=250
    ; Timer 99 clicks every 100-300 ms on 100 250.
    ; while holding down the T key. KeyWait is not required.
*t Up::SendTimer(-99)

*z::SendTimer(150, "A{-%Delay%}B",100), Delay := 2000
    ; Up to 2 seconds elapse between A and B while holding down the Z key.
*z Up::SendTimer(-150)

*u:: ; A good stress test: 26 Timers
    Loop, 26 ; with the Outputs: "Aa", "Bb", ..., "Zz"
        SendTimer(A_Index, Chr(64+A_Index) Chr(96+A_Index), 200, 1000) 
Return  ; send randomly while holding down the U key.
*u Up::
    Loop, 26 ; Timers 1-26 off
        SendTimer(-A_Index)
Return ;The beep at the end is triggered by the label SendTimerOff-1

*v::
Angle := -PI60 := ATan(1)/15 ; sixtieth part of PI
SendTimer(99, "{Click %X% %Y% 0}", 50)
Loop,% 120 ; Cursor moves in a circle (Angle: 0 - 2 PI)
{
    X := 500 + 300 * Sin(Angle += PI60)
    Y := 500 + 300 * -Cos(Angle)
    Sleep, 50
}
SendTimer(-99)
Return
#IFWinActive

Morse(Timeout = 350) {
    Global Pattern := ""
    RegExMatch(A_ThisHotkey, "\W$|\w*$", Key)
    While, !ErrorLevel {
        T := A_TickCount
        KeyWait %Key%
        Pattern .= A_TickCount-T > Timeout
        KeyWait %Key%,% "DT" Timeout/1000
    } Return Pattern
}
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SendTimer(N, Output:="", Delay:=-100, AddRandom:=0)
{   Local D, C ;global Pseudo-Arrays: Ο%%, Τ%%, Δ%%, Ρ%%
    If (N>0 And Ο%N%>"") ;Update lock
        Return ;with Ο:Omikron, Τ:Tau, Δ:Delta, P:Rho
    Critical,% (C:=A_IsCritical)?:"Off"
    N:=Abs(N), Ο%N%:=Τ%N%:=Output, D:=Abs(Δ%N%:=Delay)
    Random, D, D, D+Ρ%N%:=AddRandom, N:=Func("T").Bind(N)
	SetTimer,% N,% (""<Output)?D*(Delay>0):"Off"
    Critical,% C?:"Off" ;restore original criticality
    Return
}
T(N) ; called by SendTimer(), Timer function
{   Static Needle:="\{([0-9\-]{2,}|%.+%)\}|\{[^\}]*\}|."
    , BlindText:="{Blind}{Text}", Label:="SendTimerOff-"
    Critical
    Random, D, D:=Abs(Δ%N%),D+Ρ%N%,RegExMatch(Τ%N%,Needle,K)
    Random, K1, !(R:=StrSplit(K1,"-")) R.1, Max(0 R.1, 0 R.2)
    SendInput,% (StrLen(K)=1)?BlindText K:(K1?:D(K))
    SetTimer,,% D:=("0"<K1 Τ%N%:=StrReplace(Τ%N%, K,,, 1))
    ?Max(D, K1?D(K1):0):(Δ%N%>0)?(D, Τ%N%:=Ο%N%):"Off"
    IF !++D And (!Ο%N%:="") And IsLabel(D:=Label N)
        SetTimer,% D, -10 ;jump to Label SendTimerOff-N
    Exit
}
D(K) ; called by T(), Deref function expands variable references
{   Static Needle := "%(.*?)%", Pos:=1
    While, Pos:=RegExMatch(K, Needle, M, Old:=Pos+StrLen(M))
        Out .= SubStr(K, Old, Pos-Old) %M1%
    Return, Out SubStr(K, Old), Pos:=1
}
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 09:10

@Rohwedder followup from work. I tried the recent long press script at work and of the following, only soundbeep and ^M worked. ^+V and L did not work. Any suggestions? I am only posting the part I changed. TY.

Code: Select all

SoundBeep
	SendTimer(1, " ; long press starts SendTimer no. 1
	( LTrim Join C
                {Ctrl Down}{m}{Ctrl Up} ; ^m		
		{1500} ; Sleep 1500
                {Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up} ; ^+v
		{50} ; Sleep 500
		L ; L
	)")
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 09:12

@Rohwedder TY. Will try revised Morse script.
Rohwedder
Posts: 7659
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Long press is not working

17 Apr 2024, 10:05

only soundbeep and ^M worked. ^+V and L did not work
Perhaps your work application was disturbed by the D key still being pressed?
In this version, the SendTimer is only started after the D key has been released:

Code: Select all

#IFWinActive, ahk_exe notepad.exe
$*d:: ; $* both modifier required!
keywait, d, T0.5
if errorlevel { ; long press starts SendTimer no. 1:
	SoundBeep ; ^m, Sleep 1500, ^+v, Sleep 500, L 
	keywait, d ; after the D key has been released
	SendTimer(1, "{Ctrl Down}{m}{Ctrl Up}{1500}"
.	"{Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up}{50}L")
} else Send d ; short press
keywait, d
return
#IFWinActive
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 10:25

As always, many thanks> Gives me error at "SendTimer(1, "{Ctrl Down}{m}{Ctrl Up}{1500}"".
Rohwedder
Posts: 7659
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Long press is not working

17 Apr 2024, 10:32

Have you forgotten to add or include the SendTimer functions?
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 10:48

My bad. Sorry to have wasted your time. I corrected my mistake (I think) and used the following code. This time long press does not work. While I am holding the d key down, it triggers the d command like short press (even before I have released the d key. ty.

Code: Select all

#IFWinActive, ahk_exe notepad.exe
$*d:: ; $* both modifier required!
keywait, d, T0.5
if errorlevel { ; long press starts SendTimer no. 1:
	SoundBeep ; ^m, Sleep 1500, ^+v, Sleep 500, L 
	keywait, d ; after the D key has been released
	SendTimer(1, "{Ctrl Down}{m}{Ctrl Up}{1500}"
.	"{Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up}{50}L")
} else Send d ; short press
keywait, d
return
#IFWinActive

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SendTimer(N, Output:="", Delay:=-100, AddRandom:=0)
{   Local D, C ;global Pseudo-Arrays: Ο%%, Τ%%, Δ%%, Ρ%%
    If (N>0 And Ο%N%>"") ;Update lock
        Return ;with Ο:Omikron, Τ:Tau, Δ:Delta, P:Rho
    Critical,% (C:=A_IsCritical)?:"Off"
    N:=Abs(N), Ο%N%:=Τ%N%:=Output, D:=Abs(Δ%N%:=Delay)
    Random, D, D, D+Ρ%N%:=AddRandom, N:=Func("T").Bind(N)
	SetTimer,% N,% (""<Output)?D*(Delay>0):"Off"
    Critical,% C?:"Off" ;restore original criticality
    Return
}
T(N) ; called by SendTimer(), Timer function
{   Static Needle:="\{([0-9\-]{2,}|%.+%)\}|\{[^\}]*\}|."
    , BlindText:="{Blind}{Text}", Label:="SendTimerOff-"
    Critical
    Random, D, D:=Abs(Δ%N%),D+Ρ%N%,RegExMatch(Τ%N%,Needle,K)
    Random, K1, !(R:=StrSplit(K1,"-")) R.1, Max(0 R.1, 0 R.2)
    SendInput,% (StrLen(K)=1)?BlindText K:(K1?:D(K))
    SetTimer,,% D:=("0"<K1 Τ%N%:=StrReplace(Τ%N%, K,,, 1))
    ?Max(D, K1?D(K1):0):(Δ%N%>0)?(D, Τ%N%:=Ο%N%):"Off"
    IF !++D And (!Ο%N%:="") And IsLabel(D:=Label N)
        SetTimer,% D, -10 ;jump to Label SendTimerOff-N
    Exit
}
D(K) ; called by T(), Deref function expands variable references
{   Static Needle := "%(.*?)%", Pos:=1
    While, Pos:=RegExMatch(K, Needle, M, Old:=Pos+StrLen(M))
        Out .= SubStr(K, Old, Pos-Old) %M1%
    Return, Out SubStr(K, Old), Pos:=1
}
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Rohwedder
Posts: 7659
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Long press is not working

17 Apr 2024, 11:15

I have placed a Sleep 100 before the ^m:

Code: Select all

#IFWinActive, ahk_exe notepad.exe
$*d:: ; $* both modifier required!
keywait, d, T0.5
if errorlevel { ; long press starts SendTimer no. 1:
	SoundBeep ; Sleep 100, ^m, Sleep 1500, ^+v, Sleep 500, L
	keywait, d ; after the D key has been released
	SendTimer(1, "{100}{Ctrl Down}{m}{Ctrl Up}{1500}"
.	"{Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up}{50}L")
} else Send d ; short press
keywait, d
return
#IFWinActive

;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
SendTimer(N, Output:="", Delay:=-100, AddRandom:=0)
{   Local D, C ;global Pseudo-Arrays: Ο%%, Τ%%, Δ%%, Ρ%%
    If (N>0 And Ο%N%>"") ;Update lock
        Return ;with Ο:Omikron, Τ:Tau, Δ:Delta, P:Rho
    Critical,% (C:=A_IsCritical)?:"Off"
    N:=Abs(N), Ο%N%:=Τ%N%:=Output, D:=Abs(Δ%N%:=Delay)
    Random, D, D, D+Ρ%N%:=AddRandom, N:=Func("T").Bind(N)
	SetTimer,% N,% (""<Output)?D*(Delay>0):"Off"
    Critical,% C?:"Off" ;restore original criticality
    Return
}
T(N) ; called by SendTimer(), Timer function
{   Static Needle:="\{([0-9\-]{2,}|%.+%)\}|\{[^\}]*\}|."
    , BlindText:="{Blind}{Text}", Label:="SendTimerOff-"
    Critical
    Random, D, D:=Abs(Δ%N%),D+Ρ%N%,RegExMatch(Τ%N%,Needle,K)
    Random, K1, !(R:=StrSplit(K1,"-")) R.1, Max(0 R.1, 0 R.2)
    SendInput,% (StrLen(K)=1)?BlindText K:(K1?:D(K))
    SetTimer,,% D:=("0"<K1 Τ%N%:=StrReplace(Τ%N%, K,,, 1))
    ?Max(D, K1?D(K1):0):(Δ%N%>0)?(D, Τ%N%:=Ο%N%):"Off"
    IF !++D And (!Ο%N%:="") And IsLabel(D:=Label N)
        SetTimer,% D, -10 ;jump to Label SendTimerOff-N
    Exit
}
D(K) ; called by T(), Deref function expands variable references
{   Static Needle := "%(.*?)%", Pos:=1
    While, Pos:=RegExMatch(K, Needle, M, Old:=Pos+StrLen(M))
        Out .= SubStr(K, Old, Pos-Old) %M1%
    Return, Out SubStr(K, Old), Pos:=1
}
;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Of course, the Hotkey only triggers if Notepad is active and the SendTimer after releasing the D key (after the Soundbeep).
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 11:17

I changed the exe file label as I should have. Sorry, rushing at work. It now works bettwe. It performs 2/3 functions. It does ^M and the ^+V. But does not send "L". TY. Your help is greatly appreciated.
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 11:28

I added sleep 100 as you did but the final step of sending L still does not execute. Sorry to continue to bother you.
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

17 Apr 2024, 11:32

I put L as {L} but that did not help.
Rohwedder
Posts: 7659
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Long press is not working

18 Apr 2024, 01:34

Perhaps the lower case letter {l} is required or a longer keystroke time {l Down}{50}{l Up}?
If you have found a working SendTimer Output, try to find out whether it also works without:
keywait, d ; after the D key has been released
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

18 Apr 2024, 07:25

Thank you. I will try.
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

18 Apr 2024, 07:27

Curious. Why is command 1/3 (^M) is in one line but commands 2&3/3 are in the same line (^+V and L)? TY.
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

18 Apr 2024, 08:41

@Rohwedder Thank you for all your help and patience. The following seems to be working. Thanks.

Code: Select all

keywait, d, T0.5
if errorlevel { ; long press starts SendTimer no. 1:
	SoundBeep ; Sleep 100, ^m, Sleep 1500, ^+v, Sleep 500, L
	keywait, d ; after the D key has been released
	SendTimer(1, "{100}{Ctrl Down}{m}{Ctrl Up}{1500}"
.	"{Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up}{50}{l Down}{50}{l Up}")
} else Send d ; short press
keywait, d
Rohwedder
Posts: 7659
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Long press is not working

18 Apr 2024, 09:39

Curious. Why is command 1/3 (^M) is in one line but commands 2&3/3 are in the same line (^+V and L)? TY.
Reason: I find overlong script lines unattractive!
See https://www.autohotkey.com/docs/v1/Scripts.htm#continuation
Method #1: A line that starts with "and", "or", ||, &&, a comma, or a period is automatically merged with the line directly above it
and https://www.autohotkey.com/docs/v1/Variables.htm#operators
Concatenate. A period (dot) with at least one space or tab on each side is used to combine two items into a single string.
Instead of:

Code: Select all

	SendTimer(1, "{100}{Ctrl Down}{m}{Ctrl Up}{1500}"
.	"{Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up}{50}{l Down}{50}{l Up}")
you can also use:

Code: Select all

	SendTimer(1, "{100}{Ctrl Down}{m}{Ctrl Up}{1500}{Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up}{50}{l Down}{50}{l Up}")
A well-formed person is preferred to one who is not. I have transferred this prejudice to scripts.
Joey5
Posts: 83
Joined: 19 May 2023, 05:25

Re: Long press is not working

18 Apr 2024, 11:14

I agree entirely. Therefore, I had to try to split the following line into 2 separate scripts, one for ^+V and L. But it was giving me error. It kept saying " or bracket issue even though I was being careful. Curious how it could be split... TY for your help and educating me.

"{Ctrl Down}{Shift Down}{v}{Shift Up}{Ctrl Up}{50}{l Down}{50}{l Up}")

Return to “Ask for Help (v1)”

Who is online

Users browsing this forum: Bing [Bot], Orecalque1915, Tio_oddish, yakunins and 415 guests