Hi David,

 

Jonathin's right, you can dig it out of your code if you work at it.  This 
falls under the rule I follow for not understanding something in scripting: if 
it's not easily found in the developer's manual, then check the help for the GW 
toolkit.  That's where you'll find it in this case.  In the help for the 
toolkit you actually have to click on the button to launch the help, and then 
you'll be in a manual for all of the toolkit objects.

 

I've copied out the top level topic for the hotkey manager for your convenience 
below.  I will admit to feeling that even with the documentation, this is still 
(in general), a difficult topic to understand thoroughly (so don't hesitate to 
ask questions if necessary):

 


Navigation:  GW Micro App Toolkit 
<mk:@MSITStore:C:\Users\Chip\AppData\Roaming\GW%20Micro\Window-Eyes\users\default\gwtoolkit.chm::/gwtk_introduction.htm>
  > Objects 
<mk:@MSITStore:C:\Users\Chip\AppData\Roaming\GW%20Micro\Window-Eyes\users\default\gwtoolkit.chm::/gwtk_objects.htm>
  >

HotkeyManager

 
<mk:@MSITStore:C:\Users\Chip\AppData\Roaming\GW%20Micro\Window-Eyes\users\default\gwtoolkit.chm::/obj_getdialogxml.htm>
 Previous page 
<mk:@MSITStore:C:\Users\Chip\AppData\Roaming\GW%20Micro\Window-Eyes\users\default\gwtoolkit.chm::/gwtk_objects.htm>
 Return to chapter overview 
<mk:@MSITStore:C:\Users\Chip\AppData\Roaming\GW%20Micro\Window-Eyes\users\default\gwtoolkit.chm::/properties.htm>
 Next page

        

This object provides an easy way to manage multiple hot keys for a given app. 
The Hotkey Manager dialog can be called directly, providing hot key management 
anywhere in an app, or by using the StandardHelpDialog 
<mk:@MSITStore:C:\Users\Chip\AppData\Roaming\GW%20Micro\Window-Eyes\users\default\gwtoolkit.chm::/obj_standardhelpdialog.htm>
  object, providing hotkey management when the View Help button is selected in 
the App Manager dialog.

 

Example 1

 


' This example launches the hotkey manager dialog directly

 

Set HotkeyManager = 
SharedObjects("com.GWMicro.GWToolkit.HotkeyManager").NewDialog

HotkeyManager.INIFileName = "myini.ini"

HotkeyManager.INISectionName = "Hotkeys"

Set HotkeyManager.KeyStrings = Strings("myxmlfile.xml")

HotkeyManager.Manager

 

 

Example 2

 


' This example launches the hotkey manager with two default hotkeys

 

Set HotkeyManager = 
SharedObjects("com.GWMicro.GWToolkit.HotkeyManager").NewDialog

HotkeyManager.INIFileName = "myini.ini"

HotkeyManager.INISectionName = "hotkeys"

Set HotkeyManager.KeyStrings = Strings("myxmlfile.xml")

HotkeyManager.Add "Key01", "Control-Shift-3", "FunctionOne"

HotkeyManager.Add "Key02", "Control-Shift-Y", "FunctionTwo"

HotkeyManager.Manager

 

 

Registering Hotkeys

 

The following routine demonstrates how to register your hotkeys whether you're 
registering your default hotkeys for the first time, or are re-registering 
hotkeys after a user changes them using the Hotkey Manager dialog.

 


' Registered hotkeys are stored in a global Dictionary object:

 

Dim HotkeyManager : Set HotkeyManager = 
SharedObjects("com.GWMicro.GWToolkit.HotkeyManager").NewDialog

If Not HotkeyManager Is Nothing Then

 HotkeyManager.INIFileName = myINIFile

 HotkeyManager.INISectionName = mySectionName

 Set HotkeyManager.KeyStrings = myStrings

End If

 

Dim registeredHotkeys : Set registeredHotkeys = 
CreateObject("Scripting.Dictionary")

 

Sub RegisterHotkeys()

    ' Step 1: Verify the HotkeyManager object exists

    If Not HotkeyManager Is Nothing Then

 ' Step 2: If the INI does not already contain hotkeys, add default hotkeys.

       If UBound(Split(INIFile(myINIFile).GetSectionKeys(myINISection), 
vbNullChar)) < 0 Then

              HotkeyManager.Add "Key01", "Control-Alt-1", "FirstKeyFunction"

              HotkeyManager.Add "Key02", "Control-Alt-2", "SectionKeyFunction"

         End If

 

         ' Step 3: Remove existing hotkey registrations if they exist

        If Not registeredHotkeys Is Nothing Then

              registeredHotkeys.RemoveAll

         End If

         

         ' Step 4: Obtain all hotkeys from the INI file

         Dim iniArray : iniArray = 
Split(IniFile(myINIFile).GetSectionKeys(myINISection), vbNulLChar)

 

         ' Step 5: Register each hotkey, and store the registration in the 
global dictionary

         Dim iniKeyID

         For Each iniKeyID In iniArray

              Set registeredHotkeys(iniKeyID) = 
Keyboard.RegisterHotkey(HotkeyManager.Key(iniKeyID), 
HotkeyManager.Data(iniKeyID))

         Next

    End If

End Sub

 

' With this routine in place, you can register hotkeys when your app starts, 
when you return from a GW Toolkit object that uses 

' the Hotkey Manager (such as the StandardHelpDialog object), or anywhere else 
you want to re-read hotkeys from your INI file, 

' and re-register them.

 

 

 

-----Original Message-----
From: David [mailto:trailerda...@hotmail.com] 
Sent: Monday, January 12, 2015 3:42 PM
To: gw-scripting@gwmicro.com
Subject: Accessing the Hotkey Manager Dialog

 

I have searched the reference manual, but don't seem to find what I want.

 

Is there any way, or could it be provided in later versions, to have my 

script bring up the Hotkey Manager Dialog? That is, the dialog where the 

user can change the hotkeys of the app, or simply just look through the 

shortcuts provided.

 

I could, of course, have the app bring up the SO_StandardHelp dialog, 

and then hope for the user to tab around the screen in his hunt for the 

button to get to the hotkey manager. But I would much rather have liked 

to send him directly, where I want him to go.

 

Any ideas?

 

Thanks,

 

-- 

David

Reply via email to