爱问知识人 爱问教育 医院库

高分求VB★发送模拟按键★的方法

首页

高分求VB★发送模拟按键★的方法

■模拟一直按住一个键,Key_event和PostMessage函数我都用了,可以成功发送按键信息,但无法实现一直按住,比如执行一句KeyDown(只执行一次)后,会在记事本上输出一大串相同的对应字母,一直到执行KeyUp才停止,最好能发代码,要简易可行的。 

■必须要实现★一直按住★的效果,只按一下的方法不要费口舌讲了!!

■普通postmessage发送keydown的方法我会,但是并不是真的能模拟一直按住的效果,恳求指点! 

提交回答
好评回答
  • 2009-10-07 21:48:43
          实际的操作中,除了功能键能有一直按住效果外,其它字符键都不可以一直按住。
        你打开记事本,一直按住A键,等出了一串A字符后不放开A键再按下B键,会出现什么效果?这时A字符当然不会再出现,而会一直出B字符。
        那么,要解决你这个问题其实很简单,用timer控件+PostMessage就可以了,在timer中检测中止条件,符合时timer。
      enabled =false。 你既然都会用PostMessage了,timer控件对你来说应该是小菜一碟,代码俺就不写了。 另外,我找了下我以前写的一个游戏的外挂代码,其中有模拟按键的: Private Sub timTK4ts_Timer() If MyHP 0 Then PostMessage GHwnd, WM_KEYDOWN, VK_4, MakeKeyLparam(VK_4, WM_KEYDOWN) '键4按下 PostMessage GHwnd, WM_KEYUP, VK_4, MakeKeyLparam(VK_4, WM_KEYUP) '键4放开 End If End Sub 看代码,不post弹开就表示该键是一直按下的,但还是那句老话,只对功能键有用。
       。

    兰***

    2009-10-07 21:48:43

其他答案

    2009-10-07 15:11:39
  • 试试下面的方法。
    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Sub KeyDown()
        // 例:空格键的处理
        If GetAsyncKeyState(vbKeySpace) <> 0 Then	
        // 处理部分
        End If
    End Sub
    

    n***

    2009-10-07 15:11:39

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):