因为觉得win10锁屏页面比较好看,有时候能够根据日期变换,因此写个脚本获取锁屏页面
封面《冬天的谎言 -Snow World End-》

win10原生锁屏

根据查阅资料,win10的锁屏图片保存在C:\Users\你的用户名\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets,根据win10社区所说cw5n1h2txyewy是随机生成的,不过我发现的都是这个,也许其他版本的win10不太一样吧。这里面的文件需要添加.jpg后缀才是我们需要的图片。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import os
import shutil
import argparse

# win10 screen lock version

src = os.path.expanduser(
"~\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets")

dst = os.path.expanduser("~\Pictures\Saved Pictures\lock")

if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-d', '--dst', help='dst path', type=str, default=dst)
args = parser.parse_args()

dst = args.dst

if not os.path.exists(dst):
os.mkdir(dst)

# remove duplicate filename
srcFilenames = set(os.listdir(src))
dstFilenames = os.listdir(dst)
dstFilenames = [filename.replace('.jpg', '') for filename in dstFilenames]
dstFilenames = set(dstFilenames)
lackFilenames = srcFilenames - dstFilenames

# copy file
for filename in lackFilenames:
srcFile = os.path.join(src, filename)
dstFile = os.path.join(dst, filename)+'.jpg'
shutil.copyfile(srcFile, dstFile)

Lenovo锁屏

联想电脑助手会接管win10的原生锁屏,通过everything观察文件变化可以查到联想锁屏的位置在C:\ProgramData\Lenovo\devicecenter\LockScreen\cache,且以jpg格式存好了,可惜的是大部分图片原本就有联想的二维码或者水印。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os
import shutil
import argparse

# lenovo screen lock version

src = "C:\ProgramData\Lenovo\devicecenter\LockScreen\cache"

dst = os.path.expanduser("~\Pictures\Saved Pictures\lock")


def get_filelist(dir, extract):
filelist = []
filenames = os.listdir(dir)
for filename in filenames:
ext = os.path.splitext(filename)[-1]
if ext == extract:
filelist.append(filename)
return filelist


if __name__ == '__main__':

parser = argparse.ArgumentParser()
parser.add_argument('-d', '--dst', help='dst path', type=str, default=dst)
parser.add_argument('-s', '--src', help='src path', type=str, default=src)
args = parser.parse_args()

dst = args.dst
src = args.src

if not os.path.exists(src):
exit("src path not found")

if not os.path.exists(dst):
os.mkdir(dst)

# ignore zip
srcFilenames = set(get_filelist(src, '.jpg'))
dstFilenames = set(os.listdir(dst))
# remove duplicate filename
lackFilenames = srcFilenames - dstFilenames

# copy file
for filename in lackFilenames:
srcFile = os.path.join(src, filename)
dstFile = os.path.join(dst, filename)
shutil.copyfile(srcFile, dstFile)

开机自启动

开机自启动只需要将脚本放在C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup文件夹,经过个人电脑测试,powershell可以直接运行python脚本,如果不行,可以写bat脚本进行处理。

总结

目前现在暂时使用lenovo的程序,后面考虑爬取图片更换。目前代码仓库在repo