VBA解决Windows空当接龙的617局

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

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

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)

相关推荐

  • VBA 编程基础

    11.3.1 了解 Visual Basic 语法 本节解释最常见的语法元素. 11.3.1.1 Activate 方法的语法 语法:object.Activate 在 Activate 方法的语法中,object 是一个所提供信息的占位符,在此例中的代码会返回一个对象.例如,下面的过程会在活动的文档中激活第二个窗口. Sub MakeActive() Windows(2).Activate End Sub 11.3.1.2 MsgBox 函数的语法 语法:MsgBox(prompt[, but

  • VBA中连接SQLSERVER数据库例子

    我们在使用excel编程时,很多时候都需要使用数据库. 那么如何连接数据库然后从数据库读取数据呢? VBA 连接 SQL SERVER 数据库 实例: Dim strConn As String, strSQL As String Dim conn As ADODB.Connection Dim ds As ADODB.Recordset Dim col As Integer '连接数据库的字符串 strConn = "Provider=SQLOLEDB.1;Persist Security I

  • excel vba 高亮显示当前行代码

    代码: 复制代码 代码如下: Private Sub Worksheet_SelectionChange(ByVal Target As Range) ThisWorkbook.Names.Add "XM", Target End Sub 这几行代码的作用是,当选择新的单元格时,将这个单元格(或者区域)定义为名称"XM",在条件格式设置中可以引用这个名称. 如下面的附件,将代码粘贴完成后,返回工作表中,选择A4:I15,点击菜单"格式-条件格式"

  • vba 获取PPT幻灯片中的所有标题的代码

    复制代码 代码如下: Private Sub CommandButton1_Click() Me.Enabled = False getTitles Me.Enabled = True End Sub Sub getTitles() On Error Resume Next Dim oPres As Presentation Set oPres = Application.ActivePresentation Dim oSlide As Slide Dim oShape As Shape Dim

  • Excel VBA连接并操作Oracle

    以下是通过Excel 的VBA连接Oracle并操作Oracle相关数据的示例Excel 通过VBA连接数据库需要安装相应的Oracle客户端工具并引用ADO的相关组件,引用ADO相关组件可按如下步骤操作: 1.打开VBA编辑器,在菜单中点选"工具","引用": 2.确保"Microsoft ActiviteX Data Objects 2.8 Library"和"Microsoft ActiviteX Data ObjectS Rec

  • VBA 浏览文件夹对话框调用的几种方法

    1.使用API方法  复制代码 代码如下: '[类型声明] Private Type BROWSEINFO hWndOwner As Long pIDLRoot As Long pszDisplayName As Long lpszTitle As Long ulFlags As Long lpfnCallback As Long lParam As Long iImage As Long End Type '[API声明] Private Declare Function SHGetPathF

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

    Windows的自带游戏空当接龙,其中第617局是比较难解的,需要尝试的次数比较多,而且经常忘记解法和步骤. 原本希望使用AutoIt或AutoHotkey.AAuto一类的工具,写一段自动化脚本快速解决这一局,但这些工具需要安装,而且容易被当做病毒.通过Office中的VBA调用Windows的API,对游戏窗口发送按键消息,可以快速演示解法. Declare Function FindWindow Lib "user32" Alias _ "FindWindowA&quo

  • 如何解决Windows Vista中无法通过锐捷认证上网的问题

    许多学校在寝室里上网都需要一个认证软件,连上内网之后才能通过VPN上外网,而在Windows Vista下面这些个软件可能工作不正常,从而在Windows Vista里不能上网.很不幸,我们学校就是其中这一. 寝室上网需要先用锐捷连上内网,再通过VPN连接外网.刚开始的时候,弄了半天,锐捷客户端硬是不能获取网卡信息,然后在Windows Vista里右下角的网络图标提示信息显示为"未识别的网络",然后VPN拨号不可用. 在网上翻了一大会,终于给找到了解决办法,下面是步骤: 1. 下载并

  • 解决Windows 10家庭版安装SQL Server 2014出现.net 3.5失败问题

    在安装SQL Server 2014的过程中,出现.net 3.5缺失,导致失败问题. 后来,研究了下,解决思路如下: 先将电脑更新到了windows 10专业版,(因为需要用到专业版才有的组策略管理器)使用win+R快捷键,打开运行,使用gpedit.msc打开. 然后,启用windows更新, 更改windows更新的策略(更改为通知安装), 然后,启用.net 3.5就能够实现顺利的下载和使用了. 以上所述是小编给大家介绍的解决Windows 10家庭版安装SQL Server 2014出

  • 解决Windows Server 安装后无法使用无线与音频 问题

    1.无线 运行powershell,输入命令: install-windowsfeature Wireless-Networking 之后重启. 运行cmd输入: sc config WlanSvc start= auto && sc start Audiosrv 2.音频服务 运行cmd输入: sc config Audiosrv start= auto && sc start Audiosrv 如果已经操作完以上步骤后,你的无线或者音频还不能使用,请重新安装对应的驱动就

  • 使用Python解决Windows文件名非用反斜杠问题(python 小技巧)

    在编程过程中,我们往往会遇到一个小麻烦--微软 Windows 系统在文件夹名之间使用反斜杠字符,而几乎所有其它的计算机(操作系统)都使用正斜杠: Windows filenames: C:\some_folder\some_file.txt Most other operating systems: /some_folder/some_file.txt 这是由于上世纪 80 年代早期计算机历史上的一个小意外.「MS-DOS」的第一版使用了正斜杠字符来指定命令行选项.当微软在「MS-DOS 2.

  • 解决Windows环境下安装 mysql-8.0.11-winx64 遇到的问题

    下载mysql安装包,我的是下载mysql-8.0.11-winx64,解压到你想安装的目录下,然后配置环境(window环境下,mac本还没试过), 1.首先,配置环境:右击此电脑->属性->高级系统设置->环境变量->path->新建 ,然后将自己的路径添加进去(例如我目录:F:\mysql\mysql-8.0.11-winx64),除此之外还要看解压的压缩包内是否有my.ini文件或者my-default.ini文件,如果没有需要自己写一个在根目录下,默认的配置信息如下

  • 解决windows上php xdebug 无法调试的问题

    有时候我们在使用php和nginx进行开发的时候,会出现这样的情况,明明扩展已经安装,但是就是无法调试成功.这个时候我们就要耐心去分析问题产生的原因. 第一步:查看php的版本比如是否是x64还是x86,看看xdebug是否激活,可以通过phpinfo();来查看扩展是否激活. 第二步:使用php -m再次检查xdebug是否安装. 这个时候可能会遇到 xdebug must be loaded as zend extension .这个是因为我们在php.ini中配置extension的时候需

  • 解决windows下python3使用multiprocessing.Pool出现的问题

    例如: from multiprocessing import Pool def f(x): return x*x pool = Pool(processes=4) r=pool.map(f, range(100)) pool.close() pool.join() 在spyder里运行直接没反应:在shell窗口里,直接报错,如下: Process SpawnPoolWorker-15: Traceback (most recent call last): File "C:\Anaconda3

  • 解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题

    最近打算开始研究一下机器学习,今天在windows上装tensorflow花了点功夫,其实前面的步骤不难,只要依次装好python3.5,numpy,tensorflow就行了,有一点要注意的是目前只有python3.5能装tensorflow,最新版的python3.6都不行. 装好tensorflow后,我建议大家不要直接用测试用例进行测试(如果没装好的话出现的错误一般都是:module 'tensorflow' has no attribute 'constant').第一次测试时可以在p

  • 解决Windows下python和pip命令无法使用的问题

    一. python命令找不到 安装python之后经常会出现下面的问题 , python命令找不到,这是因为Windows的环境变量中没有定义python的安装路径 这个时候我们先找到python的安装路径(或者在Python的IDE图标上点击右键 , 选择打开文件所在的位置) 右键点击地址栏 => 将地址复制为文本 => 右键此电脑(或者右键文件管理资源管理器的空白处) => 点击属性 => 在系统中选择高级系统设置 => 点击环境变量 => 在下面的系统变量框中双击

随机推荐