找回密码
 加入
搜索
查看: 10607|回复: 24

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

  [复制链接]
发表于 2008-5-31 21:46:42 | 显示全部楼层 |阅读模式
麻烦大家了,对不起!!!!!!!!!
修改桌面壁纸----jpg格式的,不用重起生效。

[ 本帖最后由 secty9530 于 2008-6-3 20:15 编辑 ]
发表于 2008-5-31 22:29:20 | 显示全部楼层
图的位置好像在注册表里.改成你要用的桌面壁的名字..
用Run ("RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters")这个应该可以立即生效
发表于 2008-6-1 04:26:31 | 显示全部楼层
选转换JPG为BMP在设置为壁纸,
 楼主| 发表于 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[0]
EndFunc


[ 本帖最后由 木纳 于 2008-6-1 16:40 编辑 ]
 楼主| 发表于 2008-6-1 19:11:13 | 显示全部楼层
感谢各位的帮助,小弟要求的是jpg格式的图片.不是转换成bmp格式的问题.
发表于 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
发表于 2008-6-1 23:24:41 | 显示全部楼层
原帖由 木纳 于 2008-6-1 16:23 发表
注册表都不用改了...

[au3]$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()

评分

参与人数 1金钱 +1 收起 理由
kakinkgb + 1 好帖

查看全部评分

发表于 2008-6-2 09:04:01 | 显示全部楼层
人家楼主要的是如何设置JPG图片为桌面壁纸,  
一堆人却在讨论如何把JPG和BMP图片互转换....
发表于 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") ;保存转换后的图片

评分

参与人数 1金钱 +1 收起 理由
kakinkgb + 1 值得学习

查看全部评分

发表于 2008-6-2 11:03:08 | 显示全部楼层
以下是最佳选择函数。
新版一样集成有GDIPlus.au3函数。不可能抛弃的:(
http://www.autoitx.com/forum.php ... e%3D1&frombbs=1
 楼主| 发表于 2008-6-2 20:02:11 | 显示全部楼层
很感谢大家的回答,非常高兴连sanhen和参与近来了,可是如果要设置html壁纸,怎么办呢。
发表于 2008-6-2 23:11:43 | 显示全部楼层
狂汗....

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


``````````````````````````````
我倒..
还有这样的?
LZ非常不厚道.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-27 00:04 , Processed in 0.076021 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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