VC的CODE....好像可以....{
 bScan = ::MapVirtualKey( bVK, 0 );
 keybd_event( bVK, bScan,  dwFlags, dwExInfo );
}能用到VB上吗?

解决方案 »

  1.   

    能,在VB中声明keybd_event和MapVirtualKey函数。
      

  2.   

    Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    Const VK_TAB = &H9Public Declare Sub keybd_event Lib "user32" _
      (ByVal bVk As Byte, ByVal bScan As Byte, _
      ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Public Declare Function MapVirtualKey Lib "user32" _
       Alias "MapVirtualKeyA" _
      (ByVal wCode As Long, ByVal wMapType As Long) As Long
      
    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As IntegerPublic Const KEYEVENTF_EXTENDEDKEY = &H1
    Public Const KEYEVENTF_KEYUP = &H2
    Private Const VK_LSHIFT = &HA0
    Private Const VK_RSHIFT = &HA1
    Private Const VK_LCTRL = &HA2
    Private Const VK_RCTRL = &HA3
    Private Const VK_LMENU = &HA4
    Private Const VK_RMENU = &HA5
      

  3.   

    上边的代码....怎么用????????//{
     bScan = ::MapVirtualKey( bVK, 0 );
     keybd_event( bVK, bScan,  dwFlags, dwExInfo );
    }
      

  4.   

    一般情况下还是好使的,也可以试PostMessage(),SetInput().不过好象DirectIpput的不好使吧,不清楚了我最近也烦这个问题,为了解决通用性,我写了一个键盘的过滤驱动来实现模拟按键,不过模拟后有时候就蓝屏了,还没找到原因.
      

  5.   

    LoadLibraryA
    GetProcAddress怎样完全拦截???????????????????????
      

  6.   

    keybd_event 除了DirectInput 外绝对行, 关键是要在后面加延时