<p><font face="Tahoma" style="font-size: 8pt">Use of the API SendInput instead of SendKeys This will prevent the error of access denied in the Windows Vista. &nbsp;</font></p> <p><font face="Tahoma" style="font-size: 8pt">They forgive me but my English is not very good! I am Brazilian! Copy and paste this code in a module of vb! It will go to substitute the SendKeys standard of the VB! &nbsp;</font></p> <p><font face="Tahoma" style="font-size: 8pt"><font color="#000080">Option Explicit</font> <font color="#000080">Private Const</font> KEYEVENTF_KEYUP = &amp;H2 <font color="#000080">Private Const</font> INPUT_KEYBOARD = 1 <font color="#000080">Private Type</font> KEYBDINPUT wVk <font color="#000080">As Integer</font> wScan <font color="#000080">As Integer</font> dwFlags <font color="#000080">As Long</font> time <font color="#000080">As Long</font> dwExtraInfo <font color="#000080">As Long</font> <font color="#000080">End Type</font> <font color="#000080">Private Type</font> GENERALINPUT dwType As Long xi(0 To 23) As Byte <font color="#000080">End Type</font> <font color="#000080">Private Declare Function</font> SendInput <font color="#000080">Lib</font> &quot;user32.dll&quot; (<font color="#000080">ByVal </font>nInputs <font color="#000080">As Long</font>, pInputs <font color="#000080">As GENERALINPUT</font>, <font color="#000080">ByVal</font> cbSize <font color="#000080">As Long</font>) <font color="#000080">As Long</font> <font color="#000080">Private Declare Sub</font> CopyMemory <font color="#000080">Lib</font> &quot;kernel32&quot; <font color="#000080">Alias</font> &quot;RtlMoveMemory&quot; (pDst <font color="#000080">As Any</font>, pSrc <font color="#000080">As Any</font>, <font color="#000080">ByVa</font>l ByteLen <font color="#000080">As Long</font>) <font color="#000080">Public Function</font> SendKeysA(<font color="#000080">ByVal </font>vKey <font color="#000080">As Integer</font>, <font color="#000080"> Optional</font> booDown <font color="#000080">As Boolean</font> = <font color="#000080">False</font>) <font color="#000080">Dim </font>GInput(0) <font color="#000080">As GENERALINPUT</font> <font color="#000080">Dim</font> KInput <font color="#000080">As KEYBDINPUT</font> KInput.wVk = vKey <font color="#000080">If Not</font> booDown <font color="#000080">Then</font> &nbsp;&nbsp;&nbsp; KInput.dwFlags = KEYEVENTF_KEYUP <font color="#000080">End If</font> GInput(0).dwType = INPUT_KEYBOARD CopyMemory GInput(0).xi(0), KInput, Len(KInput) <font color="#000080">Call</font> SendInput(1, GInput(0), Len(GInput(0))) <font color="#000080">End Function</font> Using in form! Example: Instead of SendKeys ( {TAB} ) you it will use SendKeys vbKeyTab, True &nbsp;</font></p> <p><font face="Tahoma" style="font-size: 8pt">Simulation: Before! <font color="#000080">Private Sub</font> Form_KeyPress(KeyAscii <font color="#000080">As</font> <font color="#000080">Integer</font>) <font color="#000080">If</font> KeyAscii = vbKeyReturn <font color="#000080"> Then</font> &nbsp;&nbsp; SendKeys (&quot;{TAB}&quot;) &nbsp;&nbsp; KeyAscii = 0 <font color="#000080">End If</font> <font color="#000080">End Sub</font></font></p> <p><font face="Tahoma" style="font-size: 8pt"> Later! <font color="#000080">Private Sub</font> Form_KeyPress(KeyAscii <font color="#000080">As Integer</font>) <font color="#000080">If</font> KeyAscii = vbKeyReturn <font color="#000080"> Then</font> &nbsp;&nbsp; SendKeys vbKeyTab, <font color="#000080">True</font> &nbsp;&nbsp; KeyAscii = 0 <font color="#000080">End If End Sub</font> &nbsp;</font></p> <p><font face="Tahoma" style="font-size: 8pt">Abraços. Solução para o Windows Vista! Envio de teclas através da API SendInput!</font></p>