python win32 简单操作方法

查询句柄 # 根据类名及标题名查询句柄, hwnd = win32gui.FindWindow("Tfrm_YzzPlayer","叶子猪手游模拟器") # 查找指定句柄的子句柄,后两个参数为子类的类名与标题,如果没有或不确定,可以写None hwnd = win32gui.FindWindow(hwnd,None,"sub_class","sub_title") 修改窗口大小 # 没有直接修改窗口大小的方式,但可以曲线救国,几个参数分别表示句柄,起始点坐标,宽高度,是否重绘界面 ,如果想改变窗口大小,就必须指定起始点的坐标,没果对起始点坐标没有要求,随便写就可以;如果还想要放在原先的位置,就需要先获取之前的边框位置,再调用该方法即可 win32gui.MoveWindow(hwnd,20,20,405,756,True) 前台后台 # 指定句柄设置为前台,也就是激活 win32gui.SetForegroundWindow(hwnd) # 设置为后台 win32gui.SetBkMode(hwnd, win32con.TRANSPARENT) 按键 # 在这里两几种方式可以选择 可以使用win32gui包和win32api的包,目前未深入了解,感觉是一样的,每一个里面还有PostMessage与SendMessage两都可选,依据其他文档的说法是SendMessage是同步的,在成功执行后才会返回,而PostMessage是异步执行的,直接返回,只是把内容加在队列里 # 几个参数分别为: 操作的句柄 , 按键的类型(是按下或者是弹起), 键码(大部分的功能键在win32con包中都,对于常用的数字或字母,直接去查找ASII码即可,如A 65 等等),相对于句柄中的位置(在这里需要使用win32api.MAKELONG(x,y)将两个地址转换为一个长地址; # 在这种情况下,可以做到后台的操作 # 需要注意的是每一个按键要有按下与弹起两个过程,比果我们要按Enter键,就需要有两句代码,第二个参数分别为 KEYDOAWN与 KEYUP ,如果是组合键,就先把组合键分别按下后再分别弹起即可 # win32gui.PostMessage(tid, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) # win32gui.SendMessage(tid, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0) win32api.SendMessage(hwd, win32con.WM_LBUTTONDOWN,… Read More »

python 批量修改文件后缀

python一键批量修改文件后缀! # python批量更换后缀名 import os # 列出当前目录下所有的文件 files = os.listdir(’.’) for filename in files:     portion = os.path.splitext(filename)     # 如果后缀是.dat     if portion[1] == ".gif":           # 重新组合文件名和后缀名         newname = portion[0] + ".png"           os.rename(filename,newname)

Python 批量压缩图片

方法1: 10 行 Python 代码,批量压缩图片 500 张 Tinypng 网站提供在线图片压缩服务,是所有图片压缩工具中最好用的之一,但它有所限制:批量最多处理 20 张,且每张大小不允许超过 5 M. 但是这个网站非常良心,开放了免费的 API,API 取消了每张大小的限制,只限定每个月处理 500 张图片. 下面介绍怎么使用它.第一步是在它网站上注册,获得专属的 API_KEY.使用的是邮箱注册,很简单. 然后是安装 package: pip install tinify 接着是处理图片: import tinify import os tinify.key = ‘此处填入你的key’ path = "C:\\Users\\yunpoyue\\Pictures\\cat" # 图片存放的路径 for dirpath, dirs, files in os.walk(path):     for file in files:         imgpath… Read More »

Python 操作图片识别,对比,验证码之PIL,pytesseract

安装python包 pip3 install pillow pip3 install pytesseract pytesseract的使用需要安装对应的Tesseract-OCR程序,无论是windows系统还是Lunix系统,都可以到GitHub下载相关版本。 链接:https://github.com/tesseract-ocr/tesseract/ 安装完成后,把你安装tesseract的路径添加到你电脑的环境变量path中, 或者修改pytesseract.py文件,指定tesseract.exe安装路径 # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY tesseract_cmd = ‘C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe’ 或者在实际运行中指定路径 pytesseract.pytesseract.tesseract_cmd = ‘D:\\Program Files\\Tesseract-OCR\\tesseract.exe’ 读取图片里面文字: from PIL import Image import pytesseract img = Image.open(’test1.png’) text = pytesseract.image_to_string(img, lang=’eng’) print(text) image_to_string函式有一个关键字引数 lang,默认是英文,可以改变成你想要的语言字串 pytesseract.image_to_string(img, lang=’eng’,config=’–psm 11… Read More »

怎么从Chrome浏览器中导出扩展程序为crx文件?

