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" |