一键搜索之Win10锁屏壁纸

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一键搜索之Win10锁屏壁纸相关的知识,希望对你有一定的参考价值。

  前天无意发现win10的锁屏壁纸挺漂亮的,就想着能不能保存下来?网上一搜果然有资料,当时参考的连接如下

  http://jingyan.baidu.com/article/fedf07375ea25135ad897761.html

  步骤挺简单的,目录为C:\Users\XXX\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_XXX\LocalState\Assets。但我们最终看到是一堆乱码式的文件,加个.jpg即可访问。感觉挺麻烦的,而且不是所有的文件都是全屏壁纸!

  技术分享

  能不能写个搜索的小程序,直接点一下就自动导出壁纸呢!当然是可以的啦(不然也没这篇文章了 ⊙▂⊙)~  具体解题思路如下

  1、获取当前显示器屏幕尺寸,为后面判断是否为全屏壁纸文件做准备

技术分享
1             //获取显示器屏幕尺寸,用来判断全屏大小的壁纸
2             double height = SystemParameters.PrimaryScreenHeight;
3             double width = SystemParameters.PrimaryScreenWidth;
获取屏幕尺寸

  2、获取最终壁纸所在的文件夹(这里写的不太满意 囧rz)

技术分享
//最终的壁纸目录
            string targetPath;

            //获取当前用户文件夹
            string userPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

            if (Directory.Exists(userPath + @"\AppData\Local\Packages\"))
            {
                foreach (var itemF in Directory.GetDirectories(userPath + @"\AppData\Local\Packages\"))
                {
                    //由于这级目录后缀会更换,所以用固定前缀来寻找目录
                    if (itemF.IndexOf("Microsoft.Windows.ContentDeliveryManager") > 0)
                    {
                        targetPath = itemF + @"\LocalState\Assets";
                    }
                }
            }
获取壁纸目录

  3、判断是否为全屏壁纸。是则导出,不是则狗带~ (这里判断是否为有效的图片文件,比较粗暴。如果其他好的方法,欢迎指出 ?(´▽`))

技术分享
 1  foreach (var itemW in Directory.GetFiles(targetPath))
 2                         {
 3                             try
 4                             {
 5                                 BitmapImage image = new BitmapImage(new Uri(itemW));
 6 
 7                                 //这里不用用Height和Width属性判断,因为不能保证每张图片都是96dpi
 8                                 if (image.PixelHeight == height && image.PixelWidth == width)
 9                                 {
10                                     File.Copy(itemW, filePath + string.Format(@"\{0}.jpg", ++i), true);
11                                 }
12                             }
13                             catch (NotSupportedException ex)
14                             {
15                                 //如果不是图片文件,则继续处理
16                                 continue;
17                             }
18                             catch (Exception ex)
19                             {
20 
21                             }
22                         }
判断并导入壁纸

  最终的程序如下,一共找了5张壁纸

技术分享

  所有的结果保存在同级目录Assets下面(由程序创建的)。 当然,这几张是我测试用的,不是微软推送的,别想多! 传送门

 技术分享

 

以上是关于一键搜索之Win10锁屏壁纸的主要内容,如果未能解决你的问题,请参考以下文章

如何设置win10锁屏壁纸

win10锁屏壁纸怎么设置

win10锁屏后锁屏壁纸不显示怎么办

为啥win10锁屏壁纸会自动变成Windows聚焦?

win10锁屏壁纸如何设置

如何设置win10锁屏壁纸