Jump to content

Recommended Posts

Posted (edited)

Hi,

I noted that my hotstrings don't work anymore after a while. No problems at start-up.

All other scripts in my .au3 file do work without problems.

I have to reboot the .au3 file in order to let my hotstrings work again.

Why do my hotstrings go in standby after a while?

I wish you all a happy new year 2015!

Remin

ps: I have the latest version

Edited by remin
Posted (edited)

I keep getting the atached error. It seems to occur randomly and can happen even an some hour or more after starting.

Also I get the same bug as remin. I'm finding that the hotstrings randomly seem to stop responding, although the script is still running, and normal hotkeys still work perfectly.

I had thought it was due to a function logger I added at the same time, but doesn't seem to be. I got around it by automatically regularly restarting my script.

Both errors have started recently and since an upgrade from XP to Win7.

If you have any error code you want me to add and send you logs, I'm happy to do so. I'm running hotstrings approx 8hrs/weekday, so could help to pick up intermittent bugs.

David

post-75610-0-20266100-1420555831_thumb.j

Edited by dgm5555
Posted

The problem I am experiencing is that the text replacement works fine for a while, and then I start to get a repetitive "I" sent as if it's from the keyboard. The following is my code, it is loading a text file at startup and using that to establish the array. The text file is 1077 lines long:

#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
#include <HotString.au3>

Opt("SendKeyDelay", 0)
Opt("SendKeyDownDelay", 1)

Global $aRetArray, $sFilePath = @ScriptDir & "\Test.txt"

FileLoad()

SetHotStrings()

While 1
    Sleep(100)
WEnd

Func FileLoad()

    _FileReadToArray($sFilePath, $aRetArray, Default , "¬")
    If @error = 1 Then
       MsgBox(0,"Error opening specified file","")
    ElseIf @error = 2 Then
       MsgBox(0,"Unable to split the file","")
    ElseIf @error = 3 Then
       MsgBox(0,"File lines have different numbers of fields","")
    ElseIf @error = 4 Then
       MsgBox(0,"No delimiters found","")
    EndIf

    _ArrayDisplay($aRetArray, "2D array - count", Default, 8)

EndFunc   ;==>FileLoad

Func SetHotStrings()

   For $x = 1 to UBound($aRetArray) - 1
      HotStringSet($aRetArray[$x][0],Expand)
   Next

EndFunc ;==>SetHotStrings

Func Expand($hotstring)

   Local $strlength = StringLen($hotstring)
   Send("{BACKSPACE " & $strlength & "}")
   For $x = 1 To UBound($aRetArray) - 1
      If $aRetArray[$x][0] = $hotstring Then
         Send($aRetArray[$x][1])
         ExitLoop
      EndIf
   Next

EndFunc ;==>Expand
  • 2 weeks later...
Posted (edited)

@Seeker: I found this code helped (I tried UnstickKeys2, but it didn't work well)

if you put a short sleep in to give you time to release the key it may also help...

[del the logMSG line - the forum text editors won't allow me to edit the code to remove it]

; sometimes autoit causes keys to get stuck down, UnstickKeys can help and needs $user32dll and $keys.
$user32dll = DllOpen("C:\Windows\System32\user32.dll")
;0xa0=LSHIFT;   0xa1=RSHIFT;    0xa2=LCTRL; 0xa3=RCTRL; 0xa4=LALT;  0xa5=RALT;  0x5b=LWIN;  0x5c=RWIN
Global Const $keys[8] = [0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x5b, 0x5c]


Func UnstickKeys()
logMSG("UnstickKeys")
; also a 'sleep()' call may help: Good News! I have determined that inserting a "sleep()" command before the "send()" command will also reliably resolve the stuck-key problem. On slow computers, a "send(300)" was required, while on fast machines, a "send(100)" was enough.  Most importantly, this experiment showed that the problem occurs BECAUSE the "send()" action starts before the hotkey detection function completes. When the "send()" action starts too soon, it seems to cause the detection function to silently error out and fail to finish it's normal cleanup after each use (speculation).
    For $vkvalue in $keys
        DllCall($user32dll,"int","keybd_event","int",$vkvalue,"int",0,"long",2,"long",0) ;Release each key
    Next
EndFunc

func UnstickKeys2()
logMSG("UnstickKeys2")
    send("{CTRLUP}{SHIFTUP}{ALTUP}{LWINUP}{RWINUP}")
EndFunc
Edited by dgm5555
  • 1 month later...
Posted

Hi 

Manadar, How can i add a non english string as hot sting ? I mean i am using an input method editor which uses a keyboard hook to display my native language. It has a Shortkey(Alt + W) to enable for each window. If i am working in MS word, then if i type Alt W, then word should be displayed my native language. if i type "A" in word, it will display the appropriate letter from my native language. I need to use your hotstring function while i am using this input method editor. Is it possible ?. Now i have tested with your function but it failed. 
  Reveal hidden contents

 

Posted

@

Manadar, How can i use a hotstring only in one application. I mean, I want to use ENTER key as hot key. And i need it only in SciTE. Other applications will receive an ordinary enter key message but SciTE will receive my function. 
  Reveal hidden contents

 

  • 11 months later...
Posted

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

  • 1 year later...
  • 4 months later...
Posted
  On 4/18/2018 at 8:23 AM, DonChunior said:

Would it be possible that you update your UDF so that it also works, if the AutoIt option MustDeclareVars is set to 1?

AutoItSetOption("MustDeclareVars", 1)

 

Expand  

Jos, I've created a pull request at your GitHub repository.
The changes I made fulfil my requested requirement that the AutoIt option MustDeclareVars can be set to 1.
Maybe you could merge my commit into your repository?!

  • 1 year later...
  • Developers
Posted
  On 10/30/2019 at 11:24 AM, legend said:

still need this if anybody knows :D

Expand  

Ever thought the question might not be that clear? ;) 
Funny though you seems to be looking for the answer for 2 years.

SciTE4AutoIt3 Full installer Download page   - Beta files       Read before posting     How to post scriptsource   Forum etiquette  Forum Rules 
 
Live for the present,
Dream of the future,
Learn from the past.
  :)

  • 3 years later...
Posted

Hello Jos and everybody,
I just discovered this script and it would be really helpful in everyday use.

I tried to run it on W10 without success: the message is always "Tests did not execute the expected amount". I just tested it on W7 but the message is the same, so this might be related to the updated version of AutoIt (I'm currenty using v3.3.16.1).

I've some experience and tried to figure out by myself if there are missing UDFs or changes, but then I saw the _HotString_Initialize() function which deals with things outside of my current knowledge.

I suspect the problem is in the initialization phase as, even setting true $hotString_Debug variable, I cannot see any response from the script. Could Jos or anybody else please point me to the right direction ?

Thanks and have a nice weekend.
V.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...