- Skip the dealership and find cars for sale online. Shift is a used cars website where peer-to-peer car buying meets certified quality, for thousands less. We bring the no-obligation test drive to you.
- See if Borderlands 3 is down or it's just you. Check current status and outage map. Post yours and see other's reports and complaints.
- Ctrl + Shift + Down is used by 66 programs, so what this popular key combination does?
- The first thing you do when downshifting is step all the way down on the clutch. Shift thoroughly so your shift can be smoother when you shift down. Make sure you only downshift if your rpm's are 5,500 or below that way you can get in the power band range.
To use a keyboard shortcut, press and hold one or more modifier keys and then press the last key of the shortcut. For example, to use Command-C (copy), press and hold the Command key, then the C key, then release both keys. Mac menus and keyboards often use symbols for certain keys, including modifier keys:
So, I need a script that will shift the new data, and all of the prior data down, immediately after the report adds the data from the screenshot, so that no data is overwritten. Thanks in advance for anyone that helps! Please ask questions if I was not clear about anything.
Free mp4 converter download for mac.
On keyboards made for Windows PCs, use the Alt key instead of Option, and the Windows logo key instead of Command.
Some keys on some Apple keyboards have special symbols and functions, such as for display brightness , keyboard brightness , Mission Control, and more. If these functions aren't available on your keyboard, you might be able to reproduce some of them by creating your own keyboard shortcuts. To use these keys as F1, F2, F3, or other standard function keys, combine them with the Fn key.
Cut, copy, paste, and other common shortcuts
- Command-X: Cut the selected item and copy it to the Clipboard.
- Command-C: Copy the selected item to the Clipboard. This also works for files in the Finder.
- Command-V: Paste the contents of the Clipboard into the current document or app. This also works for files in the Finder.
- Command-Z: Undo the previous command. You can then press Shift-Command-Z to Redo, reversing the undo command. In some apps, you can undo and redo multiple commands.
- Command-A: Select All items.
- Command-F: Find items in a document or open a Find window.
- Command-G: Find Again: Find the next occurrence of the item previously found. To find the previous occurrence, press Shift-Command-G.
- Command-H: Hide the windows of the front app. To view the front app but hide all other apps, press Option-Command-H.
- Command-M: Minimize the front window to the Dock. To minimize all windows of the front app, press Option-Command-M.
- Command-O: Open the selected item, or open a dialog to select a file to open.
- Command-P: Print the current document.
- Command-S: Save the current document.
- Command-T: Open a new tab.
- Command-W: Close the front window. To close all windows of the app, press Option-Command-W.
- Option-Command-Esc: Force quit an app.
- Command–Space bar: Show or hide the Spotlight search field. To perform a Spotlight search from a Finder window, press Command–Option–Space bar. (If you use multiple input sources to type in different languages, these shortcuts change input sources instead of showing Spotlight. Learn how to change a conflicting keyboard shortcut.)
- Control–Command–Space bar: Show the Character Viewer, from which you can choose emoji and other symbols.
- Control-Command-F: Use the app in full screen, if supported by the app.
- Space bar: Use Quick Look to preview the selected item.
- Command-Tab: Switch to the next most recently used app among your open apps.
- Shift-Command-5: In macOS Mojave or later, take a screenshot or make a screen recording. Or use Shift-Command-3 or Shift-Command-4 for screenshots. Learn more about screenshots.
- Shift-Command-N: Create a new folder in the Finder.
- Command-Comma (,): Open preferences for the front app.
Sleep, log out, and shut down shortcuts
You might need to press and hold some of these shortcuts for slightly longer than other shortcuts. This helps you to avoid using them unintentionally.
- Power button: Press to turn on your Mac or wake it from sleep. Press and hold for 1.5 seconds to put your Mac to sleep.* Continue holding to force your Mac to turn off.
- Option–Command–Power button* or Option–Command–Media Eject : Put your Mac to sleep.
- Control–Shift–Power button* or Control–Shift–Media Eject : Put your displays to sleep.
- Control–Power button* or Control–Media Eject : Display a dialog asking whether you want to restart, sleep, or shut down.
- Control–Command–Power button:* Force your Mac to restart, without prompting to save any open and unsaved documents.
- Control–Command–Media Eject : Quit all apps, then restart your Mac. If any open documents have unsaved changes, you will be asked whether you want to save them.
- Control–Option–Command–Power button* or Control–Option–Command–Media Eject : Quit all apps, then shut down your Mac. If any open documents have unsaved changes, you will be asked whether you want to save them.
- Control-Command-Q: Immediately lock your screen.
- Shift-Command-Q: Log out of your macOS user account. You will be asked to confirm. To log out immediately without confirming, press Option-Shift-Command-Q.
* Does not apply to the Touch ID sensor.
Finder and system shortcuts
- Command-D: Duplicate the selected files.
- Command-E: Eject the selected disk or volume.
- Command-F: Start a Spotlight search in the Finder window.
- Command-I: Show the Get Info window for a selected file.
- Command-R: (1) When an alias is selected in the Finder: show the original file for the selected alias. (2) In some apps, such as Calendar or Safari, refresh or reload the page. (3) In Software Update preferences, check for software updates again.
- Shift-Command-C: Open the Computer window.
- Shift-Command-D: Open the desktop folder.
- Shift-Command-F: Open the Recents window, showing all of the files you viewed or changed recently.
- Shift-Command-G: Open a Go to Folder window.
- Shift-Command-H: Open the Home folder of the current macOS user account.
- Shift-Command-I: Open iCloud Drive.
- Shift-Command-K: Open the Network window.
- Option-Command-L: Open the Downloads folder.
- Shift-Command-N: Create a new folder.
- Shift-Command-O: Open the Documents folder.
- Shift-Command-P: Show or hide the Preview pane in Finder windows.
- Shift-Command-R: Open the AirDrop window.
- Shift-Command-T: Show or hide the tab bar in Finder windows.
- Control-Shift-Command-T: Add selected Finder item to the Dock (OS X Mavericks or later)
- Shift-Command-U: Open the Utilities folder.
- Option-Command-D: Show or hide the Dock.
- Control-Command-T: Add the selected item to the sidebar (OS X Mavericks or later).
- Option-Command-P: Hide or show the path bar in Finder windows.
- Option-Command-S: Hide or show the Sidebar in Finder windows.
- Command–Slash (/): Hide or show the status bar in Finder windows.
- Command-J: Show View Options.
- Command-K: Open the Connect to Server window.
- Control-Command-A: Make an alias of the selected item.
- Command-N: Open a new Finder window.
- Option-Command-N: Create a new Smart Folder.
- Command-T: Show or hide the tab bar when a single tab is open in the current Finder window.
- Option-Command-T: Show or hide the toolbar when a single tab is open in the current Finder window.
- Option-Command-V: Move the files in the Clipboard from their original location to the current location.
- Command-Y: Use Quick Look to preview the selected files.
- Option-Command-Y: View a Quick Look slideshow of the selected files.
- Command-1: View the items in the Finder window as icons.
- Command-2: View the items in a Finder window as a list.
- Command-3: View the items in a Finder window in columns.
- Command-4: View the items in a Finder window in a gallery.
- Command–Left Bracket ([): Go to the previous folder.
- Command–Right Bracket (]): Go to the next folder.
- Command–Up Arrow: Open the folder that contains the current folder.
- Command–Control–Up Arrow: Open the folder that contains the current folder in a new window.
- Command–Down Arrow: Open the selected item.
- Right Arrow: Open the selected folder. This works only when in list view.
- Left Arrow: Close the selected folder. This works only when in list view.
- Command-Delete: Move the selected item to the Trash.
- Shift-Command-Delete: Empty the Trash.
- Option-Shift-Command-Delete: Empty the Trash without confirmation dialog.
- Command–Brightness Down: Turn video mirroring on or off when your Mac is connected to more than one display.
- Option–Brightness Up: Open Displays preferences. This works with either Brightness key.
- Control–Brightness Up or Control–Brightness Down: Change the brightness of your external display, if supported by your display.
- Option–Shift–Brightness Up or Option–Shift–Brightness Down: Adjust the display brightness in smaller steps. Add the Control key to this shortcut to make the adjustment on your external display, if supported by your display.
- Option–Mission Control: Open Mission Control preferences.
- Command–Mission Control: Show the desktop.
- Control–Down Arrow: Show all windows of the front app.
- Option–Volume Up: Open Sound preferences. This works with any of the volume keys.
- Option–Shift–Volume Up or Option–Shift–Volume Down: Adjust the sound volume in smaller steps.
- Option–Keyboard Brightness Up: Open Keyboard preferences. This works with either Keyboard Brightness key.
- Option–Shift–Keyboard Brightness Up or Option–Shift–Keyboard Brightness Down: Adjust the keyboard brightness in smaller steps.
- Option key while double-clicking: Open the item in a separate window, then close the original window.
- Command key while double-clicking: Open a folder in a separate tab or window.
- Command key while dragging to another volume: Move the dragged item to the other volume, instead of copying it.
- Option key while dragging: Copy the dragged item. The pointer changes while you drag the item.
- Option-Command while dragging: Make an alias of the dragged item. The pointer changes while you drag the item.
- Option-click a disclosure triangle: Open all folders within the selected folder. This works only when in list view.
- Command-click a window title: See the folders that contain the current folder.
- Learn how to use Command or Shift to select multiple items in the Finder.
- Click the Go menu in the Finder menu bar to see shortcuts for opening many commonly used folders, such as Applications, Documents, Downloads, Utilities, and iCloud Drive.
Document shortcuts
The behavior of these shortcuts may vary with the app you're using.
- Command-B: Boldface the selected text, or turn boldfacing on or off.
- Command-I: Italicize the selected text, or turn italics on or off.
- Command-K: Add a web link.
- Command-U: Underline the selected text, or turn underlining on or off.
- Command-T: Show or hide the Fonts window.
- Command-D: Select the Desktop folder from within an Open dialog or Save dialog.
- Control-Command-D: Show or hide the definition of the selected word.
- Shift-Command-Colon (:): Display the Spelling and Grammar window.
- Command-Semicolon (;): Find misspelled words in the document.
- Option-Delete: Delete the word to the left of the insertion point.
- Control-H: Delete the character to the left of the insertion point. Or use Delete.
- Control-D: Delete the character to the right of the insertion point. Or use Fn-Delete.
- Fn-Delete: Forward delete on keyboards that don't have a Forward Delete key. Or use Control-D.
- Control-K: Delete the text between the insertion point and the end of the line or paragraph.
- Fn–Up Arrow: Page Up: Scroll up one page.
- Fn–Down Arrow: Page Down: Scroll down one page.
- Fn–Left Arrow: Home: Scroll to the beginning of a document.
- Fn–Right Arrow: End: Scroll to the end of a document.
- Command–Up Arrow: Move the insertion point to the beginning of the document.
- Command–Down Arrow: Move the insertion point to the end of the document.
- Command–Left Arrow: Move the insertion point to the beginning of the current line.
- Command–Right Arrow: Move the insertion point to the end of the current line.
- Option–Left Arrow: Move the insertion point to the beginning of the previous word.
- Option–Right Arrow: Move the insertion point to the end of the next word.
- Shift–Command–Up Arrow: Select the text between the insertion point and the beginning of the document.
- Shift–Command–Down Arrow: Select the text between the insertion point and the end of the document.
- Shift–Command–Left Arrow: Select the text between the insertion point and the beginning of the current line.
- Shift–Command–Right Arrow: Select the text between the insertion point and the end of the current line.
- Shift–Up Arrow: Extend text selection to the nearest character at the same horizontal location on the line above.
- Shift–Down Arrow: Extend text selection to the nearest character at the same horizontal location on the line below.
- Shift–Left Arrow: Extend text selection one character to the left.
- Shift–Right Arrow: Extend text selection one character to the right.
- Option–Shift–Up Arrow: Extend text selection to the beginning of the current paragraph, then to the beginning of the following paragraph if pressed again.
- Option–Shift–Down Arrow: Extend text selection to the end of the current paragraph, then to the end of the following paragraph if pressed again.
- Option–Shift–Left Arrow: Extend text selection to the beginning of the current word, then to the beginning of the following word if pressed again.
- Option–Shift–Right Arrow: Extend text selection to the end of the current word, then to the end of the following word if pressed again.
- Control-A: Move to the beginning of the line or paragraph.
- Control-E: Move to the end of a line or paragraph.
- Control-F: Move one character forward.
- Control-B: Move one character backward.
- Control-L: Center the cursor or selection in the visible area.
- Control-P: Move up one line.
- Control-N: Move down one line.
- Control-O: Insert a new line after the insertion point.
- Control-T: Swap the character behind the insertion point with the character in front of the insertion point.
- Command–Left Curly Bracket ({): Left align.
- Command–Right Curly Bracket (}): Right align.
- Shift–Command–Vertical bar (|): Center align.
- Option-Command-F: Go to the search field.
- Option-Command-T: Show or hide a toolbar in the app.
- Option-Command-C: Copy Style: Copy the formatting settings of the selected item to the Clipboard.
- Option-Command-V: Paste Style: Apply the copied style to the selected item.
- Option-Shift-Command-V: Paste and Match Style: Apply the style of the surrounding content to the item pasted within that content.
- Option-Command-I: Show or hide the inspector window.
- Shift-Command-P: Page setup: Display a window for selecting document settings.
- Shift-Command-S: Display the Save As dialog, or duplicate the current document.
- Shift–Command–Minus sign (-): Decrease the size of the selected item.
- Shift–Command–Plus sign (+): Increase the size of the selected item. Command–Equal sign (=) performs the same function.
- Shift–Command–Question mark (?): Open the Help menu.
Other shortcuts
For more shortcuts, check the shortcut abbreviations shown in the menus of your apps. Every app can have its own shortcuts, and shortcuts that work in one app might not work in another.
- Apple Music shortcuts: Choose Help > Keyboard shortcuts from the menu bar in the Music app.
- Other shortcuts: Choose Apple menu > System Preferences, click Keyboard, then click Shortcuts.
Learn more
- Create your own shortcuts and resolve conflicts between shortcuts
- Change the behavior of the function keys or modifier keys
Sends simulated keystrokes and mouse clicks to the active window.
Parameters
The sequence of keys to send. As with other commands, the comma in front of the first parameter is optional.
By default (that is, if neither SendRaw nor the Raw mode or Text mode is used), the characters ^+!#{}
have a special meaning. The characters ^+!#
represent the modifier keys Ctrl, Shift, Alt and Win. They affect only the very next key. To send the corresponding modifier key on its own, enclose the key name in braces. To just press (hold down) or release the key, follow the key name with the word 'down' or 'up' as shown below.
Symbol | Key | Press | Release | Examples |
---|---|---|---|---|
^ | {Ctrl} | {Ctrl down} | {Ctrl up} | Send ^{Home} presses Ctrl+Home |
+ | {Shift} | {Shift down} | {Shift up} | Send +abC sends the text 'AbC'Send !+a presses Alt+Shift+A |
! | {Alt} | {Alt down} | {Alt up} | Send !a presses Alt+A |
# | {LWin} {RWin} | {LWin down} {RWin down} | {LWin up} {RWin up} | Send #e holds down Win and then presses E |
Note: As capital letters are produced by sending Shift, A
produces a different effect in some programs than a
. For example, !A
presses Alt+Shift+A and !a
presses Alt+A. If in doubt, use lowercase.
The characters {}
are used to enclose key names and other options, and to send special characters literally. For example, {Tab}
is Tab and {!}
is a literal exclamation mark.
[v1.1.27+]: Enclosing a plain ASCII letter (a-z or A-Z) in braces forces it to be sent as the corresponding virtual keycode, even if the character does not exist on the current keyboard layout. In other words, Send a
produces the letter 'a' while Send {a}
may or may not produce 'a', depending on the keyboard layout. For details, see the remarks below.
Send variants
Send: By default, Send is synonymous with SendEvent; but it can be made a synonym for SendInput or SendPlay via SendMode.
SendRaw: Similar to Send, except that all characters in Keys are interpreted and sent literally. See Raw mode for details.
SendInput and SendPlay[v1.0.43+]: SendInput and SendPlay use the same syntax as Send but are generally faster and more reliable. In addition, they buffer any physical keyboard or mouse activity during the send, which prevents the user's keystrokes from being interspersed with those being sent. SendMode can be used to make Send synonymous with SendInput or SendPlay. For more details about each mode, see SendInput and SendPlay below.
SendEvent[v1.0.43+]: SendEvent sends keystrokes using the same method as the pre-1.0.43 Send command. The rate at which keystrokes are sent is determined by SetKeyDelay.
Special modes
The following modes affect the interpretation of the characters in Keys or the behavior of key-sending commands such as Send, SendInput, SendPlay, SendEvent and ControlSend. These modes must be specified as {x}
in Keys, where x is either Raw, Text, or Blind. For example, {Raw}
.
Raw mode
The Raw mode can be either enabled with {Raw}
, SendRaw or ControlSendRaw, which causes all subsequent characters, including the special characters ^+!#{}
, to be interpreted literally rather than translating {Enter}
to Enter, ^c
to Ctrl+C, etc. For example, both Send {Raw}{Tab}
and SendRaw {Tab}
send {Tab}
instead of Tab.
The Raw mode does not affect the interpretation of escape sequences, variable references and expressions. For example, SendRaw ``100`%
sends the string `100%
. When using ControlSend, it is also necessary to escape literal commas (`,
).
Text mode [v1.1.27+]
The Text mode can be enabled with {Text}
, which is similar to the Raw mode, except that no attempt is made to translate characters (other than `r
, `n
, `t
and `b
) to keycodes; instead, the fallback method is used for all of the remaining characters. For SendEvent, SendInput and ControlSend, this improves reliability because the characters are much less dependent on correct modifier state. This mode can be combined with the Blind mode to avoid releasing any modifier keys: Send {Blind}{Text}your text
. However, some applications require that the modifier keys be released.
`n
, `r
and `r`n
are all translated to a single Enter, unlike the default behavior and Raw mode, which translate `r`n
to two Enter. `t
is translated to Tab and `b
to Backspace, but all other characters are sent without translation.
[v1.1.29+]: Like the Blind mode, the Text mode ignores SetStoreCapsLockMode (that is, the state of CapsLock is not changed) and does not wait for Win to be released. This is because the Text mode typically does not depend on the state of CapsLock and cannot trigger the system Win+L hotkey. However, this only applies when Keys begins with {Text}
or {Blind}{Text}
.
Blind mode
The Blind mode can be enabled with {Blind}
, which gives the script more control by disabling a number of things that are normally done automatically to make things work as expected. {Blind}
must be the first item in the string to enable the Blind mode. It has the following effects:
- The Blind mode avoids releasing the modifier keys (Alt, Ctrl, Shift, and Win) if they started out in the down position. For example, the hotkey
+s::Send {Blind}abc
would send ABC rather than abc because the user is holding down Shift. - Modifier keys are restored differently to allow a Send to turn off a hotkey's modifiers even if the user is still physically holding them down. For example,
^space::Send {Ctrl up}
automatically pushes Ctrl back down if the user is still physically holding Ctrl, whereas^space::Send {Blind}{Ctrl up}
allows Ctrl to be logically up even though it is physically down. - SetStoreCapsLockMode is ignored; that is, the state of CapsLock is not changed.
- Menu masking is disabled. That is, Send omits the extra keystrokes that would otherwise be sent in order to prevent: 1) Start Menu appearance during Win keystrokes (LWin/RWin); 2) menu bar activation during Alt keystrokes. However, the Blind mode does not prevent masking performed by the keyboard hook following activation of a hook hotkey.
- Send does not wait for Win to be released even if the text contains an L keystroke. This would normally be done to prevent Send from triggering the system 'lock workstation' hotkey (Win+L). See Hotkeys for details.
The Blind mode is used internally when remapping a key. For example, the remapping a::b
would produce: 1) 'b' when you type 'a'; 2) uppercase 'B' when you type uppercase 'A'; and 3) Ctrl+B when you type Ctrl+A.
{Blind}
is not supported by SendRaw or ControlSendRaw; use {Blind}{Raw}
instead.
The Blind mode is not completely supported by SendPlay, especially when dealing with the modifier keys (Ctrl, Alt, Shift, and Win).
Key names
The following table lists the special keys that can be sent (each key name must be enclosed in braces):
Key name | Description |
---|---|
{F1} - {F24} | Function keys. For example: {F12} is F12. |
{!} | ! |
{#} | # |
{+} | + |
{^} | ^ |
{{} | { |
{}} | } |
{Enter} | Enter on the main keyboard |
{Escape} or {Esc} | Esc |
{Space} | Space (this is only needed for spaces that appear either at the beginning or the end of the string to be sent -- ones in the middle can be literal spaces) |
{Tab} | Tab |
{Backspace} or {BS} | Backspace |
{Delete} or {Del} | Del |
{Insert} or {Ins} | Ins |
{Up} | ↑ (up arrow) on main keyboard |
{Down} | ↓ (down arrow) on main keyboard |
{Left} | ← (left arrow) on main keyboard |
{Right} | → (right arrow) on main keyboard |
{Home} | Home on main keyboard |
{End} | End on main keyboard |
{PgUp} | PgUp on main keyboard |
{PgDn} | PgDn on main keyboard |
{CapsLock} | CapsLock (using SetCapsLockState is more reliable on Win 2k/XP). Sending {CapsLock} might require SetStoreCapsLockMode Off beforehand. |
{ScrollLock} | ScrollLock (see also: SetScrollLockState) |
{NumLock} | NumLock (see also: SetNumLockState) |
{Control} or {Ctrl} | Ctrl (technical info: sends the neutral virtual key but the left scan code) |
{LControl} or {LCtrl} | Left Ctrl (technical info: sends the left virtual key rather than the neutral one) |
{RControl} or {RCtrl} | Right Ctrl |
{Control down} or {Ctrl down} | Holds Ctrl down until {Ctrl up} is sent. To hold down the left or right key instead, use {RCtrl down} and {RCtrl up}. |
{Alt} | Alt (technical info: sends the neutral virtual key but the left scan code) |
{LAlt} | Left Alt (technical info: sends the left virtual key rather than the neutral one) |
{RAlt} | Right Alt (or AltGr, depending on keyboard layout) |
{Alt down} | Holds Alt down until {Alt up} is sent. To hold down the left or right key instead, use {RAlt down} and {RAlt up}. |
{Shift} | Shift (technical info: sends the neutral virtual key but the left scan code) |
{LShift} | Left Shift (technical info: sends the left virtual key rather than the neutral one) |
{RShift} | Right Shift |
{Shift down} | Holds Shift down until {Shift up} is sent. To hold down the left or right key instead, use {RShift down} and {RShift up}. |
{LWin} | Left Win |
{RWin} | Right Win |
{LWin down} | Holds the left Win down until {LWin up} is sent |
{RWin down} | Holds the right Win down until {RWin up} is sent |
{AppsKey} | Menu (invokes the right-click or context menu) |
{Sleep} | Sleep. |
{ASC nnnnn} | Sends an Alt+nnnnn keypad combination, which can be used to generate special characters that don't exist on the keyboard. To generate ASCII characters, specify a number between 1 and 255. To generate ANSI characters (standard in most languages), specify a number between 128 and 255, but precede it with a leading zero, e.g. {Asc 0133}. Unicode characters may be generated by specifying a number between 256 and 65535 (without a leading zero). However, this is not supported by all applications. For alternatives, see the section below. |
{U+nnnn} | [AHK_L 24+]: Sends a Unicode character where nnnn is the hexadecimal value of the character excluding the 0x prefix. This typically isn't needed in Unicode versions of AutoHotkey, where Send and ControlSend automatically support Unicode text. SendInput() or WM_CHAR is used to send the character and the current Send mode has no effect. Characters sent this way usually do not trigger shortcut keys or hotkeys. |
{vkXX} | Sends a keystroke that has virtual key XX and scan code YYY. For example: The values for XX and YYY are hexadecimal and can usually be determined from the main window's View->Key history menu item. See also: Special Keys Warning: Combining vk and sc in this manner is valid only with Send. Prior to [v1.1.27], hotkeys permitted but ignored any non-hexadecimal characters following XX. |
{Numpad0} - {Numpad9} | Numpad digit keys (as seen when NumLock is ON). For example: {Numpad5} is 5. |
{NumpadDot} | . (numpad period) (as seen when NumLock is ON). |
{NumpadEnter} | Enter on keypad |
{NumpadMult} | * (numpad multiplication) |
{NumpadDiv} | / (numpad division) |
{NumpadAdd} | + (numpad addition) |
{NumpadSub} | - (numpad subtraction) |
{NumpadDel} | Del on keypad (this key and the following Numpad keys are used when NumLock is OFF) |
{NumpadIns} | Ins on keypad |
{NumpadClear} | Clear key on keypad (usually 5 when NumLock is OFF). |
{NumpadUp} | ↑ (up arrow) on keypad |
{NumpadDown} | ↓ (down arrow) on keypad |
{NumpadLeft} | ← (left arrow) on keypad |
{NumpadRight} | → (right arrow) on keypad |
{NumpadHome} | Home on keypad |
{NumpadEnd} | End on keypad |
{NumpadPgUp} | PgUp on keypad |
{NumpadPgDn} | PgDn on keypad |
{Browser_Back} | Select the browser 'back' button |
{Browser_Forward} | Select the browser 'forward' button |
{Browser_Refresh} | Select the browser 'refresh' button |
{Browser_Stop} | Select the browser 'stop' button |
{Browser_Search} | Select the browser 'search' button |
{Browser_Favorites} | Select the browser 'favorites' button |
{Browser_Home} | Launch the browser and go to the home page |
{Volume_Mute} | Mute/unmute the master volume. Usually equivalent to SoundSet, +1, , mute . |
{Volume_Down} | Reduce the master volume. Usually equivalent to SoundSet -5 . |
{Volume_Up} | Increase the master volume. Usually equivalent to SoundSet +5 . |
{Media_Next} | Select next track in media player |
{Media_Prev} | Select previous track in media player |
{Media_Stop} | Stop media player |
{Media_Play_Pause} | Play/pause media player |
{Launch_Mail} | Launch the email application |
{Launch_Media} | Launch media player |
{Launch_App1} | Launch user app1 |
{Launch_App2} | Launch user app2 |
{PrintScreen} | PrtSc |
{CtrlBreak} | Ctrl+Pause |
{Pause} | Pause |
{Click [Options]} [v1.0.43+] | Sends a mouse click using the same options available in the Click command. For example, Send {Click} would click the left mouse button once at the mouse cursor's current position, and Send {Click 100 200} would click at coordinates 100, 200 (based on CoordMode). To move the mouse without clicking, specify 0 after the coordinates; for example: Send {Click 100 200 0} . The delay between mouse clicks is determined by SetMouseDelay (not SetKeyDelay). |
{WheelDown}, {WheelUp}, {WheelLeft}, {WheelRight}, {LButton}, {RButton}, {MButton}, {XButton1}, {XButton2} | Sends a mouse button event at the cursor's current position (to have control over position and other options, use {Click} above). The delay between mouse clicks is determined by SetMouseDelay. WheelLeft/Right require [v1.0.48+], but have no effect on operating systems older than Windows Vista. LButton and RButton correspond to the 'physical' left and right buttons when used with Send, but the 'logical' left and right buttons when used with hotkeys. In other words, if the user has swapped the buttons via system settings, |
{Blind} | Enables the Blind mode, which gives the script more control by disabling a number of things that are normally done automatically to make things generally work as expected. The string {Blind} must occur at the beginning of the string. |
{Raw} [v1.0.43+] | Enables the Raw mode, which causes the following characters to be interpreted literally: ^+!#{} . Although the string {Raw} need not occur at the beginning of the string, once specified, it stays in effect for the remainder of the string. |
{Text} [v1.1.27+] | Enables the Text mode, which sends a stream of characters rather than keystrokes. Like the Raw mode, the Text mode causes the following characters to be interpreted literally: ^+!#{} . Although the string {Text} need not occur at the beginning of the string, once specified, it stays in effect for the remainder of the string. |
Repeating or Holding Down a Key
To repeat a keystroke: Enclose in braces the name of the key followed by the number of times to repeat it. For example:
To hold down or release a key: Enclose in braces the name of the key followed by the word Down or Up. For example:
When a key is held down via the method above, it does not begin auto-repeating like it would if you were physically holding it down (this is because auto-repeat is a driver/hardware feature). However, a Loop can be used to simulate auto-repeat. The following example sends 20 tab keystrokes:
By default, Send will not automatically release a modifier key (Control, Shift, Alt, and Win) if that modifier key was 'pressed down' by sending it. For example, Send a
may behave similar to Send {Blind}{Ctrl up}a{Ctrl down}
if the user is physically holding Ctrl, but Send {Ctrl Down}
followed by Send a
will produce Ctrl+A. DownTemp and DownR can be used to override this behavior. DownTemp and DownR have the same effect as Down except for the modifier keys (Control, Shift, Alt, and Win).
DownTemp tells subsequent sends that the key is not permanently down, and may be released whenever a keystroke calls for it. For example, Send {Control DownTemp}
followed later by Send a
would produce A, not Ctrl+A. Any use of Send may potentially release the modifier permanently, so DownTemp is not ideal for remapping modifier keys.
[v1.1.27+]:DownR (where 'R' stands for remapping, which is its main use) tells subsequent sends that if the key is automatically released, it should be pressed down again when send is finished. For example, Send {Control DownR}
followed later by Send a
would produce A, not Ctrl+A, but will leave Ctrl in the pressed state for use with keyboard shortcuts. In other words, DownR has an effect similar to physically pressing the key.
If a character does not correspond to a virtual key on the current keyboard layout, it cannot be 'pressed' or 'released'. For example, Send {µ up}
has no effect on most layouts, and Send {µ down}
is equivalent to Send µ
.
General Remarks
Characters vs. keys: By default, characters are sent by first translating them to keystrokes. If this translation is not possible (that is, if the current keyboard layout does not contain a key or key combination which produces that character), the character is sent by one of following fallback methods:
- SendEvent and SendInput use SendInput() with the KEYEVENTF_UNICODE flag. [v1.1.27+]: ANSI builds of AutoHotkey convert the character to Unicode before sending it. Prior to v1.1.27, ANSI builds used the Alt+nnnnn method.
- SendPlay uses the Alt+nnnnn method, which produces Unicode only if supported by the target application.
- ControlSend posts a WM_CHAR message.
Note: Characters sent using any of the above methods usually do not trigger keyboard shortcuts or hotkeys.
[v1.1.27+]: For characters in the range a-z or A-Z (plain ASCII letters), each character which does not exist in the current keyboard layout may be sent either as a character or as the corresponding virtual keycode (vk41-vk5A):
- If a naked letter is sent (that is, without modifiers or braces), or if Raw mode is in effect, it is sent as a character. For example,
Send {Raw}Regards
sends the expected text, even though pressing R (vk52) produces some other character (such as К on the Russian layout).{Raw}
can be omitted in this case, unless a modifier key was put into effect by a prior Send. - If one or more modifier keys have been put into effect by the Send command, or if the letter is wrapped in braces, it is sent as a keycode (modified with Shift if the letter is upper-case). This allows the script to easily activate standard keyboard shortcuts. For example,
^c
and{Ctrl down}c{Ctrl up}
activate the standard Ctrl+C shortcut and{c}
is equivalent to{vk43}
.
If the letter exists in the current keyboard layout, it is always sent as whichever keycode the layout associates with that letter (unless the Text mode is used, in which case the character is sent by other means). In other words, the section above is only relevant for non-Latin based layouts such as Russian.
Modifier State: When Send is required to change the state of the Win or Alt modifier keys (such as if the user was holding one of those keys), it may inject additional keystrokes (Ctrl by default) to prevent the Start menu or window menu from appearing. For details, see #MenuMaskKey.
BlockInput Compared to SendInput/SendPlay: Although the BlockInput command can be used to prevent any keystrokes physically typed by the user from disrupting the flow of simulated keystrokes, it is often better to use SendInput or SendPlay so that keystrokes and mouse clicks become uninterruptible. This is because unlike BlockInput, SendInput/Play does not discard what the user types during the send; instead, such keystrokes are buffered and sent afterward.
When sending a large number of keystrokes, a continuation section can be used to improve readability and maintainability.
Since the operating system does not allow simulation of the Ctrl+Alt+Del combination, doing something like Send ^!{Delete}
will have no effect.
Send may have no effect on Windows Vista or later if the active window is running with administrative privileges and the script is not. This is due to a security mechanism called User Interface Privilege Isolation.
SendInput [v1.0.43+]
Shift Down Arrow Not Working
SendInput is generally the preferred method to send keystrokes and mouse clicks because of its superior speed and reliability. Under most conditions, SendInput is nearly instantaneous, even when sending long strings. Since SendInput is so fast, it is also more reliable because there is less opportunity for some other window to pop up unexpectedly and intercept the keystrokes. Reliability is further improved by the fact that anything the user types during a SendInput is postponed until afterward.
Unlike the other sending modes, the operating system limits SendInput to about 5000 characters (this may vary depending on the operating system's version and performance settings). Characters and events beyond this limit are not sent.
Shift Down
Note: SendInput ignores SetKeyDelay because the operating system does not support a delay in this mode. However, when SendInput reverts to SendEvent under the conditions described below, it uses SetKeyDelay -1, 0
(unless SendEvent's KeyDelay is -1,-1
, in which case -1,-1
is used). When SendInput reverts to SendPlay, it uses SendPlay's KeyDelay.
If a script other than the one executing SendInput has a low-level keyboard hook installed, SendInput automatically reverts to SendEvent (or SendPlay if SendMode InputThenPlay
is in effect). This is done because the presence of an external hook disables all of SendInput's advantages, making it inferior to both SendPlay and SendEvent. However, since SendInput is unable to detect a low-level hook in programs other than [AutoHotkey v1.0.43+], it will not revert in these cases, making it less reliable than SendPlay/Event.
When SendInput sends mouse clicks by means such as {Click}, and CoordMode Mouse, Relative
is in effect (the default), every click will be relative to the window that was active at the start of the send. Therefore, if SendInput intentionally activates another window (by means such as alt-tab), the coordinates of subsequent clicks within the same command will be wrong because they will still be relative to the old window rather than the new one.
SendPlay [v1.0.43+]
Warning: SendPlay may have no effect at all if UAC is enabled, even if the script is running as an administrator. For more information, refer to the FAQ.
SendPlay's biggest advantage is its ability to 'play back' keystrokes and mouse clicks in a broader variety of games than the other modes. For example, a particular game may accept hotstrings only when they have the SendPlay option.
Down Shifting Gears
Of the three sending modes, SendPlay is the most unusual because it does not simulate keystrokes and mouse clicks per se. Instead, it creates a series of events (messages) that flow directly to the active window (similar to ControlSend, but at a lower level). Consequently, SendPlay does not trigger hotkeys or hotstrings.
Like SendInput, SendPlay's keystrokes do not get interspersed with keystrokes typed by the user. Thus, if the user happens to type something during a SendPlay, those keystrokes are postponed until afterward.
Although SendPlay is considerably slower than SendInput, it is usually faster than the traditional SendEvent mode (even when KeyDelay is -1).
Both Win (LWin and RWin) are automatically blocked during a SendPlay if the keyboard hook is installed. This prevents the Start Menu from appearing if the user accidentally presses Win during the send. By contrast, keys other than LWin and RWin do not need to be blocked because the operating system automatically postpones them until after the SendPlay (via buffering).
SendPlay does not use the standard settings of SetKeyDelay and SetMouseDelay. Instead, it defaults to no delay at all, which can be changed as shown in the following examples:
SendPlay is unable to turn on or off CapsLock, NumLock, or ScrollLock. Similarly, it is unable to change a key's state as seen by GetKeyState() unless the keystrokes are sent to one of the script's own windows. Even then, any changes to the left/right modifier keys (e.g. RControl) can be detected only via their neutral counterparts (e.g. Control). Also, SendPlay has other limitations described on the SendMode page.
Unlike SendInput and SendEvent, the user may interrupt a SendPlay by pressing Ctrl+Alt+Del or Ctrl+Esc. When this happens, the remaining keystrokes are not sent but the script continues executing as though the SendPlay had completed normally.
Although SendPlay can send LWin and RWin events, they are sent directly to the active window rather than performing their native operating system function. To work around this, use SendEvent. For example, SendEvent #r
would show the Start Menu's Run dialog.
Related
SendMode, SetKeyDelay, SetStoreCapsLockMode, Escape sequences (e.g. `%), ControlSend, BlockInput, Hotstrings, WinActivate
Shift Down Key
Examples
Selects the File->Save menu (Alt+F followed by S).
Jumps to the end of the text then send four shift+left-arrow keystrokes.
Shift Down Data In Excel
Sends a long series of raw characters via the fastest method. Hp scan for mac software.