CAPshift slows down and extends the caps lock key.
Hold down caps lock for 0.4 sec to toggle caps lock on or off.
Hold for 0.9 sec to show a menu that converts selected text to UPPER CASE, lower case, Title Case or iNVERT cASE.
Some of the ideas came from Ampa on another forum.
Skrommel
;CAPshift.ahk
;Slows down and extends the cap locks key.
;
;Hold for 0.4 sec to toggle caps lock on or off.
;Hold for 0.9 sec to show a menu that converts selected text to
; UPPER CASE, lower case, Title Case or iNVERT cASE.
;Skrommel @2005
SetTimer,TOOLTIP,1500
SetTimer,TOOLTIP,Off
CapsLock::
counter=0
Loop,90
{
Sleep,10
counter+=1
If counter=40
SoundPlay,%SYSTEMROOT%\Media\ding.wav
GetKeyState,state,CapsLock,P
If state=U
Break
}
If counter=90
Gosub,MENU
Else
If counter>40
{
GetKeyState,state,CapsLock,T
If state=D
Gosub,OFF
Else
Gosub,ON
}
Return
MENU:
Menu,convert,Add
Menu,convert,Delete
Menu,convert,Add,CAPshift,EMPTY
Menu,convert,Add,
Menu,Convert,Add,CapsLock &On,On
Menu,Convert,Add,&CapsLock Off,Off
Menu,convert,Add,
Menu,convert,Add,&UPPER CASE,UPPER
Menu,convert,Add,&lower case,LOWER
Menu,convert,Add,&Title Case,TITLE
Menu,convert,Add,&iNVERT cASE,INVERT
Menu,convert,Add,
Menu,convert,Add,&About,ABOUT
Menu,convert,Add,&Quit,QUIT
Menu,convert,Default,CapShift
Menu,convert,Show
Return
EMPTY:
Return
TOOLTIP:
ToolTip,
SetTimer,TOOLTIP,Off
Return
ON:
SetCapsLockState,On
ToolTip,CapsLock On
SetTimer,TOOLTIP,On
Return
OFF:
SetCapsLockState,Off
ToolTip,CapsLock Off
SetTimer,TOOLTIP,On
Return
CUT:
Send,^x
ClipWait,1
string=%clipboard%
Return
PASTE:
clipboard=%string%
Send,^v
Return
UPPER:
Gosub,CUT
StringUpper,string,string
Gosub,PASTE
ToolTip,Selection converted to UPPER CASE
SetTimer,TOOLTIP,On
Return
LOWER:
Gosub,CUT
StringLower,string,string
Gosub,PASTE
ToolTip,Selection converted to lower case
SetTimer,TOOLTIP,On
Return
TITLE:
Gosub,CUT
StringLower,string,string,T
Gosub,PASTE
ToolTip,Selection converted to Title Case
SetTimer,TOOLTIP,On
Return
INVERT:
AutoTrim,Off
StringCaseSense,On
Gosub,CUT
lower=abcdefghijklmnopqrstuvwxyzæøå
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ
StringLen,length,string
Loop,%length%
{
StringLeft,char,string,1
StringGetPos,pos,lower,%char%
pos+=1
If pos<>0
StringMid,char,upper,%pos%,1
Else
{
StringGetPos,pos,upper,%char%
pos+=1
If pos<>0
StringMid,char,lower,%pos%,1
}
StringTrimLeft,string,string,1
string=%string%%char%
}
ToolTip,Selection converted to iNVERTED cASE
SetTimer,TOOLTIP,On
Gosub,PASTE
Return
ABOUT:
MsgBox,0,CAPshift,CAPshift slows down and extends the caps lock key.`n`nHold down caps lock for 0.4 sec to toggle caps lock on or off.`nHold for 0.9 sec to show a menu that converts selected text to UPPER CASE, lower case, Title Case or iNVERT cASE.`n`nSkrommel @2005
Return
QUIT:
ExitApp





