请教:使用AUTOIT如何修改桌面壁纸
请教:使用AUTOIT如何修改桌面壁纸 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 下面新增Wallpaper 字符串项(图片位置)
WallpaperStyle 字符串项 (0居中 1平铺 2拉伸)
刷新下explorer
恢复就删除这两个字符串项 原来收藏过一个。你看下。#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))
壁纸这块,还真有一些值得研究的。 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))
sliqi 发表于 2024-5-28 23:07
原来收藏过一个。你看下。
常量 $SPIF_SENDCHANGE 的值应该是 0x02 顽固不化 发表于 2024-6-2 10:25
测试在win10,这样也行。
BitOR(0x01,0x01) 没有意义,如上所述,应该是 BitOR(0x01, 0x02) 本帖最后由 顽固不化 于 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))
页:
[1]