remin Posted December 31, 2014 Share Posted December 31, 2014 (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 December 31, 2014 by remin Link to comment Share on other sites More sharing options...
jvanegmond Posted January 4, 2015 Author Share Posted January 4, 2015 remin, I have replicated the issue on my PC after several hours of use. Unfortunately I couldn't find the cause quickly. For this reason, I have logged a bug here: https://github.com/jvanegmond/hotstrings/issues/3 and will work on this issue once my schedule clears up. remin 1 github.com/jvanegmond Link to comment Share on other sites More sharing options...
dgm5555 Posted January 6, 2015 Share Posted January 6, 2015 (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 Edited January 6, 2015 by dgm5555 Link to comment Share on other sites More sharing options...
longfields Posted January 6, 2015 Share Posted January 6, 2015 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: expandcollapse popup#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 Link to comment Share on other sites More sharing options...
dgm5555 Posted January 16, 2015 Share Posted January 16, 2015 (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 January 16, 2015 by dgm5555 Link to comment Share on other sites More sharing options...
kcvinu Posted March 10, 2015 Share Posted March 10, 2015 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. Spoiler My Contributions Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language. UDF Link Viewer --- A tool to visit the links of some most important UDFs Includer_2 ----- A tool to type the #include statement automatically Digits To Date ----- date from 3 integer values PrintList ----- prints arrays into console for testing. Alert ------ An alternative for MsgBox MousePosition ------- A simple tooltip display of mouse position GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function Access_UDF -------- An UDF for working with access database files. (.*accdb only) Link to comment Share on other sites More sharing options...
kcvinu Posted March 13, 2015 Share Posted March 13, 2015 @ 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. Spoiler My Contributions Glance GUI Library - A gui library based on Windows api functions. Written in Nim programming language. UDF Link Viewer --- A tool to visit the links of some most important UDFs Includer_2 ----- A tool to type the #include statement automatically Digits To Date ----- date from 3 integer values PrintList ----- prints arrays into console for testing. Alert ------ An alternative for MsgBox MousePosition ------- A simple tooltip display of mouse position GRM Helper -------- A littile tool to help writing code with GUIRegisterMsg function Access_UDF -------- An UDF for working with access database files. (.*accdb only) Link to comment Share on other sites More sharing options...
mLipok Posted February 20, 2016 Share Posted February 20, 2016 Added to the list:https://www.autoitscript.com/wiki/User_Defined_Functions jvanegmond 1 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 Code * for other useful stuff click the following button: Spoiler Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 * My contribution to others projects or UDF based on others projects: * _sql.au3 UDF * POP3.au3 UDF * RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * Useful links: * Forum Rules * Forum etiquette * Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX IE Related: * How to use IE.au3 UDF with AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions * EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *I also encourage you to check awesome @trancexx code: * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors * HTML editor * winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/ "Homo sum; humani nil a me alienum puto" - Publius Terentius Afer"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming" , be and \\//_. Anticipating Errors : "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty." Signature last update: 2023-04-24 Link to comment Share on other sites More sharing options...
legend Posted December 13, 2017 Share Posted December 13, 2017 any possible way to use the ALT key? Link to comment Share on other sites More sharing options...
DonChunior Posted April 18, 2018 Share Posted April 18, 2018 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) Link to comment Share on other sites More sharing options...
DonChunior Posted April 26, 2018 Share Posted April 26, 2018 On 18.04.2018 at 10: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) 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?! Link to comment Share on other sites More sharing options...
legend Posted October 30, 2019 Share Posted October 30, 2019 On 12/13/2017 at 11:00 AM, legend said: any possible way to use the ALT key? still need this if anybody knows :D Link to comment Share on other sites More sharing options...
Developers Jos Posted October 30, 2019 Developers Share Posted October 30, 2019 22 minutes ago, legend said: still need this if anybody knows 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. Link to comment Share on other sites More sharing options...
Virgus Posted June 16, 2023 Share Posted June 16, 2023 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. Link to comment Share on other sites More sharing options...
Andreik Posted June 16, 2023 Share Posted June 16, 2023 Just look in help file at _WinAPI_SetWindowsHookEx() example. It's basically all you need. Virgus 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now