cpp map 获取所有 key_自动获取雷电模拟器窗口句柄
每次都用命令行去获取窗口句柄虽说不麻烦,却是让人很不爽的事,今天我们就来看看如何自动获取窗口句柄。
首先,上次我们看到了获取窗口句柄是用雷电模拟器自带的命令行工具
dnconsole.exe,其实他和ldconsole.exe是一样的,我个人习惯用ldconsole.exe,看官随意。
首先,安装好雷电模拟器之后,他会在注册表里面写一些信息,我们就去读这些信息,然后通过这些信息定位到模拟器的路径,最后拼接出命令行工具的路径,然后再用python调用工具,再解析返回值,就可以顺利的获取到窗口句柄了。
注册表
下面是雷电模拟器注册表的位置以及信息。
既然知道了信息,我们就可以用他来获取了,老套路,封装一个函数,方便日后调用。
新建文件ld.py,以后所有模拟器相关操作都封装到这个文件里面。
import winreg, osdef get_ld_dir(): try: key = winreg.OpenKeyEx(winreg.HKEY_CURRENT_USER, "Software\ChangZhi2\dnplayer") v = winreg.QueryValueEx(key, "InstallDir") winreg.CloseKey(key) return v[0] except Exception as e: print(e) return "" def get_ldconsole(): return os.path.join(get_ld_dir(), "ldconsole.exe")def get_hwnd_list(): result = [] cmd = "{} list2".format(get_ldconsole()) p = os.popen(cmd) lines = p.readlines() p.close() for line in lines: line = line.strip("\r") line = line.strip("\n") line = line.split(",") for i in range(len(line)): if i != 1: line[i] = int(line[i]) result.append(line) # 索引,标题,顶层窗口句柄,绑定窗口句柄,启动标志,进程PID,VBox进程PID return result
函数get_ld_dir,是获取注册表里面的信息,原封不动的返回出来。
函数get_ldconsole,是将路径和我们需要的命令行工具拼接在一起,形成一个完整的路径。
函数get_hwnd_list,是调用命令行工具的list2命令获取当前已运行的所有模拟器的信息,所以最后他返回的是一个数组,比如你开了两个窗口,它就返回两个数据,以此类推,只要电脑够强悍,100开(理论上,别较真)也不是不可以的。
我们调用的时候就像这样,就可以拿到各个模拟器窗口的句柄了:
hws = get_hwnd_list()for h in hws: print(h[3]) # 根据格式来说,句柄是第四个,所以下标是3# 格式如下:# 索引,标题,顶层窗口句柄,绑定窗口句柄,启动标志,进程PID,VBox进程PID
在我电脑上某次的输出为,我开了两个模拟器:
1348941510230
后话
那么,截图有了,句柄有了,接下来是不是就该进行图片内容分析了?
是的,就是这样,有了图片就是分析了,接下来就是有点烧脑的东西了,不过呢,我也是个半吊子,我都能搞懂,各位看官也是可以的,况且只需要了解,并不是掰开来看,是吧。^o^
cpp map 获取所有 key_自动获取雷电模拟器窗口句柄相关推荐
- html自动获取ip地址,自动获取ip地址怎么设置无线路由器?
自动获取ip地址怎么设置无线路由器?如果用户的宽带类型是:自动获取IP地址上网的,那么在设置无线路由器的时候,正常情况下,只需要在"WAN口连接类型"或者"上网方式&qu ...
- 鼎信通达模拟无线融合网关 自动获取Ip以及相关常用指令-武汉迈思
1)设置桥接静态IP: 1571#桥接模式 1501#静态IP 152192168188# 设置IP地址为192.168.1.88 1532552552550 # 设置子网掩码为255.255.255 ...
- 怎么把dns服务器改成自动,如何设置电脑上的DNS服务器自动获取
DNS是打开网页必须要的域名解析服务器,不同地区和运营商使用的DNS也不同,很多时候网站打不开很多原因是DNS服务器不稳定导致的,那么当DNS服务器出现问题的时候我们是可以通过修改DNS的方式来访问网 ...
- Linux虚拟机设置自动获取IP地址
前言 如下图所示: 对于刚刚创建的Linux虚拟机是没有ip地址的,下面我们可以修改配置使其自动获取IP 设置自动获取IP 1.这里看上图我的网卡是ens33,所以之后应找到对应的配置文件 #执行命令 ...
- 8.腾讯微博Android客户端开发——自动获取验证码(2)
上一节给大家讲解通过调用android系统自带的浏览器进行授权认证的,使用该种方式能很容易的完成认证,但是该种方式有个弊端,也就是如果使用第三方的浏览器如UC.天天等,输入完QQ账号信息点击" ...
- HTML自动获取地址,网页中自动获取经纬度值并在地图中显示当前位置实例代码...
下面的HTML代码就是实例完整代码,如果你需要本项目完整实例代码,下载链接在文章最底部 网页中自动获取经纬度值并在地图中显示当前位置,可在地图中进行拖动选择当前位置并输出经纬度,这是项目实例代码,可参 ...
- 腾讯微博Android客户端开发——自动获取验证码
上一节给大家讲解通过调用android系统自带的浏览器进行授权认证的,使用该种方式能很容易的完成认证,但是该种方式有个弊端,也就是如果使用第三方的浏览器如UC.天天等,输入完QQ账号信息点击" ...
- 【React】手写虚拟滚动组件(二)可自动获取不定高度的虚拟滚动组件
前言 上次那篇写的虚拟滚动后来使用发现在某些情况并不是特别好用,并且只支持固定高度.我看了下umihook的虚拟滚动,发现也不是很好用,它支持手动设定每个元素高度,但也不能支持不定高度,而且限定更多了 ...
- paip.enhes efis 自动获取文件的中文编码
paip.enhes efis 自动获取文件的中文编码 ##为什么需要自动获取文件的中文编码 提高开发效率,自动获取文件的中文编码 .不需要手动设置编码...轻松的.. ##cpdetector 可 ...
最新文章
- 简单点,让论文写作简单点,老牌名校助理教授给出8个建议
- greta的问题及解决: LIBCMTD.lib(_wctype.obj) : error LNK2005: _iswspace already defined in xxx.obj...
- arduino上ESP8266用Adafruit_SSD1306库驱动OLED屏
- 游戏服务器端引擎——DogSE的设计
- SP2中修复IE浏览器的一些技巧
- so文件动态加载注意事项
- python新手入门代码-介绍十个Python小案例,新手入门就在这里
- discuz!net 的使用
- PHP5中PDO的简单使用
- 新北京交通限行时间、尾号查询
- SAR图像超分辨技术
- 在浏览器输入URL,按下回车之后的流程?
- 复制计算机软件,一键复制粘贴工具
- CentOS 7 Shipyard启动时一直显示省略号的解决办法
- Excel如何快速划分等级或成绩评级
- Python学多久才能独立接单赚钱?一个月足够了,本人私藏的学习计划分享给大家
- html广告横幅图片,制作漂亮网页横幅广告图片的PS教程
- 第18篇 Qt实现简单五子棋游戏(二)算法说明
- windows下通过cmd命令行快速进入指定文件夹
- 用草料二维码生成器制作App下载二维码
热门文章
- SQL 数据库学习04 ADB.NET
- lightroom使用小结五 调整作品曝光
- PHP是核心思路,PHP_模拟OICQ的实现思路和核心程序(二),3 在线用户的信息扫描和更新 - phpStudy...
- 计算复杂性理论初步(一)多项式时间归约
- 2020-12-21
- Eighth season sixth episode,the Halloween party!!!!!!
- 记录从零学习LaTeX的点滴
- Java工程师面试1000题41-50
- 25款免费古典唯美求职简历word模板,四页求职简历模板,含自荐信
- 2017 码云最火爆开源项目 TOP 50,你都用过哪些