笔者下载了一些学习资料,但是格式是exe,只能在windows下才能播放,使用屏幕录像专家的转换功能一次只能转换1部视频,还得手动点击,非常麻烦,经过查询发现了一个python脚本可以批量转换。
# -*- coding: utf-8 -*-
from pywinauto.application import Application
import time
program_path = r"C:\Program Files (x86)\tlxsoft\屏幕录像专家 共享版 V2018\屏录专家.exe"
app = Application().start(program_path)
# 由于我的屏幕录像专家是未注册版,开启后不会马上加载出窗口
# 所以设置一个延时,避免找不到窗口抛出异常
time.sleep(15)
dlg_spec = app.window(title_re='屏幕录像专家.*',class_name='TMainForm')
#dlg_spec.type_keys('%TP')
dlg_spec.menu_select(r"转换工具->EXE/LXE转成MP4")
dlg_spec = app[r'EXE/EXE 转 MP4']
dlg_spec.print_control_identifiers() # 打印该窗体下的所有控件结构
for line in open('ToBeConvert.txt'):
filename = line.strip() # 去掉读取每一行时最后带着的空格和回车符
dlg_spec.Button3.click() # 点击“浏览”按钮
dlg_open = app.window(title=r'打开') # 获取“打开”对话框句柄
dlg_open.Edit.type_keys(filename,with_spaces = True)
dlg_open.Edit.set_text(filename) # 将文件绝对路径写入编辑框中
dlg_open.Button0.click() # 点击“打开”按钮
dlg_open.wait_not('visible')
#dlg_spec.CheckBox0.check() # 勾选自动扩帧
dlg_spec.Button0.click() # 点击“转换”
app['另存为'].Button0.click() # 点击“另存为”对话框的“保存”按钮
print("当前处理:"+filename)
app.window(title=r'屏幕录像专家',class_name='TMessageForm').wait('enabled',timeout=3600) # 等待转换结束
#这里的延时要改多点,否则可能没转换完就接着执行下一步导致抛出异常,延时高一点也没关系,只要处理完就会马上执行下一步
app.window(title=r'屏幕录像专家',class_name='TMessageForm').Ok.click() # 关闭转换完成后弹出的对话框
将要转换的文件路径放在:ToBeConvert.txt 内。
例如:
D:\aaa\123.exe
D:\aaa\263.exe
使用以下脚本可以快速列出指定目录下的所有文件路径:
import os, shutil
if __name__=='__main__':
work_dir = 'D:\百度云下载\wwwww'
for parent, dirnames, filenames in os.walk(work_dir, followlinks=True):
for filename in filenames:
file_path = os.path.join(parent, filename)
#print('文件名:%s' % filename)
print(file_path)