VBA解決Windows空當(dāng)接龍的617局
Windows的自帶游戲空當(dāng)接龍,其中第617局是比較難解的,需要嘗試的次數(shù)比較多,而且經(jīng)常忘記解法和步驟。
原本希望使用AutoIt或AutoHotkey、AAuto一類的工具,寫(xiě)一段自動(dòng)化腳本快速解決這一局,但這些工具需要安裝,而且容易被當(dāng)做病毒。通過(guò)Office中的VBA調(diào)用Windows的API,對(duì)游戲窗口發(fā)送按鍵消息,可以快速演示解法。
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", "空當(dāng)接龍游戲 #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
相關(guān)文章
excel vba 限制工作表的滾動(dòng)區(qū)域代碼
如果希望限制工作表中滾動(dòng)的區(qū)域,可以通過(guò)設(shè)置WorkSheet對(duì)象的ScrollArea屬性來(lái)實(shí)現(xiàn)。2009-07-07
VBA處理數(shù)據(jù)與Python Pandas處理數(shù)據(jù)案例比較分析
這篇文章主要介紹了VBA處理數(shù)據(jù)與Python Pandas處理數(shù)據(jù)案例比較,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Excel·VBA合并工作簿的實(shí)現(xiàn)示例
本文主要介紹了Excel·VBA合并工作簿的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
VBA實(shí)現(xiàn)合并具有文本框的Word文檔
這篇文章主要為大家詳細(xì)介紹了如何基于VBA語(yǔ)言,對(duì)大量含有圖片、文本框與表格的Word文檔加以批量自動(dòng)合并,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
Excel?VBA按列拆分工作表和工作簿的實(shí)現(xiàn)
表格拆分是常見(jiàn)的數(shù)據(jù)處理,本文主要介紹了Excel?VBA按列拆分工作表和工作簿的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01

