Name
Name

Reputation: 359

Why autohotkey deos not send Ctrl-Space where Space is an input

Consider the following assignment: When I type - followed by a key, the result is Ctrl-key. This work for ordinary keys. But when the key is whitespace, it does not work.

Any idea why this happens? And how to fix the code?

-::
Input, key, L1,{LCtrl}
send, ^{%key%}
return

Edit. Try to run the above script a program which has Ctrl-Space as a shortcut to see that it does not work. In fact, if you press - followed by Space, the script is suppose to call Ctrl-Space but it is not the case. For example:

Upvotes: 0

Views: 555

Answers (1)

Kevin McCabe
Kevin McCabe

Reputation: 118

Use SendInput instead.

Tested in Excel to mimic ^a, ^x, ^v, ^space

-::
Input, key, L1,{LCtrl}
SendInput, ^%key%
Return

If you want to handle "special" keys, add those keys to the list of endkeys using this syntax

Input [, OutputVar, Options, EndKeys, MatchList]

And then check to see which endkey was pressed

Tested in Firefox to mimic ^PgDn, ^PgUp

Input, key, L1,{LCtrl}{PgUp}{PgDn}
If (ErrorLevel = "EndKey:PgUp") {
  SendInput ^{PgUp}
}
Else If (ErrorLevel = "EndKey:PgDn") {
  SendInput ^{PgDn}
}
Else If (ErrorLevel = "EndKey:LCtrl") {
  Return   ;assumed you just want to abort input with the control key
}
Else {
  SendInput, ^%key%
}
Return

Upvotes: 1

Related Questions