level 7
'源码1'*******************************VB.VBS*******************************Set oShell = CreateObject("shell.application")Set oDesktop = oShell.Namespace(0)oDesktop.self.invokeVerb "R&efresh"'*******************************VB.VBS*******************************'源码2'*******************************VB.VBS*******************************Dim WSHShell, strDesktopSet WSHShell = WScript.CreateObject("WScript.Shell")strDesktop = WSHShell.SpecialFolders("Desktop")WSHShell.AppActivate strDesktopWSHShell.SendKeys "{F5}"'*******************************VB.VBS*******************************
2007年03月05日 17点03分
1
level 0
如果上面不行的话,请用这个!Const DESKTOP = &H10&Set oShell = CreateObject("shell.application")Set oDesktop = oShell.Namespace(DESKTOP)oDesktop.self.invokeVerb "Refresh"
2007年03月05日 17点03分
2
level 7
哎,为了CBM老师的刷新桌面,没想到竟然熬到了晚上1:25,哈哈,不过,不错,总算有成就了,找到了最精简的源码!真是高兴,本小姐的脚本编程又进了一节!
2007年03月05日 17点03分
3
level 13
非常感谢, 不过第一个与第三个的结果与我的一样, 在背景小屏幕上的图片窗口已更新了, 但还是必需要在桌面上刷新才会换图.1F 的源码2 会使程序停摆(死机状), 非得结束进程才能退出.我的系统是 win2000
2007年03月06日 00点03分
5
level 0
1是要这个吗?如何改变桌面的图片? 此一问题需调用 SystemParametersInfo API 函数,细节如下:1. API 的声明:Const SPI_SETDESKWALLPAPER = 20Const SPIF_UPDATEINIFILE = &H1Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long注:如果以上的声明放在「一般模块」底下, 应在 Const 之前加上 Public 保留字, 并且将 Private 保留字去掉。2. 程序范例:Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BMP图档名称, SPIF_UPDATEINIFILE)例如:' 1. 将桌面图片设定成 c:\windows\setup.bmpCall SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", SPIF_UPDATEINIFILE)' 2. 将桌面图片清掉Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_UPDATEINIFILE)程序如下:Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BMP图档名称, SPIF_UPDATEINIFILE)例如:' 1. 将桌面图片设定成 c:\windows\setup.bmpCall SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", SPIF_UPDATEINIFILE)' 2. 将桌面图片清掉Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_UPDATEINIFILE)但以上程序设定图片之后, 必须等到下次 Windows 重新启动时才生效, 如果希望设定之后立刻生效,则程序须修改如下:Const SPIF_SENDWININICHANGE = &H2Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE )此外希望只有本次使用 Windows 时改变桌面图片(下次开机时还原原状), 则程序如下:Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", SPIF_SENDWININICHANGE ) ' 去掉 SPIF_UPDATEINIFILE
2007年03月06日 01点03分
6
level 1
我要VB源码,不是脚本,要复制到VB6就能用的,麻烦LZ发一下谢谢!
2007年03月06日 01点03分
7
level 13
谢谢6F同志, 这代码与我的相同, 在XP可行,在2000还要人工刷新.
2007年03月06日 01点03分
8
level 0
在吧里找吧,我有发过相同的代码,一个API就可以了,你这个应该是图标缓存问题
2007年03月06日 01点03分
9
level 7
7F,呵呵,我不会在VB吧发垃圾的,既然发了,就一定可以要VB 6中运行!呵呵!
2007年03月06日 02点03分
10
level 13
请注意看下面这张图片. 我原来的背景图片是 雪松.bmp 经过我的代码后已经到了下图这步了,此时小窗口的图片已更新为 cc.bmp 了, 而且是得到焦点了, "应用" 是灰的不可用, 如果我在这里先随便点击一张图片再点击 cc.bmp 此时 "应用" 就转变为 可用 了, 再点击 "应用" 桌面马上就更新为新的 cc.bmp 了,我说的这些动作就是一般我们在桌面上手动换图的动作. 在代码中需要解决的问题是: 在下图中如何让 "应用" 变成可用, 只要可用,再Sendkeys Ctrl+A 就可搞定了.
2007年03月06日 02点03分
11
level 13
我找到了一个方法了. 请教如何用FindWindowEx与SendMessage去自动点击 3F 图片中下面列表匡内的随便一个文件, 然后再自动点击经由CommonDialog所获得的 cc.bmp ,图片列表文件中最下面那个 ?
2007年03月06日 06点03分
15