Delphi实现win10视频壁纸

中了抖音的毒,设置小姐姐视频作为win10壁纸;

关键点:获取桌面壁纸句柄

环境依赖:Win10 64位

                  vlc 32位 播放器

  • 获取桌面壁纸句柄

这里涉及到一个重要的api:

       SendMessageTimeout(FindWindow('progman', nil), $052c, 0 ,0, SMTO_NORMAL, $3e8,nil);

利用Microsoft_Spy++查看

使用上面提到的api能达到的效果:

具体实现函数

  • //获取win10系统中第二层窗口句柄(从最底层窗口开始)
    function  GetHwnd:hwnd;
    var tmp_hwnd,child_hwnd:hwnd;
        windowname,windoclasswname,child_windowname,child_windoclasswname:array[0..255] of char;
    begin
        //针对win10
        {
         桌面的结构搞清楚了。相当于图像处理中的四个图层,而且是透明图层。
      按类名由前至里的排序为:
      SysListView32
      SHELLDLL_DefView
      Progman
      #32769
    
        还记得我说的Progman和自己的两个子窗口分家的问题吗。它们分家的时机就是收受到一个message,一个微软就没有公开的message,连宏定义都没有。只要向Progman窗口发送这个消息,Progman就自动分家。相关代码如下:
        SendMessageTimeout(Program, 0x052c, 0 ,0, SMTO_NORMAL, 0x3e8,nullptr);
        }
        SendMessageTimeout(FindWindow('progman', nil), $052c, 0 ,0, SMTO_NORMAL, $3e8,nil);
        //遍历窗口  获取不含子窗体且父窗体是progman的 WorkerW窗体 句柄
        tmp_hwnd := GetWindow(GetDesktopWindow, GW_CHILD);
        while tmp_hwnd<>0 do
          begin
             winapi.Windows.GetClassName(tmp_hwnd,windoclasswname,256);   //获取窗体类名称
             winapi.Windows.GetWindowText(tmp_hwnd,windowname,256);       //获取窗体标题
             child_hwnd := winapi.Windows.GetWindow(tmp_hwnd,GW_CHILD);   //获取子窗体句柄
             if  (windoclasswname = 'WorkerW') and ( GetWindow(tmp_hwnd, GW_OWNER) = FindWindow('progman', nil)) then
              begin
                //showmessage('符合要求的WorkerW窗体句柄:'+inttostr(tmp_hwnd));
                result := tmp_hwnd;
              end;
             tmp_hwnd := GetWindow(tmp_hwnd, GW_HWNDNEXT);   //获取下一窗口句柄
          end;
    end;
  • 最终效果

不能上传gif图片,就只能贴张图片了

  • 成品下载

DELPHI--将视频设置为win10壁纸

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值