按键精灵怎么随机按下键盘按键并且不重复

按键精灵怎么随机按下键盘按键并且不重复?就是在游戏里,游戏有技能键ABCDE...等等。我想要按键经历实现自动按下键盘这几个键,随机按下,不重复。不重复,不重复代码我只写... 按键精灵怎么随机按下键盘按键并且不重复?
就是在游戏里,游戏有技能键ABCDE...等等。
我想要按键经历实现自动按下键盘这几个键,随机按下,不重复。不重复,不重复

代码我只写到这里,主要是不懂弄判断重复语句,有大神能说说吗?
或者有更好方案也可以说说。

Sub 随机技能
dim key(12),i
key(0) = 96
key(1) = 97
key(2) = 98
key(3) = 99
key(4) = 100
key(5) = 101
key(6) = 102
key(7) = 103
key(8) = 104
key(9) = 105
key(10) = 107
key(11) = 109
Randomize
i=int((12)*rnd)
KeyPress key(i), 1
End Sub
展开
 我来答
帐号已注销
2018-05-14 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6449
采纳率:69%
帮助的人:2116万
展开全部

你这里提到的“自动按下键盘这几个键”,是不是按顺序依次按下,我就当依次按下处理。

Dim RndNum(11)
Dim n, i, m, Result
 
'初始化数组
For i = 0 To 11
    RndNum(i) = 0
Next
 
'生成1-12随机数
n = 0
Randomize
RndNum(0) = Int(12 * Rnd + 1)
While n < 11
    Result = 0  '随机数重复标志,0表示不重复,1表示重复
    Randomize
    m = Int(12 * Rnd)
    'For循环判断生成随机数是否和前面重复
    For i = 0 To n
        If m = RndNum(i) Then 
            Result = 1
        End If
    Next
     
     If Result = 0 Then 
        n = n + 1
        RndNum(n) = m
    End If
Wend

'把随机数转换成按键
For i = 0 To 11
'MessageBox RndNum(i)
If RndNum(i) = 10 Then 
RndNum(i) = 107
ElseIf RndNum(i) = 11 Then
RndNum(i) = 109
Else 
RndNum(i) = RndNum(i) + 96
End If
Next
'数组RndNum存放结果,下面这一句是查看按键ASCII码的
MessageBox Join(RndNum, "|")
'依次按键
For i = 0 To 11
KeyPress RndNum(i), 1
Next

下面是用记事本测试四次的结果:

要想学好编程,首先要学算法,你这里做不出来,很明显是算法不会。

追问
谢谢大佬指导,确实,我只看了几天基础教程,没看到那么深入。才刚看到数组,会用数组随机一串号码,但不会让这串号码按下键盘,您真的帮大忙了。谢谢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式