中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-03 09:55
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何通过rundll32.exe实现命令行更改桌面背景. 查看 2,280 回复 6
楼 主 [求助]如何通过rundll32.exe实现命令行更改桌面背景. 发表于 2006-12-04 19:10 ·  中国 山东 济南 电信
社区乞丐
★★
此图片另存后死机
积分 -49
发帖 90
注册 2006-12-02 13:00
19年会员
UID 72412
性别 男
状态 离线
如题:

显示器
模块: desk.cpl
命令: rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0
结果: 背景设置。

上面那个也不能直接改...下面却是屏保的,郁闷

模块: appwiz.cpl
命令: rundll32.exe desk.cpl,InstallScreenSaver c:\winnt\system\Flying Windows.scr
结果: 安装屏幕保护并显示预览属性页。

对于网络上可以查找到的rundll32.exe调用命令只是可以显示出某个操作界面.
对于脚本自动化没有任何作用...

关于命令行方式调用.dll函数的格式
以及支持带参调用的方式 是怎样 的资料一点也没有查到.

[ Last edited by tghksj on 2006-12-6 at 02:50 PM ]
2 发表于 2006-12-04 21:07 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
兄可以参考下面贴子内容,从注册表更改桌面背景到刷新桌面到使用第三方工具都谈及了~:)


更换桌面背景
http://www.cn-dos.net/forum/viewthread.php?tid=24982&fpage=1&highlight=%E6%A1%8C%E9%9D%A2


设置背景桌面 建立快捷方式 清空回收站 命令小工具
http://www.cn-dos.net/forum/viewthread.php?tid=23132&fpage=1&highlight=%E6%A1%8C%E9%9D%A2


用Rundll32如何“刷新桌面”和重新加载“explorer.exe”?
http://www.cn-dos.net/forum/viewthread.php?tid=24465&fpage=1&highlight=%E6%A1%8C%E9%9D%A2

[ Last edited by redtek on 2006-12-4 at 08:08 AM ]
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
3 发表于 2006-12-07 03:41 ·  中国 山东 济南 电信
社区乞丐
★★
此图片另存后死机
积分 -49
发帖 90
注册 2006-12-02 13:00
19年会员
UID 72412
性别 男
状态 离线
RE redtek :

我的设想是想利用rundll32.exe可以调用函数的功能,实现单句达到目的.
因为在user.dll中有替换桌面背景的函数,只是我在命令行中用rundll32.exe调用后
没有任何反映.

我的问题的关键不在"更换桌面背景"而在于如何通过rundll32.exe来实现.
既然rundll32.exe可以调用.dll函数,那么批处理为什么不能利用它象VB.VC的面向对象编程呢?

关于借助于第3方插件的批处理我早就已经实现并使用.借助MS的"壁纸自动换"代码如下
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
COPY bgswitch.dll %WINDIR%\SYSTEM32\
COPY bgswitch.exe %WINDIR%\SYSTEM32\
REGSVR32 /S bgswitch.dll
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\BackgroundManager /v "Directory" /t REG_SZ /d F:\桌面背景\wallpaper /f
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\BackgroundManager /v "Refresh Unit" /t REG_DWORD /d 0 /f
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\BackgroundManager /v "Refresh Frequency" /t REG_DWORD /d 0 /f
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\BackgroundManager /v "Random" /t REG_DWORD /d 0 /f
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\BackgroundManager /v "Disabled" /t REG_DWORD /d 0 /f
REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\BackgroundManager /v "Force Stretch" /t REG_DWORD /d 0 /f
bgswitch
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

啊对了,谢谢你给我的那个"TGHKSJ.CMD"加的5分,呵呵:P

[ Last edited by tghksj on 2006-12-6 at 02:54 PM ]
4 发表于 2007-02-16 03:29 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 64
注册 2006-12-20 04:35
19年会员
UID 74003
性别 男
状态 离线
好东西。。。。
5 发表于 2007-02-16 22:24 ·  中国 吉林 四平 联通
高级用户
★★★
积分 859
发帖 413
注册 2006-08-14 21:55
19年会员
UID 60532
状态 离线
顶一下,我也想知道api的函数功能
6 发表于 2007-02-17 01:14 ·  中国 浙江 台州 温岭市 电信
高级用户
★★
DOS学徒
积分 526
发帖 252
注册 2007-02-12 05:35
19年会员
UID 79286
性别 男
状态 离线
ding
7 发表于 2007-02-17 02:49 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线

reg add "hkcu\control panel\desktop" /v TileWallpaper /d 0 /f
reg add "hkcu\control panel\desktop" /v Wallpaper /d %wallpaper% /f
reg add "hkcu\control panel\desktop" /v WallpaperStyle /d 2 /f
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters

%wallpaper%为完整路径的BMP文件
论坛跳转: