[deleted] Topic is solved

Get help with using AutoHotkey (v1.1 and older) and its commands and hotkeys
erose524
Posts: 3
Joined: 14 May 2018, 07:51

[deleted]

14 May 2018, 08:09

[deleted]
Last edited by erose524 on 21 Oct 2023, 17:17, edited 1 time in total.
Qysh
Posts: 143
Joined: 24 Apr 2018, 09:16

Re: Code won't type letters

14 May 2018, 08:31

Try to understand and learn from it ;)

If you only want to fix your code use Send, {A} Read here : https://autohotkey.com/docs/commands/Send.htm

For all keys (single):

Code: Select all

#NoEnv
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#MaxThreadsPerHotkey 255
#KeyHistory 0
SetWorkingDir %A_ScriptDir%
SendMode Input

lastkeypressed = ""
global lastkeypressed
return

doubleCheck(key)
{
	if(key == lastkeypressed)
	{
		send_key = ""
		StringUpper, send_key, key
		Send, %send_key%
		lastkeypressed = ""
	}
	else
	{
		send_key = %key%
		if(GetKeyState("Shift", "p"))
		{
			StringUpper, send_key, key
		}
		Send, %key%
		lastkeypressed = %key%
	}
}

$*A::doubleCheck("a")
$*B::doubleCheck("b")
$*C::doubleCheck("c")
$*D::doubleCheck("d")
$*E::doubleCheck("e")
$*F::doubleCheck("f")
$*G::doubleCheck("g")
$*H::doubleCheck("h")
$*I::doubleCheck("i")
$*J::doubleCheck("j")
$*K::doubleCheck("k")
$*L::doubleCheck("l")
$*M::doubleCheck("m")
$*N::doubleCheck("n")
$*O::doubleCheck("o")
$*P::doubleCheck("p")
$*Q::doubleCheck("q")
$*R::doubleCheck("r")
$*S::doubleCheck("s")
$*T::doubleCheck("t")
$*U::doubleCheck("u")
$*V::doubleCheck("v")
$*W::doubleCheck("w")
$*X::doubleCheck("x")
$*Y::doubleCheck("y")
$*Z::doubleCheck("z")
All keys (double):

Code: Select all

#NoEnv
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#MaxThreadsPerHotkey 255
#KeyHistory 0
SetWorkingDir %A_ScriptDir%
SendMode Input

lastkeypressed = ""
global lastkeypressed
return

doubleCheck(key)
{
	if(key == lastkeypressed)
	{
		send_key = ""
		StringUpper, send_key, key
		Send, %send_key%
		lastkeypressed = ""
	}
	else
	{
		send_key = %key%
		if(GetKeyState("Shift", "p"))
		{
			StringUpper, send_key, key
		}
		Send, %key%
		lastkeypressed = %key%
	}
}

~$*A::doubleCheck("a")
~$*B::doubleCheck("b")
~$*C::doubleCheck("c")
~$*D::doubleCheck("d")
~$*E::doubleCheck("e")
~$*F::doubleCheck("f")
~$*G::doubleCheck("g")
~$*H::doubleCheck("h")
~$*I::doubleCheck("i")
~$*J::doubleCheck("j")
~$*K::doubleCheck("k")
~$*L::doubleCheck("l")
~$*M::doubleCheck("m")
~$*N::doubleCheck("n")
~$*O::doubleCheck("o")
~$*P::doubleCheck("p")
~$*Q::doubleCheck("q")
~$*R::doubleCheck("r")
~$*S::doubleCheck("s")
~$*T::doubleCheck("t")
~$*U::doubleCheck("u")
~$*V::doubleCheck("v")
~$*W::doubleCheck("w")
~$*X::doubleCheck("x")
~$*Y::doubleCheck("y")
~$*Z::doubleCheck("z")
Only for "a":

Code: Select all

#NoEnv
#MaxHotkeysPerInterval 99000000
#HotkeyInterval 99000000
#MaxThreadsPerHotkey 255
#KeyHistory 0
SetWorkingDir %A_ScriptDir%
SendMode Input

lastkeypressed = ""
global lastkeypressed
return

doubleCheck(key)
{
	if(key == lastkeypressed)
	{
		send_key = ""
		StringUpper, send_key, key
		Send, %send_key%
		lastkeypressed = ""
	}
	else
	{
		send_key = %key%
		if(GetKeyState("Shift", "p"))
		{
			StringUpper, send_key, key
		}
		Send, %key%
		lastkeypressed = %key%
	}
}

~$*A::doubleCheck("a")
wolf_II
Posts: 2688
Joined: 08 Feb 2015, 20:55

Re: Program won't type letters

14 May 2018, 08:50

Try this:

Code: Select all

case = 0
a::
if case = 0                     ; <<<< here
{
  ClipSaved := Clipboard
  Clipboard= a
  send, ^v                      ; <<<< here
  Clipboard= %ClipSaved%
  case = 1
}
else                            ; <<<< here
{
  ClipSaved := Clipboard
  Clipboard= A
  send, ^v                      ; <<<< here
  Clipboard= %ClipSaved%
  case = 0
}
I hope this helps.
User avatar
Era
Posts: 26
Joined: 28 Apr 2018, 22:36

Re: Code won't type letters

14 May 2018, 08:52

Isn't there an AHK equivalent of something like this:

If Asc(s) > 96 Then
s = UCase(s)
Else
s = LCase(s)
End If
wolf_II
Posts: 2688
Joined: 08 Feb 2015, 20:55

Re: Code won't type letters

14 May 2018, 09:03

There are more errors in OP script.

First, like Qysh already said, use Send.
Second, a logic error: case=1 will never properly execute, it will at present execute immediately after case=0.
Last: syntax error here: corrected version is if case = 0.

Code: Select all

case = 0
a::
if case = 0                     ; <<<< here
{
  ClipSaved := Clipboard
  Clipboard= a
  send, ^v                      ; <<<< here
  Clipboard= %ClipSaved%
  case = 1
}
else                            ; <<<< here
{
  ClipSaved := Clipboard
  Clipboard= A
  send, ^v                      ; <<<< here
  Clipboard= %ClipSaved%
  case = 0
}
erose524
Posts: 3
Joined: 14 May 2018, 07:51

[deleted]

14 May 2018, 11:40

[deleted]
Last edited by erose524 on 21 Oct 2023, 17:17, edited 1 time in total.
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: Code won't type letters

24 May 2018, 18:11

tRy ThIs. ChEeRs.

Code: Select all

;switch between upper/lower case letters when typing lower case letters
;put at the top the of script (in the auto-execute section)
Loop, 26
	Hotkey, % "$" Chr(96+A_Index), SubInvertLetter
return

;q::
;w::
;e::
SubInvertLetter:
vLetter := SubStr(A_ThisHotkey, StrLen(A_ThisHotkey))
vToggle := !vToggle
SendInput, % Format(vToggle ? "{:L}" : "{:U}", vLetter)
return
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
Rohwedder
Posts: 7633
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Code won't type letters

25 May 2018, 04:11

Hallo,
or this:

Code: Select all

SetStoreCapsLockMode, Off
Loop
{
Input, Key, VL1
If Key is alpha
	Send {CapsLock}
}

Return to “Ask for Help (v1)”

Who is online

Users browsing this forum: Anput, Joey5, RandomBoy and 320 guests