VBA解决Windows空当接龙的617局

Windows的自带游戏空当接龙,其中第617局是比较难解的,需要尝试的次数比较多,而且经常忘记解法和步骤。

原本希望使用AutoIt或AutoHotkey、AAuto一类的工具,写一段自动化脚本快速解决这一局,但这些工具需要安装,而且容易被当做病毒。通过Office中的VBA调用Windows的API,对游戏窗口发送按键消息,可以快速演示解法。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Declare Function FindWindow Lib "user32" Alias _

  "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

    

Declare Function SendMessage Lib "user32" Alias _

  "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

  

Const WM_CHAR = &H102

  

Sub f()

s = "83 80 83 81 80 " & _

  "20 27 72 " & _

  "48 46 41 48 42 " & _

  "89 48 70 74 78 07 40 27 " & _

  "10 14 004 10 01 16 19 " & _

  "20 002 42 21 20 " & _

  "32 34 24 32 42 34 30 38 " & _

  "58 53 63 57 56 50 " & _

  "10 10 13 15 35 13 12 18"

  

h = FindWindow("FreeWClass", "空当接龙游戏 #617")

For i = 1 To Len(s)

  c = Mid(s, i, 1)

  m = 0.1

  If c >= "0" And c <= "9" Then

    a = SendMessage(h, WM_CHAR, Asc(c), 0)

  Else

    m = 0.3

  End If

  m = m + Timer: Do While Timer < m: DoEvents: Loop

Next

End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jh035

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值