Ok, this time I am not going to repeat NumChord.

This time, I'll start from the bottom and develop it based on feedback. I haven't even tested this starting version yet, it's just a barebones.
The basic idea of this script is to provide a command-line interface that you can set shortcuts and prefixes for, like SlickRun or LiteStep. The core ideas I have right now are a configuration gui for the shortcuts/program settings and a basic command line input. Windows already supports command shortcuts, this will simply provide an easier way to access them and a more convenient and specialized command line than the Run... dialog.
For more info on what I'm talking about, check out
this site and
this one too.
Anyway, the code below is all I have right now. This is the start of code that will convert SlickRun's .qrs files to the reg keys and shortcuts this program will use.
I'm not even going to start writing the real script until I know exactly what I'll be aiming for, and what the ideas I want to implement are. Feedback if you're interested, plz!
Code:
IniRead,InputBoxW,TrickRun.ini,CommandLine,Width
IniRead,InputBoxH,TrickRun.ini,CommandLine,Height
IniRead,InputBoxX,TrickRun.ini,CommandLine,PositionX
IniRead,InputBoxY,TrickRun.ini,CommandLine,PositionY
IniRead,Cursor,TrickRun.ini,CommandLine,ChaseCursor
; This loop reads and parses INI files. Thanks to BoBo.
Loop,Read,Test.qrs
{
IfInString,A_LoopReadLine,[
{
SectionCount ++
Section%SectionCount% = %A_LoopReadLine%
}
IfInString,A_LoopReadLine,`=
{
ValueCount ++
StringSplit,Field%ValueCount%_,A_LoopReadLine,`=
}
}
; This trims the Section array of braces and reassigns it.
Loop,%SectionCount%
{
StringLen,HowMany,Section%A_Index%
StringLeft,ThisSection,Section%A_Index%,%HowMany%
StringTrimLeft,ThisSection,ThisSection,1
StringTrimRight,ThisSection,ThisSection,1
TrickWord%A_Index% = %ThisSection%
}
; This was to be the section that assigned the labels.
; Originally, the script was going to run off of INI files,
; reading them and assigning labels to shortcuts on the
; fly.
Loop,%SectionCount%
{
Break
}
SetTimer,ChaseCursor,25
Return
#q::
; The Input box is supposed to be the command line.
; Later on though, I'll use an element that's more configurable.
InputBox,TW,TrickRun,,,%InputBoxW%,%InputBoxH%,%InputBoxX%,%InputBoxY%
Loop,%SectionCount%
{
If TW = TrickWord%A_Index%
{
Gosub, %TW%
Break
}
Else
Continue
}
Return
ChaseCursor:
SetTimer,ChaseCursor,Off
If Cursor = 1
Hotkey,#q,Chase
Return
Chase:
MouseGetPos, MouseX, MouseY
InputBoxX = %MouseX%
InputBoxY = %MouseY%
InputBox,TW,TrickRun,,,%InputBoxW%,%InputBoxH%,%InputBoxX%,%InputBoxY%
Loop,%SectionCount%
{
If TW = TrickWord%A_Index%
{
Gosub, %TW%
Break
}
Else
Continue
}
Return
Any new ideas are very welcome!