前言假如有一个视频文件 video.mp4,需要在 Python 里面调用外部程序打开,你可能会直接使用 os.startfile() 方法,传入文件的路径,就能调用外部的播放器打开这个文件了,但是如果需要对播放器指定参数呢?这种方法就不适用了。好在有一个 AssocQueryStringW 函数(参考文档),支持通过注册表查找关联的默认程序,这样就能直接获取到默认程序的路径,再加上自定义的参数就可以实现了,非常省事。代码import ctypes from ctypes import wintypes def query_association(file_ext): buffer = ctypes.create_unicode_buffer(512) pcchOut = wintypes.DWORD(512) result = ctypes.windll.shlwapi.AssocQueryStringW(0x00000000, 1, file_ext, None, buffer, ctypes.byref(pcchOut)) i
在 Python 中打开文件夹并选中该文件(不直接打开),有两种实现方式:方式一使用 os 模块,最简单。无论是否存在已经选中该文件的资源管理器窗口,每次执行都会新建一个。例如,打开文件夹并选中 D:\ 下的 111.pdf 文件:import os os.system(r"explorer /select,D:\111.pdf")但是有一个问题,容易被杀毒软件拦截,用户体验不佳;如果文件名包含特殊符号,就无法识别,默认就打开我的文档目录了。"安全大脑" "极智守护"方式二使用 SHOpenFolderAndSelectItems 函数(参考文档),与方式一不同的是,若存在已打开此位置的资源管理器窗口,则会切换到该窗口,并选中文件,反之则新建一个资源管理器窗口并选中。这种方式有一个好处,就是不会被杀毒软件拦截。这里使用 ctypes 实现,不需要再安装 pywin32 了。import os import ctypes class ITEMIDLIST(ctypes.Structure): _fields_ = [("mkid", ct
Version 1.53.0 正式版发布本次更新内容:重构下载功能,解决历史遗留问题支持动态调整并行下载数支持将下载的 m4a 音频转换为 mp3 格式支持视频封面提取功能和视频弹幕下载功能支持调用系统默认播放器播放直播视频流新增下载选项对话框,可修改清晰度和音频等设置新增 "自动下载杜比"选项,可控制是否下载杜比视频适配 Linux 平台深色模式并行下载数最大可设置 8 个默认下载编码调整为 AVC/H.264下载失败的任务支持继续下载,保留下载进度优化部分界面显示效果修复名称以"-"开头的视频无法合成的问题修复 Linux/macOS 平台无法选择播放器路径的问题注意若无法运行程序,请下载 DirectX 修复工具修复 C++ 运行库下载地址编译版仅支持 Windows,Linux 和 macOS 用户请克隆仓库,按照教程安装。 GitHub蓝奏云
Version 1.52.0 正式版发布本次更新内容:支持解析直播链接,可进行录制,也可调用播放器直接播放支持账号密码登录和短信登录新增“显示完整剧集名称”功能,例如开启时,显示为《孤独摇滚》第1话 孤独的转机;关闭后,将只显示:孤独的转机优化视频转换功能优化默认缩放下的显示效果修复部分视频提示不存在的问题修复部分视频名称空白的问题修复部分分P视频无法解析的问题修复部分视频因缺少 Content-Length 请求头而导致无法下载的问题注意若无法运行程序,请下载 DirectX 修复工具修复 C++ 运行库下载地址编译版仅支持 Windows,Linux 和 macOS 用户请克隆仓库,按照教程安装。 GitHub蓝奏云
Version 1.51.1 正式版发布本次更新内容:修复无法打开扫码登录窗口的问题注意若无法运行程序,请下载 DirectX 修复工具修复 C++ 运行库下载地址编译版仅支持 Windows,Linux 和 macOS 用户请克隆仓库,按照教程安装。 GitHub蓝奏云
Scott Sloan