v1.0
Retrieves the current status of all the virtual keys.
Note: This command uses output arguments. C# and some
scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference so you
need to use the best workaround for your situation:
For scripting languages this command returns an ISIVTCollection
which you can use to get the output arguments.
For C# you can use the XSIApplication.ExecuteCommand method to call this command. ExecuteCommand
packs the output arguments into a C# System.Object containing an Array of the output arguments (see
Calling Commands from C#).
GetKeyboardState( [KeyCode], [Shift] ); |
Parameter | Type | Description |
---|---|---|
KeyCode | Long | Not implemented. |
Shift | siKeyboardState | Returns an integer mask which corresponds to the state of the Shift(1), Ctrl(2), and Alt(4) keys. |
dim l_ModifierKey GetKeyboardState , l_ModifierKey if CBool(CByte(1) And CByte(l_ModifierKey)) then LogMessage "Shift pressed" elseif CBool(CByte(2) And CByte(l_ModifierKey)) then LogMessage "Ctrl pressed" elseif CBool(CByte(4) And CByte(l_ModifierKey)) then LogMessage "Alt pressed" else LogMessage "No modifier key pressed." end if |
/* This example illustrates how to call the GetKeyboardState command and access the output argument called Shift; this contains the modifier key state. */ var rtn = GetKeyboardState(); var mod; // get modifier by index modifier = rtn(1); LogMessage( "modifier = " + modifier, siInfo ); // get modifier by argument name modifier = rtn("Shift"); LogMessage( "modifier = " + modifier, siInfo ); var str = ""; if ( 1 & modifier ) { str = "Shift " } if ( 2 & modifier ) { str += "Ctrl " } if ( 4 & modifier ) { str += "Alt " } if ( str != "" ) { LogMessage( str + "pressed", siInfo ); } else { LogMessage( "No modifier key pressed.", siInfo ); } //INFO : "modifier = 7" //INFO : "modifier = 7" //INFO : "Shift Ctrl Alt pressed" |