永发信息网

vb編程問題 求解答

答案:4  悬赏:80  手机版
解决时间 2021-05-07 22:54

我想实现

先按键盘上的Z 在连续2次空格 最后Enter

用在劲舞团游戏里面

我做了 在游戏里面没得作用

在桌面上 其它地方都ok

请高手解决啊

最佳答案

这是编程问题??

全部回答
搜 VBS脚本吧

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

'------------------按空格键的示例

keybd_event 32, 0, 0, 0

'-----------需延时50毫秒

keybd_event 32, 0, KEYEVENTF_KEYUP, 0

如果不行就是被hook了,就基本没戏了。当然不是完全没戏。还有一招驱动模拟,当然这招也不是一定能行,不过能对付大部分Hook了的键盘的游戏(比如QQ的零用钱大作战就是上面的办法不行,下面将要介绍这个办法成功了的),所以用到的这个Dll经常被杀毒软件干掉,因为这算是准硬件级的键盘模拟了(下面的代码你在互联网上基本找不到了,因为很少有人会发出这个来了,这个属于做挂的范畴了,现在做挂基本属于违法的不晓得这里给不给发):

首先你需要有这么几个文件(我这里不便提供,你只能自己去找了):

CRC232 MD5

WinIO.sys 56EEB5F3 1ce499b54e1deed84c1a62dff2105a9a

WinIO.vxd 68C7A0AA 7a5af5dd62c4bc97c1654790e8d2f307

WinIO.dll EFF33C04 c6b4bb7661fb5e0fc1efaa9f604a5da3

为了防止带毒,请确认以上校验信息,除非是新版本且你能确定已经是新版本!

找到这几个文件就基本完成了,剩下的事情就是简单的运用了。这几个文件的使用例子有一个标准的模块WinIO.bas

'-----------------------------------------------------------------------------------

Option Explicit

Public Declare Function MapPhysToLin Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysSize As Long, ByRef PhysMemHandle) As Long Public Declare Function UnmapPhysicalMemory Lib "WinIo.dll" (ByVal PhysMemHandle, ByVal LinAddr) As Boolean Public Declare Function GetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByRef PhysVal As Long) As Boolean Public Declare Function SetPhysLong Lib "WinIo.dll" (ByVal PhysAddr As Long, ByVal PhysVal As Long) As Boolean Public Declare Function GetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByRef PortVal As Long, ByVal bSize As Byte) As Boolean Public Declare Function SetPortVal Lib "WinIo.dll" (ByVal PortAddr As Integer, ByVal PortVal As Long, ByVal bSize As Byte) As Boolean Public Declare Function InitializeWinIo Lib "WinIo.dll" () As Boolean Public Declare Function ShutdownWinIo Lib "WinIo.dll" () As Boolean Public Declare Function InstallWinIoDriver Lib "WinIo.dll" (ByVal DriverPath As String, ByVal Mode As Integer) As Boolean Public Declare Function RemoveWinIoDriver Lib "WinIo.dll" () As Boolean

Public Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long

Public Sub KeyPress(VKEY As Integer, fc As Integer) Dim Sp As Boolean, byScancode As Long, i As Integer byScancode = MapVirtualKey(VKEY, 0) '{ For i = 1 To fc ' Call KbcWait4IBE ';//Wait for KBC input buffer empty Sp = SetPortVal(&H64, &HD2, 1) ')';//Send data back to the system command ' Label2.Caption = "SetPortVal1=" + Str(Sp) Delay 20 '延时20毫秒 ' 'Call KbcWait4IBE ';//Wait for KBC input buffer empty Sp = SetPortVal(&H60, byScancode, 1) ');//Send the key down scancode ' Label3.Caption = "SetPortVal2=" + Str(Sp) Delay 20 ' 'Call KbcWait4IBE ';//Wait for KBC input buffer empty Sp = SetPortVal(&H64, &HD2, 1) ');//Send data back to the system command ' Label4.Caption = "SetPortVal3=" + Str(Sp) Delay 20 ' 'Call KbcWait4IBE ';//Wait for KBC input buffer empty Sp = SetPortVal(&H60, byScancode Or &H80, 1) 'Or &H80));//Send the key up scancode ' Label5.Caption = "SetPortVal4=" + Str(Sp) 'Label6.Caption = "Key=" + Str(CLng(byScancode)) Delay 20 Next i '} Delay 20 End Sub

原例子只有API定义,KeyPress 是我从哪里找来的还是自己改装的忘记了,3年多以前写的了,fc应该是按键次数。MapVirtualKey也是后来补充进去的。

使用时:

Private Sub Form_Load() If InitializeWinIo = False Then'需预先装载WinIO

'-------装载WinIO失败!!!也就是模拟不成了。 MsgBox "Whoops ! There is a problem with InitializeWinIo.", vbOKOnly + vbCritical, "VBDumpPort32" End If End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Call ShutdownWinIo'程序结束时需要卸载WinIO End Sub

具体的按键模拟:

KeyPress 65, 1 '按键盘键“A”一次

注意这里需要使用键盘按键的物理键码,字符键即为对应字符的大写ASCII码,其他的键自己去查查了吧。

可能hook被截取,没效
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在最热门的网络游戏
“光阴似箭,日月如梭”到底是格言还是谚语
为什么我的QQ拼音点不了有谁能告诉我怎么点?
QQ炫舞戒指自定义“宝” 字 个性滴,急!
肋骨断了,怎么办只能养吗/》
幻影粒子保存的格式怎么是ip3能保存别的 格式
南宁太极剑1般多少钱,什么地方有卖?
FLASH 10怎么弄
陆发商场一街我想知道这个在什么地方
关于翻译问题
教师资格证是否全国通用?及其他
黄色衣服被染红了
索爱的水货手机一般能用多久啊?和行货有什么
拉直头发有没有局部拉直?
办e46套餐划算吗?
推荐资讯
关于教育不要学别人缺点的句子
把一组含有40哥数的数据分成六组,第一组到第
靠,这些曲子都是谁创的。
DNF劍魂PK技能加點
大家知道上海的周边店在哪里么??super juni
怎么样留住自己的爱人!
舒氏集团泰州特约经销商NO.苏002地址在哪,我
铝阳极氧化,染黑色,为什么人家染出来的是油
谁能把腾讯游戏的大小写下来?谢谢!
长城E580笔记本最大可以配置到多少
怎么建立副本
卡特是美国人,为什么他在多伦多猛龙打球,就
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?