TypingAid v2.22.0 - Word AutoCompletion Utility

Post your working scripts, libraries and tools for AHK v1.1 and older
Cara

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

05 Apr 2017, 08:58

Hello Maniac,

yes how would i remove the x100 i just typed while inserting a phrase i selected from the popup.

I just dont need the x100 any more.

Remove the first 4 characters i typed ?
Maniac
Posts: 121
Joined: 24 Oct 2014, 07:15
Contact:

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

05 Apr 2017, 09:14

So you'll need to detect that the phrase began with x100 (Using StringLeft or SubStr, then comparing to x100) and if it does, remove it (using StringTrimLeft).
Ovg
Posts: 23
Joined: 19 Feb 2017, 01:13

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

05 Apr 2017, 11:17

Why not to use

Code: Select all

RegExReplace()
?
It's impossible to lead us astray for we don't care even to choose the way.
Cara

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

05 Apr 2017, 12:37

Hello folks,

oops it seems I made it very complicated now for a newbie.

Well the idea was - if any one has used phrase express

it deletes the text you just entered , and then inserts the autotext.

so i guess i was tryign to emulate that.

But i have no idea after a few days trying to figure it out.

btw::by the way hello

in a normal hotstring the btw gets replaced with the phrase.

I was trying to replace my phrase the same way

so get rid of what ever x100 or FD2RG i enter while replacign the phrase

I hope that makes sense, sorry for my newbiness
Ovg
Posts: 23
Joined: 19 Feb 2017, 01:13

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

05 Apr 2017, 13:30

2Maniac
:lol: :bravo:
It's impossible to lead us astray for we don't care even to choose the way.
Maniac
Posts: 121
Joined: 24 Oct 2014, 07:15
Contact:

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

06 Apr 2017, 07:01

Cara wrote:Hello folks,

oops it seems I made it very complicated now for a newbie.

Well the idea was - if any one has used phrase express

it deletes the text you just entered , and then inserts the autotext.

so i guess i was tryign to emulate that.

But i have no idea after a few days trying to figure it out.

btw::by the way hello

in a normal hotstring the btw gets replaced with the phrase.

I was trying to replace my phrase the same way

so get rid of what ever x100 or FD2RG i enter while replacign the phrase

I hope that makes sense, sorry for my newbiness

Is this what you want??
Word replacements can be added to 'Wordlist.txt' that will appear in the wordlist next to the word. These replacements should be in the form of <word>|r|<description>, e.g., fire|r|fuego. When the word is chosen, it will be backspaced out and replaced with the new word. If Case Correction is off, the first letter will be changed to match the case of the word being replaced. This could be used for spelling replacements, text expansion, or translation aids. Multiple replacements can be defined for a word (put each on a separate line).
Cara

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

06 Apr 2017, 13:40

Hello Maniac,

yes i think this is what I was trying to explain.

get rid of the word I just entered and replace with the autotext

Let me test this out it takes me time to get to know how to use these complex programs.


thank you

I'll be back :)
Cara

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

06 Apr 2017, 22:00

Hello Maniac,

as you can see I am as dim as they come well after doing the wrong thing for a while. :crazy:

I managed to finally get it to work. :dance:

Don't ask me what I did - I think i went down the complete wrong road, im no programmer

But Im so happy -
thank you for all your help - you are Awesome !

I will be using this alot - for all my typing now, I have alot of text to paste into my word list.

I am trying to switch from phrase express as I cant export my data once i put it in phrase express -
I have to manually copy and paste my text blocks out of phrase express and I cant do that it hurts my hands with rsi - its too much work
this lets me to paste my text into a file and makes life easier for me

Thanks again
Happy holidays!
Easter Break

Cara
User avatar
littlegandhi1199
Posts: 195
Joined: 29 Aug 2016, 23:58

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

11 Jul 2017, 01:28

Great share. But I still think this is best for no-nonsense http://wordlist.aspell.net/12dicts/
The 12dicts lists are oriented towards common words. If you're looking for myriads of archaic, scientific or computer jargon words, you should look elsewhere.
Script Backups on every Execution :mrgreen:
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=75767&p=328155#p328155

