I don't think that will be possible using the builtin keyboard drivers of EPrime. You could use a low level windows function in an inline script to retrieve the key state of the left and right control keys: GetKeyState or GetAsyncKeyState. The latter one can be used to determine if a specific key was pressed during a specific time frame.
To be able to use this function, you should add a declaration to the global user script section:
Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal nVirtKey As Long) As Integer
Const VK_LCONTROL& = &HA2
Const VK_RCONTROL& = &HA3
Then, add the following inline just before the stimulus/response object:
Dim dummy As Integer
dummy = GetAsyncKeyState(VK_LCONTROL)
dummy = GetAsyncKeyState(VK_RCONTROL)
And the following after the stimulus/response object:
If GetAsyncKeyState(VK_LCONTROL)<>0 Then
ShowKey.Text = "LEFT"
ElseIf GetAsyncKeyState(VK_RCONTROL)<>0 Then
ShowKey.Text = "RIGHT"
Else
ShowKey.Text = "NONE"
End If
Make sure that the stimulus/response object has the prerelease time set to zero and the allowable mask to {CONTROL}.
You will have to change the lines that set the text of the ShowKey object. This example code just sets a feedback text for demonstration purposes.
Also see the attached example script.
BVest,
Paul