ACTIVELOCK E VISTA

GOLVEIAR 19/05/2010 20:30:06
#342235
Ola galera blz! Gostaria de saber se o ActiveLock1.8 funciona no windows vista ultimate. Se funcionar como devo fazer com a permisão para que funcione.Estou com poblema com a SendKey que faço para que ele funcione no vista
GOLVEIAR 20/05/2010 08:11:29
#342254
Ola Galera ajuda nois ai
ALTAFIN 20/05/2010 08:39:00
#342259
Resposta escolhida
O comando SendKeys não funciona no Windows Vista, para isso deve usar uma rotina via API.
Em um módulo copie a rotina abaixo:

Option Explicit

Private Const KEYEVENTF_KEYUP = &H2
Private Const INPUT_KEYBOARD = 1

Private Type KEYBDINPUT
wVk As Integer
wScan As Integer
dwFlags As Long
time As Long
dwExtraInfo As Long
End Type

Private Type GENERALINPUT
dwType As Long
xi(0 To 23) As Byte
End Type

Private Declare Function SendInput Lib [Ô]user32.dll[Ô] (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
Private Declare Sub CopyMemory Lib [Ô]kernel32[Ô] Alias [Ô]RtlMoveMemory[Ô] (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

Public Function SendKeysA(ByVal vKey As Integer, Optional booDown As Boolean = False)
Dim GInput(0) As GENERALINPUT
Dim KInput As KEYBDINPUT
KInput.wVk = vKey
If Not booDown Then
KInput.dwFlags = KEYEVENTF_KEYUP
End If
GInput(0).dwType = INPUT_KEYBOARD
CopyMemory GInput(0).xi(0), KInput, Len(KInput)
Call SendInput(1, GInput(0), Len(GInput(0)))
End Function

Depois dentro do formulário chame a rotina conforme o exemplo abaixo:

Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
SendKeysA vbKeyTab, True
KeyAscii = 0
End If
End Sub

Atenciosamente,
Marcelo
Tópico encerrado , respostas não são mais permitidas