1,首先找到Chrome的扩展文件目录: 默认位置未为: C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\Extensions\ 也可以先找到chrome安装位置,再点“User Data”-“Default”–“Extensions”进入。 然后打开Chrome的’管理扩展程序’–>选择对应插件–>详细信息–> ID:   2,然后去Chrome扩展文件目录下,寻找对应此ID名字的目录: 3,再次进入Chrome扩展程序管理页,选择’打包扩展程序’,然后浏览到对应的目录–>进入选择对应版本!打包 打包后的crx文件将保存在chrome扩展程序目录对应ID的文件夹里:   附: adblock , adblock plus 插件每次安装后都会打开welcome新页面, 进入文件夹里文件–>abp-background.js 或者 background.js 里面, 设置 defaults.suppress_first_run_page = true; 就关闭自动打开新页面!      

Win10自动更新怎么永久关闭?有效的Win10强制更新关闭方法

服务中关闭Win10自动更新 1、首先使用 Win + R 组合快捷键,打开运行对话框,然后输入命令 services.msc ,点击下方的“确定”打开服务,如下图所示。 2、在Win10服务设置中找到 「 Windows Update 」选项,并双击打开,如图所示。 3、然后在Windows Update属性设置中,将启动类型改为「 禁用 」,再点击下方的「 停止 」,最后再点击底部的「 应用 」保存设置,如下图所示。 4、接下来再切换到「恢复 」选项,将默认的「重新启动服务 」改为「无操作 」,完成后点击下方的「应用 」,如下图所示。 注册表中关闭Win10自动更新 5、为了防止Win10自动更新还会死灰复燃,我们还需要在注册表设置中巩固一下。首先使用 Win + R 组合快捷键,打开运行对话框,然后输入命名 regedit,然后点击下方的「 确定 」打开注册表,如图所示。 6、在注册表设置中,找到并定位到 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc]。然后在右侧找到“Start”键,右键点击修改,把start值改成16进制,值改为“4”,然后点击「 确定 」保存数据,如图所示。 7、继续在右侧找到“FailureActions”键,右键点击修改该键的二进制数据,将“0010”、“0018”行的左起第5个数值由原来的“01”改为“00”,完成后,点击下方的“确定”即可,如图所示。 服务中关闭Win10更新关联服务 8、再次使用“WIN+R”组合快捷键打开运行操作框,输入命令“services.msc”,点击下方确定打开服务,然后在服务中找到“Windows Update Medic Service”选项,双击打开,将启动类型改为「禁用 」,如图所示。 9、之后在Win10服务设置中,再找到“Update Orchestrator Service”服务选项,双击打开,将启动类型改为「禁用 」,并「停止 」,完成后,点击下方的“确定”保存就可以了,如图所示。 组策略关闭Win10自动更新服务 10、为了防止Win10自动更新死灰复燃,我们还可以在组策略中关闭Win10更新,具体操作是:使用 Win +… Read More »

CENTOS 7 FIREWALLD详解,添加删除策略

CENTOS7中FIREWALL防火墙 修改防火墙配置文件之前,需要对之前防火墙【/etc/firewalld/zones/public.xml】做好备份 重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙。 1.firewall-cmd –state           #查看firewall的状态   firewall-cmd –list-all        #查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略)   firewall-cmd –list-all-zones  #查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)   firewall-cmd –reload          #重新加载配置文件 2、关闭firewall:   systemctl stop firewalld.service      #停止firewall   systemctl disable firewalld.service   #禁止firewall开机启动   firewall-cmd –state                … Read More »

SwitchyOmega访问Google / Gmail 服务器的代理策略

SwitchyOmega访问Google服务的策略! 问题:添加 *.google.com 后可以访问gmail,但是登录就提示’Connection failed’并退出! 解决:添加 *.googleapis.com 代理测试后解决! Chrome Webstore的插件安装 解决:添加 *.googleusercontent.com 代理策略

User Agent各参数解释

以下是几个常见的User Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 OPR/72.0.3815.320 Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0 Mozilla/5.0 (Macintosh; Intel Mac OS X… Read More »

Selenium 中ExpectedConditions 用法说明(最全整理)

首先导入包 from selenium.webdriver.support import expected_conditions as EC 1,判断当前页面的title是否精确等于预期 titleIs( String title) 2,判断当前页面的title是否包含预期字符串 titleContains( String title) if EC.title_contains(’google’):   ##等于 if ‘google’ in driver.title: 3,判断当前页面的url是否精确等于预期 urlToBe( String url) 4,判断当前页面的url是否包含预期字符串 urlContains( String fraction) 5,当前URL字符串正则表达式匹配 urlMatches( String regex) 6,判断元素是否出现,只要有一个元素出现,就通过。(出现不代表可见) 判断是否至少有 1 个元素存在于 dom 树中。举个例子,如果页面上有 n 个元素的 class 都是’column-md-3’,那么只要有 1 个元素存在,这个方法就返回 True。 presenceOfElementLocated( By locator) 7,判断元素是否出现,必须所有符合条件的元素都加载出来,才通过。 presenceOfElementsLocated( By locator)… Read More »