From the TC4 Help section "Simulating User Actions":
"When starting to record or playback a script, TestComplete automatically turns off the state of the CAPS LOCK key. These actions ensure that TestComplete will correctly simulate keystrokes (upper-case and lower-case keys)."
Then, to toggle it on or off, use the Keys method with the string "[Caps]".
There is no similar comment in the TC3 help? I would figure someone else has encountered this problem in the past. Sorry that I have not used TC3, but the AQA folks read this board as well, so they will likely have an answer for you soon...
You can use the following VBSript function to check this:
<font class="small">Code:</font><hr /><pre>' VBScript
If GetKeyState(VK_CAPITAL) And &H1 Then
isCapsLockPressed = True
isCapsLockPressed = False
End Function</pre><hr />