v1.0
userinterface
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"
|