Suppir Posted February 5, 2010 Share Posted February 5, 2010 Hello! I have a GUI program that uses hotkeys defined by hotkeyset(). But other programs use these hotkeys too. How to set these hotkeys to work only if my program is active in this moment? If it doesn't active, hotkeys should work in another program, that active in this moment. Thanks. Link to comment Share on other sites More sharing options...
water Posted February 5, 2010 Share Posted February 5, 2010 I use accelerator Keys so I don't have the problem you describe: ; Define two dummy Controls in your GUI $ButtonStrgA = GUICtrlCreateDummy() $ButtonStrgC = GUICtrlCreateDummy() ... ; Set accelerator keys for Strg+a and Strg+c Global $asAccelKeys[2][2] = [["^a", $ButtonStrgA],["^c", $ButtonStrgC]] GUISetAccelerators($asAccelKeys) ... While 1 $nMsg = GUIGetMsg(1) Select Case $nMsg[0] = $GUI_EVENT_CLOSE Exit Case $nMsg[0] = $ButtonStrgA _SelectAll() Case $nMsg[0] = $ButtonStrgC _Clipboard() EndSelect WEnd My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Suppir Posted February 5, 2010 Author Share Posted February 5, 2010 (edited) I use accelerator Keys so I don't have the problem you describe: ; Define two dummy Controls in your GUI $ButtonStrgA = GUICtrlCreateDummy() $ButtonStrgC = GUICtrlCreateDummy() ... ; Set accelerator keys for Strg+a and Strg+c Global $asAccelKeys[2][2] = [["^a", $ButtonStrgA],["^c", $ButtonStrgC]] GUISetAccelerators($asAccelKeys) ... While 1 $nMsg = GUIGetMsg(1) Select Case $nMsg[0] = $GUI_EVENT_CLOSE Exit Case $nMsg[0] = $ButtonStrgA _SelectAll() Case $nMsg[0] = $ButtonStrgC _Clipboard() EndSelect WEnd Thanks! I think this should be added to te AutoIt core. I mean the Hotkeyset() should parameters to choose: 0 = we want to hotkey working at any time (default) 1 = we want to hotkey working only if autoit program is active Edited February 5, 2010 by Suppir Link to comment Share on other sites More sharing options...
water Posted February 5, 2010 Share Posted February 5, 2010 (edited) Hi, I think this is a completely different approach. My solution works like a hotkey (most of the time) but it uses the GUI to "mimic" the hotkey. The helpfile states: "A hotkey-press *typically* interrupts the active AutoIt function/statement" whereas my solution has to query the GUI before it reacts. Imagine your script does a lot of processing after the user presses the "process" button on your GUI. The hotkey interrupts (nearly) every AutoIt statement immediately. The GUI approach works as soon as the processing has finished and the script checks the input to the GUI again. In the help file you will find an example on how to pass the pressed keys to other applications. So you could define a hotkey, when triggerde check if your GUI is the active window and if not pass the hotkey to the other applications. Hope I could make myself clear :-) Edited February 5, 2010 by water My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Yashied Posted February 5, 2010 Share Posted February 5, 2010 Another way.#Include <HotKey.au3> Global Const $VK_OEM_PLUS = 0xBB Global Const $VK_OEM_MINUS = 0xBD Global $Form, $Label Global $i = 0 $Form = GUICreate('MyGUI', 200, 200) $Label = GUICtrlCreateLabel($i, 20, 72, 160, 52, 0x01) GUICtrlSetFont(-1, 32, 400, 0, 'Tahoma') GUISetState() ; Assign "CTRL-(+)" with MyFunc1() and "CTRL-(-)" with MyFunc2() for created window only _HotKeyAssign(BitOR($CK_CONTROL, $VK_OEM_PLUS), 'MyFunc1', 0, $Form) _HotKeyAssign(BitOR($CK_CONTROL, $VK_OEM_MINUS), 'MyFunc2', 0, $Form) Do Until GUIGetMsg() = -3 Func MyFunc1() $i += 1 GUICtrlSetData($Label, $i) EndFunc ;==>MyFunc1 Func MyFunc2() $i -= 1 GUICtrlSetData($Label, $i) EndFunc ;==>MyFunc2HotKey.au3 My UDFs: iKey | FTP Uploader | Battery Checker | Boot Manager | Font Viewer | UDF Keyword Manager | Run Dialog Replacement | USBProtect | 3D Axis | Calculator | Sleep | iSwitcher | TM | NetHelper | File Types Manager | Control Viewer | SynFolders | DLL Helper Animated Tray Icons UDF Library | Hotkeys UDF Library | Hotkeys Input Control UDF Library | Caret Shape UDF Library | Context Help UDF Library | Most Recently Used List UDF Library | Icons UDF Library | FTP UDF Library | Script Communications UDF Library | Color Chooser UDF Library | Color Picker Control UDF Library | IPHelper (Vista/7) UDF Library | WinAPI Extended UDF Library | WinAPIVhd UDF Library | Icon Chooser UDF Library | Copy UDF Library | Restart UDF Library | Event Log UDF Library | NotifyBox UDF Library | Pop-up Windows UDF Library | TVExplorer UDF Library | GuiHotKey UDF Library | GuiSysLink UDF Library | Package UDF Library | Skin UDF Library | AITray UDF Library | RDC UDF Library Appropriate path | Button text color | Gaussian random numbers | Header's styles (Vista/7) | ICON resource enumeration | Menu & INI | Tabbed string size | Tab's skin | Pop-up circular menu | Progress Bar without animation (Vista/7) | Registry export | Registry path jumping | Unique hardware ID | Windows alignment More... 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