Input Director includes a command line tool that can be used to import/export its configuration, query its status or send it a command to action.
Before integration can be used, enable the option "Allow Integration Extensions" found on the Security tab in the Input Director application.
The tool is "IDCmd.exe". It is located in the Input Director installation directory (defaults to c:\Program Files\Input Director on 64bit systems and c:\Program Files (x86)\Input Director on 32bit systems) and can be driven by a script or executed directly from the command line.
Input Director can export and import its configuration using an XML formatted document. Detailed information on how to do so and the structure of the document can be found here.
To check if Input Director is enabled or disabled, use the following option:
IDCmd -queryIsEnabled
When run from the command line, a YES or NO is output the command window reflecting Input Director's status.
If run as part of a script, a 1 is returned if there was an error, otherwise 10 if ID is enabled and 11 if it is not
To check where the current cursor focus is, use:
IDCmd -queryFocusLocation
When run from the command line, LOCAL is output if control is with the Director system, MIRRORED if input is being mirrored across systems or if remote, the name of the client currently being controlled.
If run as part of a script, a 1 is returned if there was an error, otherwise a 10 if control is local, 11 if control is with a client and 12 when Input Director is mirroring input.
Running this command on a system setup only as a client will always return a LOCAL response. Using the command on a Director configured system will provide an answer covering the client systems under its control.
To enable Input Director, use:
IDCmd -enableID
If run as part of a script, a 1 is returned if there was an error and a 0 if successful
To disable Input Director, use:
IDCmd -disableID
If run as part of a script, a 1 is returned if there was an error and a 0 if successful
To enable screen edge transitions, use:
IDCmd -enableScreenTransitions
If run as part of a script, a 1 is returned if there was an error and a 0 if successful
To disable screen edge transitions, use:
IDCmd -disableScreenTransitions
If run as part of a script, a 1 is returned if there was an error and a 0 if successful
Control can be switched between computers, by using the command line tool on the Director system.
To return the cursor to the Director or switch off mirroring mode, use:
IDCmd -switchControlToLocal
To switch control to a specific client:
IDCmd -switchControlToClient:bob
Provide the client name to switch to, as in the example above. Quote the name if it includes spaces.
An optional switch -awaitclient can be included, which will block until transfer of control to the client has completed:
IDCmd -switchControlToClient:bob -awaitclient
If run as part of a script, a 1 is returned if there was an error and a 0 if successful
A client system profile encapsulates the client systems, monitor arrangement and options configured on the "Client Systems" tab. More information on this feature can be found here.. Multiple profiles can be configured and quick switched between as required.
Switching to a different profile can be done from the Director system using the command line:
IDCmd -switchToProfile:"Standard Setup"
Provide the name of the profile to switch to, as in the example above. Quote the name if it includes spaces.
IDCmd can be used to send a sequence of keystrokes to another computer or set of computers. It can only be run from a Director system. This command needs two types of information, the first being the target system(s) to send the keys and the second the actual key sequence itself.
There are 7 possible targets that can be selected:
IDCmd -sendkeys:"H|E|L|L|O" -todirector
IDCmd -sendkeys:"H|E|L|L|O" -tocurrent
IDCmd -sendkeys:"H|E|L|L|O" -tocurrentclient
IDCmd -sendkeys:"H|E|L|L|O" -toallclients
IDCmd -sendkeys:"H|E|L|L|O" -toallbutcurrent
IDCmd -sendkeys:"H|E|L|L|O" -toallsystems
IDCmd -sendkeys:"H|E|L|L|O" -toclient:bob
The sequence of keys is a formatted and quoted string, with each key name separated by a | symbol, e.g.
To send the key sequence HELLO to the director system:
IDCmd -sendkeys:"H|E|L|L|O" -todirector
It is important to keep in mind that this is a sequence of key strokes, not characters. So to produce a % character, shift would need to be help down, the 5 key pressed and then shift released.
The valid list of key names that can be used are in the table below. Each key can include an optional modifier.
Some examples are:
IDCmd -sendkeys:"LeftCtrl:D|C|LeftCtrl:U" -toclient:bob
Adding a :D to a key, will press the key down, but not release it. Likewise, adding a :U will only release the key.
In the example above, the left control key is held down, the C key is hit and finally the left control key is released.
IDCmd -sendkeys:"LeftWin:D|LeftCtrl:D|L|:U" -toclient:bob
The :U can be used on its own to indicate that all keys held down thus far are to be released.
In the above example, the left windows key is held down, then left control is held down, the L key is pressed, and the final :U releases all held keys (in this instance the left windows and left control keys)
IDCmd -sendkeys:"LeftWin:D|R|LeftWin:U|:W1000|C|M|D|Enter" -toclient:bob
The last modifier is :W, which indicates that Input Director should momentarily pause in pressing keys. :W must be followed by the number of milliseconds to wait before continuing.
This final example holds down the Left Windows key, presses the R key and releases Left Windows. This will bring up the Windows "Run" window. :W1000 will initiate a 1 second pause. Finally, the C, M, D keys are pressed, finished with the Enter key. When executed, this complete sequence will start a new Windows command prompt on the client bob.
CtrlBrk | BckSpce | Tab | Clear | Enter | Pause | CapsLock | Esc | SpaceBar | PgUp | PgDn | End |
Home | LeftArrow | UpArrow | RightArrow | DownArrow | Select | Execute | PrintScr | Insert | Delete | Help | |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B |
C | D | E | F | G | H | I | J | K | L | M | N |
O | P | Q | R | S | T | U | V | W | X | Y | Z |
LeftWin | RightWin | Apps | CompSleep | Keypad0 | Keypad1 | Keypad2 | Keypad3 | Keypad4 | Keypad5 | Keypad6 | Keypad7 |
Keypad8 | Keypad9 | Keypad* | Keypad+ | KeypadSep | Keypad- | Keypad. | Keypad/ | F1 | F2 | F3 | F4 |
F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | F13 | F14 | F15 | F16 |
F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | Numlock | Scrolllock | Keypad= | LeftShift |
RightShift | LeftCtrl | RightCtrl | LeftAlt | RightAlt | BrowserBack | BrowserForward | BrowserRefresh | BrowserStop | BrowserSearch | BrowserFavorites | BrowserStart |
VolumeMute | VolumeDown | VolumeUp | NextTrack | PrevTrack | StopMedia | PlayPause | SelectMedia | StartApp1 | StartApp2 | ; | |
= | , | - | . | / | BackQuote | [ | \ | ] | Apostrophe | BackSlash | Process |
Attn | CrSel | ExSel | EraseEOF | Play | Zoom | PA1 | Clear |
These keys represent physical keyboard keys, not characters (hence characters produced by holding down the shift key aren't represented).