永发信息网

VB6.0 我在模块里声明了keybd_event,结果timer里仍然显示函数未定义,是怎么回事?

答案:2  悬赏:0  手机版
解决时间 2021-03-10 12:56
  • 提问者网友:棒棒糖
  • 2021-03-09 19:11
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const keyeventf_keyup = &H2

Private Sub TimerMP_Timer()
NowMP = ncnr(1212 + ncnr(48 + (ncnr(13432652))))
MaxMP = ncnr(1288 + ncnr(48 + (ncnr(13432652))))
If NowMP < MaxMP * Val(Textdrug3.Text) / 100 Then
keybd_event 105, 0, 0, 0
kyebd_event 105, 0, keyeventf_keyup, 0
End If

End Sub

ncnr没有问题,只看keybd_event。
最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-03-09 20:29
kyebd_event 105, 0, keyeventf_keyup, 0

改为
keybd_event 105, 0, keyeventf_keyup, 0



这是编程中的最低级错误,就是打字打错了。
全部回答
  • 1楼网友:醉吻情书
  • 2021-03-09 22:03
在vb中使用api是很麻烦的,如果在passcal borland delphi 下使用,跟本不需要声名, 而且模拟键盘也很简单。直接发送键码就行了。 比如procedure tform1.button1click(sender: tobject); var npad:hwnd; i,j:integer; begin //须先閞notepad npad := findwindow(nil, '未命名 - 记事本'); if npad <> 0 then begin bringwindowtotop(npad); //使其成为focus之window for j:=1 to 5 do begin for i := ord('a') to ord('z') do begin //大小写均同 keybd_event(i, 0, 0, 0); //keydown此键 keybd_event(i, 0, keyeventf_keyup, 0); //keyup keybd_event(vk_shift, 0, 0, 0); //按着shift ,使成为大写 keybd_event(i, 0, 0, 0); //keydown keybd_event(i, 0, keyeventf_keyup, 0); //keyup keybd_event(vk_shift, 0, keyeventf_keyup, 0); //放开shift end; keybd_event(vk_return, 0, 0, 0); //换行 keybd_event(vk_return, 0, keyeventf_keyup, 0); end; end;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