secty9530 发表于 2008-5-31 21:46:42

修改桌面壁纸----jpg格式的,不用重起生效。

麻烦大家了,对不起!!!!!!!!!
修改桌面壁纸----jpg格式的,不用重起生效。

[ 本帖最后由 secty9530 于 2008-6-3 20:15 编辑 ]

木纳 发表于 2008-5-31 22:29:20

图的位置好像在注册表里.改成你要用的桌面壁的名字..
用Run ("RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters")这个应该可以立即生效

bing614 发表于 2008-6-1 04:26:31

选转换JPG为BMP在设置为壁纸,

secty9530 发表于 2008-6-1 09:48:16

2 楼 说的不准确,经过实验不成功..........

木纳 发表于 2008-6-1 16:23:23

注册表都不用改了...

$s_BitmapImage="深海世界.bmp"
_SetWallpaper($s_BitmapImage, 0)
Func _SetWallpaper($s_BitmapImage, $l_params = 0)
    $ai_Ret = DllCall('user32.dll', 'long', 'SystemParametersInfoA', 'long', 20, 'long', 0, 'str', $s_BitmapImage, 'long', $l_params)
    Return $ai_Ret
EndFunc

[ 本帖最后由 木纳 于 2008-6-1 16:40 编辑 ]

secty9530 发表于 2008-6-1 19:11:13

感谢各位的帮助,小弟要求的是jpg格式的图片.不是转换成bmp格式的问题.

penguinl 发表于 2008-6-1 22:14:45

你是需要更换桌面图片是吧!我在原来的论坛收集到了一段代码,但是没测试,你试下行不行!

;==========================================================================================
;=                      感谢你使用AutoIt 3制作的动态更换桌面背景程序                      =
;=      你可以把\\work\gamesadmin$\动态桌面\desk.bmp换成你服务器存放文件的路径            =
;=         并且你可以修改检查背景文件 (更改背景文件) 的延时 时间具体改法如下            =
;=                     把Sleep (30000) 里的数值修改成你需要的就可以了                     =
;=                      注: 这里的时间表达式是毫秒 也就是1000 = 1秒                     =
;=            服务器文件存放路径共有4处,延时表达有1处,建议你用"替换工具修改             =
;=            Break(0)是禁止退出程序 如果你不需要这个功能只要把0改成1即可             =
;=                                                                                        =
;=                        ::    本程序为 AutoIt 脚本    ::                              =
;=                                                                                        =
;=          作者: 笨死了    QQ:729584716   E-mail: kingermaster#msn.com                =
;==========================================================================================


;                                    程序从这里开始




$g_szVersion = "My Script 1.1"
If WinExists($g_szVersion) Then Exit ;
AutoItWinSetTitle($g_szVersion)

Break(0)
Opt("TrayIconHide", 1)
$i = 0
While $i <= 1
$a = FileGetTime("\\work\gamesadmin$\动态桌面\desk.bmp",0)
$c = $a
RegWrite('HKCU\Control Panel\Desktop','Wallpaper','reg_sz',"\\work\gamesadmin$\动态桌面\desk.bmp")
DllCall("user32","int","SystemParametersInfo","int",20,"int",0,"str","\\work\gamesadmin$\动态桌面\desk.bmp","int",0)


Sleep (10000)


$b = FileGetTime("\\work\gamesadmin$\动态桌面\desk.bmp",0)
Select
    Case $b <> $c
RegWrite('HKCU\Control Panel\Desktop','Wallpaper','reg_sz',"\\work\gamesadmin$\动态桌面\desk.bmp")
DllCall("user32","int","SystemParametersInfo","int",20,"int",0,"str","\\work\gamesadmin$\动态桌面\desk.bmp","int",0)
    Case $b = $c
EndSelect
WEnd

kakinkgb 发表于 2008-6-1 23:24:41

原帖由 木纳 于 2008-6-1 16:23 发表 http://www.autoitx.com/images/common/back.gif
注册表都不用改了...

$s_BitmapImage="深海世界.bmp"
_SetWallpaper($s_BitmapImage, 0)
Func _SetWallpaper($s_BitmapImage, $l_params = 0)
    $ai_Ret = DllCall('user32.dll', 'long', 'SystemParam ...

送一个jpg转换bmp的函数吧,要不楼主的要求得不到满足,呵呵

木纳 发表于 2008-6-1 23:32:52

没找到,
找到一定发出来大家一起学习.

木纳 发表于 2008-6-2 00:05:05

终于找到了...

BMP转jPG格式的...我试了下,可以的.
但不知道是不是所有都能行.

下面是BMP转JPG的#include <GDIPlus.au3> ;<A3LGDIPlus.au3>

Global $sImage, $hImage, $sCLSID

; Get BMP file to convert
$sImage = InputBox("BMP to JPG", "Enter File Name:", "深海世界.bmp", "", 200, 130)
if @Error then Exit

; Initialize GDI+ library
_GDIPlus_StartUp()

; Load image
$hImage = _GDIPlus_ImageLoadFromFile($sImage)

; Get JPEG encoder CLSID
$sCLSID = _GDIPlus_EncodersGetCLSID("JPG")

; Save image as JPG
_GDIPlus_ImageSaveToFileEx($hImage, "深海世界.jpg", $sCLSID)

; Shut down GDI+ library
_GDIPlus_ShutDown()

llztt 发表于 2008-6-2 09:04:01

人家楼主要的是如何设置JPG图片为桌面壁纸,
一堆人却在讨论如何把JPG和BMP图片互转换....

Bone 发表于 2008-6-2 10:38:49

背景图片一定要是BMP格式的才会显示到桌面
要设置JPG图片为桌面背景 一定要转换成BMP图片格式
新版的AU3没有了 GDIPlus.au3 转换文件
我借助了官方的 http://download.microsoft.com/download/WinXPHome/Utility/2.0/WXP/EN-US/WIAAutSDK.zip
来达到转换图片格式的目的

转换代码如下:
Dim $Img ;图片文件
Dim $IP ;图片处理

$Img = ObjCreate("WIA.ImageFile")
$IP = ObjCreate("WIA.ImageProcess")

$Img.LoadFile("Bliss.jpg") ;载入原始图片

$IP.Filters.Add($IP.FilterInfos("Convert").FilterID)
$IP.Filters(1).Properties("FormatID").Value = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}" ;这里的格式可以自行设定,见附表
$IP.Filters(1).Properties("Quality").Value = 100 ;图片质量

$Img = $IP.Apply($Img) ;应用

$Img.SaveFile("BlissCompressed.bmp") ;保存转换后的图片

sanhen 发表于 2008-6-2 11:03:08

以下是最佳选择函数。
新版一样集成有GDIPlus.au3函数。不可能抛弃的:(
http://www.autoitx.com/forum.php?mod=viewthread&tid=994&extra=page%3D1&frombbs=1

secty9530 发表于 2008-6-2 20:02:11

很感谢大家的回答,非常高兴连sanhen和参与近来了,可是如果要设置html壁纸,怎么办呢。

木纳 发表于 2008-6-2 23:11:43

狂汗....

你应该去另立个新的问题了.


``````````````````````````````
我倒..
还有这样的?
LZ非常不厚道.
页: [1] 2
查看完整版本: 修改桌面壁纸----jpg格式的,不用重起生效。