win 中在右键可以直接设置 jpg 文件为桌面背景,有没有其命令行的方式直接调用它呢?

2018-07-26 20:56:05 +08:00
 hzcxdgioa
win 自己可以直接设置 jpg 格式为背景,但是其他方式貌似只能 bmp 才行。

win 自己的这个右键菜单能不能找到他的实现接口,然后从命令行调用。

搜索了注册表中的键值,根本没看出什么端倪,
2193 次点击
所在节点    Windows
3 条回复
013231
2018-07-26 21:22:27 +08:00
Osk
2018-07-26 22:01:00 +08:00
Python 3.5+版本:

保存成 python 脚本 调用函数即可,参数是图片文件的路径,可以传递相对路径。

```python
def set_windows_desktop_wallpaper(fpath: str) -> bool:
fpath = os.path.abspath(fpath)
SPI = ctypes.windll.User32.SystemParametersInfoW
SPI_SETDESKWALLPAPER = wintypes.UINT(0x0014)
SPIF_UPDATEINIFILE = wintypes.UINT(0x0001)
return SPI(SPI_SETDESKWALLPAPER, 0, fpath, SPIF_UPDATEINIFILE)
```



C++版本,使用 vs 编译,使用方法: 命令行调用

set_wp.exe C:\path\to\picture.jpg

注意:似乎必须传递绝对路径哦。


```cpp
/*
VS 项目配置:
不指定字符集, 默认使用 unicode 将导致程序异常
建议:修改项目设置 VC++ 代码生成: /mt 静态链接

*/


#include "stdafx.h"
#include <Windows.h>
#include<iostream>
using namespace std;

int main(int argc, char* argv[])
{
if (argc != 2)
{
return(1);
}

cout << argv[1];
SystemParametersInfo(
SPI_SETDESKWALLPAPER,
0,
argv[1],
SPIF_UPDATEINIFILE
);
return 0;
}

```
Osk
2018-07-26 22:02:00 +08:00
python 代码排版全部乱了,orz。反正就一个函数,代码缩进各位跟着感觉走吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/474476

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX