惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threatpost
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
Engineering at Meta
Engineering at Meta
爱范儿
爱范儿
博客园 - Franky
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
雷峰网
雷峰网
月光博客
月光博客
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Y
Y Combinator Blog
Know Your Adversary
Know Your Adversary
宝玉的分享
宝玉的分享
L
Lohrmann on Cybersecurity
S
SegmentFault 最新的问题
L
LangChain Blog
K
Kaspersky official blog
P
Palo Alto Networks Blog
P
Privacy & Cybersecurity Law Blog
美团技术团队
Scott Helme
Scott Helme
B
Blog RSS Feed
T
Threat Research - Cisco Blogs
博客园_首页
L
LINUX DO - 热门话题
腾讯CDC
C
CERT Recently Published Vulnerability Notes
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
V
V2EX
Martin Fowler
Martin Fowler
T
The Exploit Database - CXSecurity.com
人人都是产品经理
人人都是产品经理
MongoDB | Blog
MongoDB | Blog
Latest news
Latest news
S
Schneier on Security
AWS News Blog
AWS News Blog

博客园 - Eric-Liu

Docker Desktop for Windows ChatGLM本地部署 Llama本地部署 StableDiffusion本地部署 Python-CUDA-cuDNN安装 Python实现视频桌面 基于BERT进行文本分类 启用VTX技术支持启动android的虚拟机 - 报错 新机上岗 Core i7-4790 @ 3.60GHz 四核 / 16 GB ( 金士顿 DDR3 1866MHz ) / GeForce GTX 970 ( 4 GB / 七彩虹 ) VBS发送邮件-1 Oracle数据库编译存储过程挂死问题解决办法 Windows 7丢失用户、密码解决办法-我体验了! 批处理实现从Excel导入Oracle Windows Gadget开发之运行外部程序 - Eric-Liu - 博客园 VirtualBox自动重启之谜 拆分五笔字库,提高导入到google拼音的速度 写个设置命令的VBS脚本工具。 - Eric-Liu - 博客园 CMD下一个命令遍历目录删除相同垃圾文件 SQL注入之脚本篇-FOR ACCESS数据库
Python实现Windows下的视频壁纸
Eric-Liu · 2023-08-20 · via 博客园 - Eric-Liu
import sys

import win32gui
import subprocess
import time


def pretreatmentHandle():
    hwnd = win32gui.FindWindow("Progman", "Program Manager")
    workerW1 = None
    while 1:
        workerW1 = win32gui.FindWindowEx(None, workerW1, "WorkerW", None)
        if not workerW1:
            continue
        # print('workerW1: ', workerW1)
        subWinOfWorkerW1 = win32gui.FindWindowEx(workerW1, None, "SHELLDLL_DefView", None)
        if not subWinOfWorkerW1:
            continue
        # print('subWinOfWorkerW1: ', subWinOfWorkerW1)
        workerW2 = win32gui.FindWindowEx(None, workerW1, "WorkerW", None)
        if workerW2:
            # print('workerW2: ', workerW2)
            win32gui.SendMessage(workerW2, 0x0010, 0, 0)  # WM_CLOSE
        break
    return hwnd


if __name__ == "__main__":
    video_path = "D:\\Documents\\2439226.mp4"
    parameters = ["D:\\Downloads\\ffmpeg6.0\\bin\\ffplay.exe", video_path, "-noborder", "-x", "3440", "-y", "1440",
                  "-fs", "-loop", "0"]

    time.sleep(0.2)

    startup_info = subprocess.STARTUPINFO()
    process = subprocess.Popen(parameters, startupinfo=startup_info)
    time.sleep(0.2)

    # 获取桌面管理器的窗口
    program_win_h = win32gui.FindWindow("Progman", "Program Manager")
    print("原来的program窗口句柄:", program_win_h)
    # 发送消息新增Workrw窗口,有三/四层,顶层为Workrw,并且在Program窗口的上面
    win32gui.SendMessageTimeout(program_win_h, 0x052C, 0, 0, win32gui.ILD_NORMAL, 300)

    # 将视频播放窗口设置为Program窗口的子窗口
    time.sleep(1)
    program_win_h = win32gui.FindWindow("Progman", "Program Manager")
    print("分离后的program窗口句柄:", program_win_h)

    video_h = win32gui.FindWindow("SDL_app", None)
    win32gui.SetParent(video_h, program_win_h)
    pretreatmentHandle()

    process.wait()