找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22196|回复: 5

[问题求助] [巳解决]如何用vbs设置动态壁纸 ?

[复制链接]
发表于 2013-4-15 07:47:40 | 显示全部楼层 |阅读模式
本帖最后由 807979023 于 2013-4-19 20:47 编辑

xp系统在C:\WINDOWS\Web\Wallpaper下有:  荷花.swf  荷花.htm

巳修改注册表: reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /d %windir%\Web\Wallpaper\荷花.htm /f

显示属性中巳选中“荷花”, 如何用vbs模拟下面的确定按钮,设置为当前壁纸 ?

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2013-4-19 16:58:11 | 显示全部楼层
这个吧,vbs 可以发送回车符
  1. createobject("wscript.shell").sendkey "{endter}"
复制代码
bat 可以这样
  1. assoc .refresh=tmp&assoc .refresh=""
复制代码
记得以前 fastslz 提到过 rundll 调用 api 刷新桌面的方案,没记下来,现在找不到了...

评分

参与人数 1技术 +1 收起 理由
807979023 + 1 乐于助人

查看全部评分

发表于 2013-4-19 19:55:35 | 显示全部楼层
这是个难题,我搜索了好些时间,也不知道windows是怎么处理的
发表于 2013-4-19 20:10:35 | 显示全部楼层
  1. rundll32.exe user32.dll,UpdatePerUserSystemParameters
复制代码
据说是一个未公开的API,可能在新版系统中会失效。

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 好像就是这个,收藏...

查看全部评分

 楼主| 发表于 2013-4-19 20:35:50 | 显示全部楼层
本帖最后由 807979023 于 2013-4-19 20:45 编辑

巳解决:

set WshShell = Wscript.CreateObject("Wscript.Shell")
set a=CreateObject("WScript.Shell")
WshShell.Run "control desk.cpl"  '打开显示属性
Wscript.Sleep 500                '延时0.5秒
WshShell.SendKeys "^{tab}"       '向右打开桌面选项
WScript.Sleep 100                '延时0.1秒
a.SendKeys "{ENTER}"             '按下回车键

感谢2楼4楼
2楼代码不错,很精简。4楼代码未试。
发表于 2013-4-19 21:41:30 | 显示全部楼层
过于依赖 sendkey 不太靠谱,能用精确的办法还是避免用 sendkey 比较好:
  1. rundll32.exe shell32.dll,Control_RunDLL  desk.cpl,,0
复制代码
按确定是没办法,这个只好 sendkey 了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 13:11 , Processed in 0.010913 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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