Scrabble Solver 4-15 letter word outputs ( :crazy: # of inputs)
https://www.autohotkey.com/boards/viewtopic.php?f=19&t=34285
nami1011
Posts: 1
Joined: 09 Aug 2017, 20:22

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

09 Aug 2017, 23:57

Greetings!

Our company plans to provide our software together with typingAid as our complehensive system solution
in order to assist our clients in typing with the AutoCompletion Utility.
We just provide the tool, but don't embed the source code of typingAid into our software.

From a legal point of view, are we allowed to use that tool for our business, is it a free license?
It would be appreciated if someone could give answer by 18th August.

Thanks,
Nami Manabe
Maniac
Posts: 121
Joined: 24 Oct 2014, 07:15
Contact:

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

10 Aug 2017, 05:54

It's licensed under GPLv3. You have to include the source code or provide an obvious way to get the source code. If you modify it, you must indicate that you've modified it. Anything which builds off this project must also be GPLv3 (I don't think that would include a separate tool in a bundle).

https://gist.github.com/kn9ts/cbe95340d ... 5c059d2e60
https://tldrlegal.com/license/gnu-gener ... v3-(gpl-3)
https://www.gnu.org/licenses/quick-guide-gplv3.en.html
https://github.com/ManiacDC/TypingAid/b ... er/LICENSE
nami1011
Posts: 1
Joined: 09 Aug 2017, 20:22

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

13 Aug 2017, 23:37

Hello Maniac,

Thank you for your prompt reply.

Actually, we just include TypingAid in a bundle of our system solution,
but we don't embed its source code into our software.

Even in this case, should we disclose the source code of our software?

Best regards,
Nami Manabe
Maniac
Posts: 121
Joined: 24 Oct 2014, 07:15
Contact:

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

14 Aug 2017, 06:56

No, you just need to include the TypingAid source code.
Judykator

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

10 Sep 2017, 03:57

Is it possible for a program to simulate a particular key combination?

For example
xyz|r|{tab + enter]
Maniac
Posts: 121
Joined: 24 Oct 2014, 07:15
Contact:

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

11 Sep 2017, 06:04

Not out of the box, you could possibly modify Sending.ahk to do this for you:
https://autohotkey.com/docs/commands/Send.htm
nilsonrdg
Posts: 23
Joined: 16 Feb 2017, 16:05
Location: Brazil
Contact:

Re: Sharing some issues, questions and ideas about TypingAid

17 Sep 2017, 08:53

There's already Pause functionality in TypingAid... why not just call that?
I know that I can click on the system tray icon and pause, but it's time-consuming. Is there a hotkey in the script?

About the "address case", I believe it could be useful when there's only a part of the text that changes (in the address case, the number in the wordlist could be a variable automaticly selected to change after the text have been sent).

In my work, would be useful to pause the script after each sent word, I tried to insert "pause on" in sending.ahk file, but I don't know where to pause without causing some problem.

For example, I made some changes in sending.ahk (the function highlighted ';xxxxxxx' in the end of the code below), it worked but if I use a number to select a word, that key is locked.

Code: Select all


; These functions and labels are related to sending the word to the program

SendKey(Key)
{
   IfEqual, Key, $^Enter
   {
      Key = ^{Enter}
   } else IfEqual, Key, $^Space
   { 
      Key = ^{Space}
   } else {
      Key := "{" . SubStr(Key, 2) . "}"
   }
   
   SendCompatible(Key,1)
   Return
}

;------------------------------------------------------------------------
   
SendWord(WordIndex)
{
   global g_SingleMatch
   global g_SingleMatchReplacement
   ;Send the word
   if (g_SingleMatchReplacement[WordIndex])
   {
      sending := g_SingleMatchReplacement[WordIndex]
      ForceBackspace := true
   } else {
      sending := g_SingleMatch[WordIndex]
      ForceBackspace := false
   }

   ; Update Typed Count
   UpdateWordCount(sending,0)
   SendFull(sending, ForceBackspace)   
   ClearAllVars(true)

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

;Inserted by me
NumberingAddress(sending)

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

   Return
}  

;------------------------------------------------------------------------
            
SendFull(SendValue,ForceBackspace=false)
{
   global g_Active_Id
   global g_Word
   global prefs_AutoSpace
   global prefs_NoBackSpace
   global prefs_SendMethod
   
   SwitchOffListBoxIfActive()
   
   BackSpaceLen := StrLen(g_Word)
   
   if (ForceBackspace || prefs_NoBackspace = "Off") {
      BackSpaceWord := true
   }
   
   ; match case on first letter if we are forcing a backspace AND CaseCorrection is off
   if (ForceBackspace && !(prefs_NoBackspace = "Off")) {
      IfEqual, A_IsUnicode, 1
      {
         if ( RegExMatch(Substr(g_Word, 1, 1), "S)\p{Lu}") > 0 )  
         {
            Capitalize := true
         }
      } else if ( RegExMatch(Substr(g_Word, 1, 1), "S)[A-ZÀ-ÖØ-ß]") > 0 )
      {
         Capitalize := true
      }
      
      StringLeft, FirstLetter, SendValue, 1
         StringTrimLeft, SendValue, SendValue, 1
      if (Capitalize) {
         StringUpper, FirstLetter, FirstLetter
      } else {
         StringLower, FirstLetter, FirstLetter
      }
      SendValue := FirstLetter . SendValue
   }
   
   ; if the user chose a word with accented characters, then we need to
   ; substitute those letters into the word
   StringCaseSenseOld := A_StringCaseSense
   StringCaseSense, Locale   
   if (!BackSpaceWord && !(SubStr(SendValue, 1, BackSpaceLen) = g_Word)) {
      BackSpaceWord := true
      
      SendIndex := 1
      WordIndex := 1
      NewSendValue =
      While (WordIndex <= BackSpaceLen) {
         SendChar := SubStr(SendValue, SendIndex, 1)
         WordChar := SubStr(g_Word, WordIndex, 1)
         SendIndex++
         
         if (SendChar = WordChar) {
            WordIndex++
            NewSendValue .= WordChar
         } else {
            
            SendCharNorm := StrUnmark(SendChar)
            ; if character normalizes to more than 1 character, we need
            ; to increment the WordIndex pointer again
            
            StringUpper, SendCharNormUpper, SendCharNorm
            StringLower, SendCharNormLower, SendCharNorm
            StringUpper, SendCharUpper, SendChar
            StringLower, SendCharLower, SendChar
            WordChar := SubStr(g_Word, WordIndex, StrLen(SendCharNorm))
            
            if (SendCharNorm == WordChar) {
               NewSendValue .= SendChar
            } else if (SendCharNormUpper == WordChar) {
               NewSendValue .= SendCharUpper
            } else if (SendCharNormLower == WordChar) {
               NewSendValue .= SendCharLower
            } else {
               NewSendValue .= SendChar
            }
            WordIndex += StrLen(SendCharNorm)
         }
      }
      
      NewSendValue .= SubStr(SendValue, SendIndex, StrLen(SendValue) - SendIndex + 1)
      
      SendValue := NewSendValue
   }
   StringCaseSense, %StringCaseSenseOld%
   
   ; If we are not backspacing, remove the typed characters from the string to send
   if !(BackSpaceWord)
   {
      StringTrimLeft, SendValue, SendValue, %BackSpaceLen%
   }
   
   ; if autospace is on, add a space to the string to send
   IfEqual, prefs_AutoSpace, On
      SendValue .= A_Space
   
   IfEqual, prefs_SendMethod, 1
   {
      ; Shift key hits are here to account for an occassional bug which misses the first keys in SendPlay
      sending = {Shift Down}{Shift Up}{Shift Down}{Shift Up}      
      if (BackSpaceWord)
      {
         sending .= "{BS " . BackSpaceLen . "}"
      }
      sending .= "{Raw}" . SendValue
  
      SendPlay, %sending% ; First do the backspaces, Then send word (Raw because we want the string exactly as in wordlist.txt) 
      Return
   }

   if (BackSpaceWord)
   {
      sending = {BS %BackSpaceLen%}{Raw}%SendValue%
   } Else {
      sending = {Raw}%SendValue%
   }
   
   IfEqual, prefs_SendMethod, 2
   {
      SendInput, %sending% ; First do the backspaces, Then send word (Raw because we want the string exactly as in wordlist.txt)      
      Return
   }

   IfEqual, prefs_SendMethod, 3
   {
      SendEvent, %sending% ; First do the backspaces, Then send word (Raw because we want the string exactly as in wordlist.txt) 
      Return
   }
   
   ClipboardSave := ClipboardAll
   Clipboard = 
   Clipboard := SendValue
   ClipWait, 0
   
   if (BackSpaceWord)
   {
      sending = {BS %BackSpaceLen%}{Ctrl Down}v{Ctrl Up}
   } else {
   sending = {Ctrl Down}v{Ctrl Up}
   }
   
   IfEqual, prefs_SendMethod, 1C
   {
      sending := "{Shift Down}{Shift Up}{Shift Down}{Shift Up}" . sending

      SendPlay, %sending% ; First do the backspaces, Then send word via clipboard
   } else IfEqual, prefs_SendMethod, 2C
   {
      SendInput, %sending% ; First do the backspaces, Then send word via clipboard
   } else IfEqual, prefs_SendMethod, 3C
   {
      SendEvent, %sending% ; First do the backspaces, Then send word via clipboard
   } else {
      ControlGetFocus, ActiveControl, ahk_id %g_Active_Id%
      IfNotEqual, ActiveControl,
         ControlSend, %ActiveControl%, %sending%, ahk_id %g_Active_Id%
   }
         
   Clipboard := ClipboardSave
   Return
}

;------------------------------------------------------------------------

SendCompatible(SendValue,ForceSendForInput)
{
   global g_IgnoreSend
   global prefs_SendMethod
   IfEqual, ForceSendForInput, 1
   {
      g_IgnoreSend = 
      SendEvent, %SendValue%
      Return
   }
   
   SendMethodLocal := SubStr(prefs_SendMethod, 1, 1)
   IF ( ( SendMethodLocal = 1 ) || ( SendMethodLocal = 2 ) )
   {
      SendInput, %SendValue%
      Return
   }

   IF ( ( SendMethodLocal = 3 ) || ( SendMethodLocal = 4 ) )
   {
      g_IgnoreSend = 1
      SendEvent, %SendValue%
      Return
   }
   
   SendInput, %SendValue%   
   Return
}

;------------------------------------------------------------------------

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

;Inserted by me

NumberingAddress(address)
{

 SendingVariable =,  -

        StringGetPos, PosNumero, address,%SendingVariable%
        
        StringLen, CompEnd, address
        
        Recuo :=  CompEnd -  PosNumero - 2 
        
        
        if (PosNumero > 0)
        {
            Loop %Recuo%
            {
            Send, {LEFT}
            }
        }

Pause, ON

}


; to turn pause on/off

^!0::
Pause, On
Return

^!9::
Pause, Off
ClearAllVars(true)
Return

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Maniac
Posts: 121
Joined: 24 Oct 2014, 07:15
Contact:

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

18 Sep 2017, 06:42

That's because using a number key to select a word uses a hotkey, I guess if you pause a script in a hotkey it causes a problem for that key? What if you Suspend the hotkeys and pause the script?
nilsonrdg
Posts: 23
Joined: 16 Feb 2017, 16:05
Location: Brazil
Contact:

Re: TypingAid v2.22.0 - Word AutoCompletion Utility

18 Sep 2017, 07:54

I used the commands:

Code: Select all

Suspend, on
pause, on,1
in the end of the function below and it worked.

Code: Select all

NumberingAddress(address)
{

 SendingVariable =,  -

        StringGetPos, PosNumero, address,%SendingVariable%
        
        StringLen, CompEnd, address
        
        Recuo :=  CompEnd -  PosNumero - 2 
        
        
        if (PosNumero > 0)
        {
            Loop %Recuo%
            {
            Send, {LEFT}
            }
        }
        
Suspend, on
pause, on,1

}

Return to “Scripts and Functions (v1)”

Who is online

Users browsing this forum: No registered users and 88 guests