zone97 Posted January 11, 2017 Share Posted January 11, 2017 I am using the hotkey_21b.au3 UDF.. And as others have pointed out there is a glitch where the keys get stuck.. Here is an example script where I tried to make a work around. Anyone know how I might fix this? Short of not using the UDF... The test, I opened notepad put in some text, hit the hot key and it selected all and cleared. But often the CTRL or ALT key gets hung? I have even had it trigger CTRL-ALT-DEL .. Ideally Id like to find the glitch in the UDF and fix it. #include ".\Includes\HotKey_21b.au3" ; - 1620 = CTRL-ALT-T _HotKey_Assign('1620', 'test', $HK_FLAG_DEFAULT) While 1 Sleep(100) WEnd Func Test() ReleaseModifiers() Send("^a") Send("{DEL}") MsgBox(0, "test", "I sent a CTRL-A followed by DELETE") Exit EndFunc Func ReleaseModifiers() Send("{SHIFTUP}") Send("{CTRLUP}") Send("{ALTUP}") Sleep(100) EndFunc ;==>ReleaseModifiers HotKey_21b.au3 Spoiler WinSizer 2.1 (01/04/2017) - Download - [ Windows Layout Manager ]Folder+Program (12/23/2016) - Download - [ USB Shortcut Creator ] Link to comment Share on other sites More sharing options...
anthonyjr2 Posted January 11, 2017 Share Posted January 11, 2017 (edited) Is this related at all to this? https://www.autoitscript.com/wiki/FAQ#Why_does_the_Ctrl_key_get_stuck_down_after_I_run_my_script.3F Edited January 11, 2017 by anthonyjr2 UHJvZmVzc2lvbmFsIENvbXB1dGVyZXI= Link to comment Share on other sites More sharing options...
zone97 Posted January 11, 2017 Author Share Posted January 11, 2017 Yes and no... Last post on this page did something similar, but don't think the issue is resolved yet. https://www.autoitscript.com/forum/topic/90492-hotkey-udf/?page=10 Spoiler WinSizer 2.1 (01/04/2017) - Download - [ Windows Layout Manager ]Folder+Program (12/23/2016) - Download - [ USB Shortcut Creator ] Link to comment Share on other sites More sharing options...
zone97 Posted January 18, 2017 Author Share Posted January 18, 2017 After trying several fixes. This one seems to be the most reliable. I replaced the built in Send() function with SendEx() Func SendEx($ss, $warn = "") Local $iT = TimerInit() ; - Check for stuck modifiers ALT, SHIFT, CTRL, LWIN, RWIN While _IsPressed("10") Or _IsPressed("11") Or _IsPressed("12") Or _IsPressed("5B") Or _IsPressed("5C") If $warn <> "" And TimerDiff($iT) > 1000 Then SplashTextOn("", "Working!", 130, 43, -1, -1, 1) Sleep(500) SplashOff() EndIf Sleep(50) WEnd Send($ss) EndFunc ;==>SendEx Spoiler WinSizer 2.1 (01/04/2017) - Download - [ Windows Layout Manager ]Folder+Program (12/23/2016) - Download - [ USB Shortcut Creator ] Link to comment Share on other sites More sharing options...
careca Posted January 18, 2017 Share Posted January 18, 2017 (edited) I can't remember what it was exactly but you could send the key up, after using any ctrl or alt or shift. Edited January 18, 2017 by careca Spoiler Renamer - Rename files and folders, remove portions of text from the filename etc. GPO Tool - Export/Import Group policy settings. MirrorDir - Synchronize/Backup/Mirror Folders BeatsPlayer - Music player. Params Tool - Right click an exe to see it's parameters or execute them. String Trigger - Triggers pasting text or applications or internet links on specific strings. Inconspicuous - Hide files in plain sight, not fully encrypted. Regedit Control - Registry browsing history, quickly jump into any saved key. Time4Shutdown - Write the time for shutdown in minutes. Power Profiles Tool - Set a profile as active, delete, duplicate, export and import. Finished Task Shutdown - Shuts down pc when specified window/Wndl/process closes. NetworkSpeedShutdown - Shuts down pc if download speed goes under "X" Kb/s. IUIAutomation - Topic with framework and examples Au3Record.exe Link to comment Share on other sites More sharing options...
zone97 Posted January 19, 2017 Author Share Posted January 19, 2017 I had tried the {CTRLUP} option, didn't work. Here is my text example with applied fixes. Not 100% but closest I could get. expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Run_Tidy=y #Tidy_Parameters=/tc 4 /reel #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include ".\Includes\HotKey_21b.au3" ; - Functional UDFs #include <Timers.au3> #include <Misc.au3> ; - 1621 = CTRL-ALT-U ; - Keyboard cleanup handler Global $dll = DllOpen(@WindowsDir & "\System32\user32.dll") Global Const $vKeys[8] = [0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0x5B, 0x5C] _HotKey_Assign('1621', 'test', $HK_FLAG_DEFAULT) While 1 Sleep(100) WEnd Func Test() ReleaseModifiers() SendEx("^a") SendEx("{DEL}") MsgBox(0, "test", "I sent a CTRL-A followed by DELETE") Quit() EndFunc ;==>Test Func SendEx($ss, $warn = "") Local $iT = TimerInit() ; - Check for stuck modifiers ALT, SHIFT, CTRL, LWIN, RWIN While _IsPressed("10") Or _IsPressed("11") Or _IsPressed("12") Or _IsPressed("5B") Or _IsPressed("5C") If $warn <> "" And TimerDiff($iT) > 1000 Then SplashTextOn("", "Working!", 100, 43, -1, -1, 1) Sleep(500) SplashOff() EndIf Sleep(50) WEnd Send($ss) EndFunc ;==>SendEx Func ReleaseModifiers() For $vKvalue In $vKeys DllCall($dll, "int", "keybd_event", "int", $vKvalue, "int", 0, "long", 2, "long", 0) ; Release each key Sleep(10) Next Sleep(100) EndFunc ;==>ReleaseModifiers Func Quit() DllClose($dll) ReleaseModifiers() Exit EndFunc ;==>Quit Spoiler WinSizer 2.1 (01/04/2017) - Download - [ Windows Layout Manager ]Folder+Program (12/23/2016) - Download - [ USB Shortcut Creator ] 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