[*] I've confirmed this is an issue with the SEND command and not the variable string by using MSGBOX to display the variable immediately after the SEND command. The MSGBOX shows the variable is correct.
[*] I've confirmed it's shifting the number key and not a static substitution by swapping out the number being sent and the placement of upper case letters
Example1:
Variable = P1BEO10
SEND will sometimes send "P!BEO10"
"1" was replaced with [SHIFT+1], AKA "!"
Example2:
Variable = P2BEO10
SEND will sometimes send "P@BEO10"
"2" was replaced with [SHIFT+2], AKA "@"
Shows it doesn't matter what number is following an uppercase letter
Example3:
Variable = P1beO10
SEND will sometimes send "P!beO10"
"1" was replaced with [SHIFT+1], AKA "!"
Shows it doesn't matter if the number is followed by an uppercase letter
Example4:
Variable = PbeO10
SEND will sometimes send "PbeO!0"
"1" was replaced with [SHIFT+1], AKA "!"
Shows it doesn't matter where the number is in the string, but appears to only be the first number in a string following an uppercase letter
Example5:
Variable = p1beo10
SEND sends the string correctly every time (no preceding uppercase letter)
Shows the number has to be preceded by an uppercase letter
Example6:
Sending the prefix separately from the final two digits in two separate send commands also results in the problem
SEND variable containing "P1BEO"
SEND variable containing "10"
result: P1BEO!0
Full Code below:
Code: Select all
^!Numpad1::
; set/empty variables
clipboard =
EPISODE =
SET =
TEMP =
; copy current splitter name
Send ^a
Sleep, 10
Send ^c
ClipWait
; set variables for new episode and set numbers from splitter
StringRight, SET, clipboard, 2 ; copy set number from clipboard into SET variable
;MsgBox %SET%
StringLeft, TEMP, clipboard, 2 ; 1st two of splitter to temp variable
;MsgBox %TEMP%
SETEPISODE:
EPISODE = P1BEO%TEMP% ; episode is prefix + TEMP variable
;MsgBox %EPISODE%
; check variables
;verifies if EPISODE variable contains !
IfinString, EPISODE, !
{
MsgBox %EPISODE% SET-%SET%
GoSub, SETEPISODE
}
ELSE {}
;Paste new Episode and Set into splitter setup
Send {TAB 2}
;Sleep, 20
Send %EPISODE%
MsgBox, %EPISODE%
Send {TAB 3}
Send %SET%
Send {TAB 7}
;Clear Variables
EPISODE =
SET =
TEMP =