Core Function HotKeySet

From Sputnik Wiki
(Difference between revisions)
Jump to: navigation, search
(Example)
(Remarks)
Line 36: Line 36:
 
Win+B,D,E,F,L,M,R,U; and Win+Shift+M These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.  
 
Win+B,D,E,F,L,M,R,U; and Win+Shift+M These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.  
 
Alt, Ctrl, Shift, Win These are the modifier keys themselves!
 
Alt, Ctrl, Shift, Win These are the modifier keys themselves!
Other Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.  
+
Other Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.
 +
 
 +
 
 +
When you set a hotkey, Sputnik captures the keypress and does not pass it on to the active application--with one exception: The Lock keys (NumLock, CapsLock, and ScrollLock) still toggle their respective state! If you wish to send the captured hotkey to the active application you must unregister the hotkey before invoking Send or must use ControlSend:
 +
 
 +
<syntaxhighlight lang="sputnik">
 +
//capture and pass along a keypress
 +
 
 +
HotKeySet("{Esc}", "captureEsc();");
 +
Function captureEsc()
 +
{
 +
    // ... can do stuff here
 +
    HotKeySet("{Esc}");
 +
    SendKeys("{Esc}");
 +
    HotKeySet("{Esc}", "captureEsc();");
 +
}
 +
</syntaxhighlight>
  
 
=== Example ===
 
=== Example ===

Revision as of 09:37, 26 November 2011

HotKeySet( <keydef>, <function> )

Contents

Description

Create a custom hotkey to run custom code or execute a function

keydef

The key(s) to use as the hotkey. Same format as SendKeys().

function

Optional; The name of the code to execute or the function to call when the key is pressed. Leave blank to unset a previous hotkey.

Return Value

Success: Returns 1.

Failure: Returns 0.

Remarks

Up to 64 simultaneous hotkeys per script may be registered.

If two AutoIt scripts set the same HotKeys, you should avoid running those scripts simultaneously. (The second script cannot capture the hotkey unless the first script terminates or unregisters the key prior to the second script setting the hotkey.)

Hotkeys can run at the same time as other hotkeys and even other functions.

The following hotkeys cannot be set:

Ctrl+Alt+Delete; It is reserved by Windows F12; It is also reserved by Windows, according to its API. NumPad's Enter Key; Instead, use {Enter} which captures both Enter keys on the keyboard. Win+B,D,E,F,L,M,R,U; and Win+Shift+M These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above. Alt, Ctrl, Shift, Win These are the modifier keys themselves! Other Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.


When you set a hotkey, Sputnik captures the keypress and does not pass it on to the active application--with one exception: The Lock keys (NumLock, CapsLock, and ScrollLock) still toggle their respective state! If you wish to send the captured hotkey to the active application you must unregister the hotkey before invoking Send or must use ControlSend:

//capture and pass along a keypress
 
HotKeySet("{Esc}", "captureEsc();");
Function captureEsc()
{
    // ... can do stuff here
    HotKeySet("{Esc}");
    SendKeys("{Esc}");
    HotKeySet("{Esc}", "captureEsc();");
}

Example

$GUI = GUICreate("mooooo", 200, 200);
GUISetState($GUI, @Show);
$B1 = GUICreateButton($GUI, "mybutton", "PRESS ME!!!", 8, 8);
GUILink($B1, @lClick, 'msgbox("Hello World!");');
 
HotKeySet("+!d", "myfunction();");  //Shift-Alt-d
 
Until ( GUIState( $GUI ) == @sClosed ) DoEvents();
 
Function myfunction()
{
	println("Hello from the HOTKEY\n");
}
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox