1. 背景介绍
影刀就不用介绍了,功能够用并且强大,一直都有用影刀去做应用,解决一些需要手动重复很多次的工作,解放双手,时间留到更有用的地方。就像影刀的slogan说的:我们创造软件机器人,让人不需要像机器一样工作。
当然影刀这一类自动化工具最大的弊端就是前台运行,运行的过程中必须占用键盘鼠标。但相比于它的方便性和易用性,这个勉强可以接受。
说回来,之前做了一个自动获取某个网站的ck的影刀应用,最后获取到的ck是复制到剪贴板里,然后再手动去青龙里更新环境变量,虽然最麻烦的获取ck的过程已经用影刀解决了(有3个账号要登录退出登录退出的),但手动久了又开始犯懒了。正好最近服务器到期,又入手了个新的,2h4g400多,说贵不贵,一天才1块多,说便宜不便宜,因为之前的太便宜了,可惜没有了。昨晚尝试把这整个过程都用影刀自动实现,真正解放双手,甚至不用去管它。
整个流程大概是:
- 每晚到11点自动运行
- 获取目标网站ck(3个)
- 通过应用id和secret获取我的青龙ck
- 更新青龙目标环境变量
- 有异常才通知我,不要骚扰
做好了在本地调试OK,放到服务器上,发现第一步里有用到的“图像识别
”的功能,上了服务器后,一直报错:ShadowBot.UIAutomation.Provider.exe 无法启动此程序,因为计算机中丢失 MFPlat.DLL
生命不息,折腾不止啊!明明本地环境ok,为啥每次到了服务器就寄了呢?
2. 解决思路
- 一开始的思路是直接缺什么dll,就手动regsvr32注册什么dll,搜索的时候顺便还了解了一个Windows系统设计的很反人类直觉的东西。“
SysWOW64
” 和 “System32
” 的命名,这2个是反过来的,32位版本
的dll放在SysWOW64
目录下,而64位版
本的dll放在System32
目录下,据说是为了兼容,好吧,历史遗留问题。反正这个思路手动试了后,发现还是报错,果断放弃,寻找其他方向 - 然后就开始借助g老师,问了如下几个问题,启发了解决思路,尝试后果然ok,g老师就是牛*
- 每一个问题,g老师都回答列出了多种可能性,一开始说未安装
Media Feature Pack
,尝试在服务器管理器
里安装,发现没有这个选项,然后g老师说Windows Server 2012 需要启用Desktop Experience(桌面体验)
功能,因为Media Foundation
属于这一功能的一部分,尝试用powershell启动,发现会卡在24%不动,关了后看g老师还说了替代的办法,用cmd来安装,这次就ok了。 - 其实最终确定的原因就是Desktop Experience没开启,手动开启了后,影刀点击图像的功能就正常了。
3. 解决方法
- 使用
PowerShell
检查当前系统是否可以安装Desktop Experience(桌面体验)
功能,Win+R后输入PowerShell
,在打开的界面里输入Get-WindowsFeature
- 等待一会,在列出的内容里找
桌面体验
或Desktop-Experience
,这时会发现最右边的状态显示Available
,表示这个系统可以启用这个功能,但是还没有安装 - 使用命令提示符运行命令安装
Desktop Experience
,Win+R后输入cmd
,在打开的界面里输入DISM /Online /Enable-Feature /FeatureName:DesktopExperience /All
,等待安装成功后,系统需要重启一次 - 等重启后,再次在
Powershell
里用Get-WindowsFeature
命令,查看状态,发现状态变成Installed
,如图
- 再次尝试使用影刀的点击图像功能,发现可以正确识别图片了,ok
over, enjoy!!!
如对您有帮助,感谢投喂!