因为觉得 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