用VBA解决Windows空当接龙的617局

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

编程技巧