找回密码
 加入
搜索
查看: 313|回复: 7

[AU3基础] 请教:使用AUTOIT如何修改桌面壁纸

[复制链接]
发表于 2024-5-26 20:23:38 | 显示全部楼层 |阅读模式
请教:使用AUTOIT如何修改桌面壁纸

评分

参与人数 1金钱 -20 收起 理由
afan -20

查看全部评分

发表于 2024-5-28 13:28:21 | 显示全部楼层
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下面新增
Wallpaper 字符串项  (图片位置)
WallpaperStyle 字符串项 (0居中 1平铺 2拉伸)
刷新下explorer
恢复就删除这两个字符串项

评分

参与人数 1金钱 +20 收起 理由
顽固不化 + 20 赞一个!

查看全部评分

发表于 2024-5-28 23:07:37 | 显示全部楼层
原来收藏过一个。你看下。
#include <GDIPlus.au3>
 
Global Const $SPI_SETDESKWALLPAPER = 0x0014
Global Const $SPIF_UPDATEINIFILE = 0x01
Global Const $SPIF_SENDCHANGE = 0x01
$jpg=FileOpenDialog("选择文件",@ScriptDir,"图像文件 (*.jpg;*.bmp;*.png;*.tif)",1)
$path=@AppDataDir&"\Microsoft\Wallpaper1.bmp"
 
_GDIPlus_Startup ()
$hImage = _GDIPlus_ImageLoadFromFile ($jpg)
_GDIPlus_ImageSaveToFile ($hImage, $path)
_GDIPlus_ImageDispose ($hImage)
_GDIPlus_ShutDown ()
 
dllcall("user32","int","SystemParametersInfo","int",$SPI_SETDESKWALLPAPER,"int",1,"str",$path,"int",BitOR($SPIF_UPDATEINIFILE,$SPIF_SENDCHANGE))

评分

参与人数 1金钱 +20 收起 理由
顽固不化 + 20 很给力!

查看全部评分

发表于 2024-5-29 11:34:40 | 显示全部楼层
壁纸这块,还真有一些值得研究的。
发表于 2024-6-2 10:25:42 | 显示全部楼层
sliqi 发表于 2024-5-28 23:07
原来收藏过一个。你看下。

测试在win10,这样也行。
$path=FileOpenDialog("选择文件",@ScriptDir,"图像文件 (*.jpg;*.bmp;*.png;*.tif)",1)
If FileExists($path)  Then        dllcall("user32","int","SystemParametersInfo","int",0x0014,"int",1,"str",$path,"int",BitOR(0x01,0x01))

发表于 2024-6-2 21:02:26 | 显示全部楼层
sliqi 发表于 2024-5-28 23:07
原来收藏过一个。你看下。

常量 $SPIF_SENDCHANGE 的值应该是 0x02
发表于 2024-6-2 21:03:41 | 显示全部楼层
顽固不化 发表于 2024-6-2 10:25
测试在win10,这样也行。

BitOR(0x01,0x01) 没有意义,如上所述,应该是 BitOR(0x01, 0x02)

评分

参与人数 1金钱 +10 收起 理由
顽固不化 + 10 赞一个!

查看全部评分

发表于 2024-6-2 22:14:40 | 显示全部楼层
本帖最后由 顽固不化 于 2024-6-4 08:57 编辑
afan 发表于 2024-6-2 21:03
BitOR(0x01,0x01) 没有意义,如上所述,应该是 BitOR(0x01, 0x02)

谢谢fan哥,您观察的真仔细。订正如下:
$path=FileOpenDialog("选择文件",@ScriptDir,"图像文件 (*.jpg;*.bmp;*.png;*.tif)",1)
If FileExists($path)  Then        dllcall("user32","int","SystemParametersInfo","int",0x0014,"int",1,"str",$path,"int",BitOR(0x01,0x02))

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-27 02:22 , Processed in 0.076725 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表