Board logo

标题: 磁盘背景更换程序(自己编的) [打印本页]

作者: bw070     时间: 2007-5-14 21:16    标题: 磁盘背景更换程序(自己编的)

自己编了个可以更改磁盘背景的批处理,编好了转成EXE发出来
在论坛待了也段日子了 学了不少东西 本人向各位老师说声谢谢!



程序代码大部分由本人独立编写

有一部分代码由 中国DOS联盟论坛 的 lxmxn 编写

在此向 lxmxn 表示感谢

使用方法:

下载解压后运行Disk Background Changer.EXE即可

请保证更换图片与本程序在同一目录下

详细使用方法请访问:

http://www.adminhy.xinwen365.net/computer/diskbackgrdchanger.htm

程序效果图


















点此下载 Disk Background Changer

效果图






作者: fengzi     时间: 2007-5-15 01:42
呵呵``高手挖`
作者: ttyp     时间: 2007-5-15 09:43
干嘛转成EXE?
作者: wudixin96     时间: 2007-5-15 09:54
类似的帖子已经有了。

http://www.cn-dos.net/forum/viewthread.php?tid=25517

[ Last edited by wudixin96 on 2007-5-15 at 09:58 AM ]
作者: tttest     时间: 2007-5-15 10:40
放源码出来。。
作者: zhoushijay     时间: 2007-5-15 11:06
用desktop的吧,这个文件还可以修改文件夹图标,用autorun可以修改磁盘的图标
作者: bw070     时间: 2007-5-15 11:54
.

[ Last edited by bw070 on 2007-5-15 at 11:46 PM ]
作者: bw070     时间: 2007-5-15 12:02
写成EXE因为不喜欢BAT那个单调的图表  转成EXE可以自己改图标

楼上给出别人编的我没有看过 不过我的代码也可以证实  我编的比他的差多了....呵呵

我的支持在BAT所在目录放入多张图片 而且可以选择其中的任意图片为你的任意磁盘设定背景  也许这点比那位兄弟编的在功能上好一些吧

呵呵

这样的图表不是好看一点么?



[ Last edited by bw070 on 2007-5-15 at 12:12 PM ]
作者: ttyp     时间: 2007-5-15 13:30
图标是好看,但是别人不敢用啊,除非你只想自己用,有源码的放心多了,还能学到东西
作者: gne3     时间: 2007-5-15 13:35
路过
Gne┼───
作者: bw070     时间: 2007-5-15 14:09


  Quote:
Originally posted by ttyp at 2007-5-15 01:30 PM:
图标是好看,但是别人不敢用啊,除非你只想自己用,有源码的放心多了,还能学到东西

哈哈 那你现在还敢用不 呵呵
作者: yefenghome     时间: 2007-5-22 13:43


  Quote:
Originally posted by zhoushijay at 2007-5-15 11:06:
用desktop的吧,这个文件还可以修改文件夹图标,用autorun可以修改磁盘的图标

我也是这么觉得的,也许只有这一种办法
作者: zglxw     时间: 2007-5-23 18:26
支持
作者: 546474     时间: 2007-5-25 19:30
其实就是改系统文件的。
作者: longhgc     时间: 2007-7-9 15:12
支持下..
作者: qinbuer     时间: 2007-7-9 20:34
实在不欣赏楼主的行为,我想这个论坛的宗旨无非就是:资源共享,虽然阁下的程序

我想泡过论坛两三星期的人都能猜得出来,但既然楼主有了作品,就应该把源代码帖

出来,一方面让走的远的兄弟指导,另一方面也让起步晚的兄弟学习学习,阁下的做

法难道是学了东西就向我们炫耀来了?
作者: wang6610     时间: 2007-7-9 21:17
@Echo Off

title 磁盘背景更换程序  By:Dark Blue  WebSite:adminhy.xinwen365.net

If Exist c:\readme.txt Goto :overreadme

Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ☆                                                                    ★
Echo ★   请详细阅读本说明:                                                ☆
Echo ☆   (注意:本说明只出现一次!)                                         ★
Echo ★   您现在使用的是"磁盘背景更换程序",由Dark Blue编写,QQ:93691582   ☆
Echo ☆   请将需要更换的图片与本程序放在同一目录下,图片数量不限制,但请   ★
Echo ★   尽量保持在20以下,且仅支持JPG格式,若图片为其他格式请自行转换,   ☆
Echo ☆   本程序不提供转换功能。本程序流程比较清晰,如果还有有什么不清楚   ★
Echo ★   请直接运行本程序,相信只需要一次您就可以轻松掌握。需要注意的是   ☆
Echo ☆   程序只能更改磁盘根目录背景,且每次修改后素材图片消失。建议图片   ★
Echo ★   名与修改磁盘盘符相对应如1.jpg 2.jpg 3.jpg 分别对应 C盘 D盘 E盘   ☆
Echo ☆   这样在修改时不至于把自己弄混了。本程序请不要放在磁盘根目录下执   ★
Echo ★   行,可能产生未知的BUG。                                          ☆
Echo ☆   个人小站 http://adminhy.xinwen365.net 欢迎您的到来。             ★
Echo ★                                                                    ☆
Echo ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
Echo.
Echo.
Echo.

Set /p right=请勿修改或者反编译本程序:(Y=同意;N=不同意)
If /i %right% equ y (Echo 版权归Dark Blue所有>c:\readme.txt&attrib c:\readme.txt +s +h&Goto :readme_y)

Goto :End
:readme_y
Echo.
Echo.
Echo.
:overreadme

Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ☆                                ★
Echo ★   正在检测您的电脑...请稍等!   ☆
Echo ☆                                ★
Echo ☆★☆★☆★☆★☆★☆★☆★☆★☆★
Echo %time% && ping 127.1 -n 4 >nul && Echo %time%
cls

Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ★                                                    ☆
Echo ★     数据如下:   盘符   存在与否 (仅列出存在磁盘!)  ☆

If Not Exist c:\ Goto :c
Echo ★                   C      存 在                     ☆
:c

If Not Exist D:\ Goto :D
Echo ★                   D      存 在                     ☆
:D

If Not Exist E:\ Goto :E
Echo ★                   E      存 在                     ☆
:E

If Not Exist F:\ Goto :F
Echo ★                   F      存 在                     ☆
:F

If Not Exist G:\ Goto :G
Echo ★                   G      存 在                     ☆
:G

If Not Exist H:\ Goto :H
Echo ★                   H      存 在                     ☆
:H

If Not Exist I:\ Goto :I
Echo ★                   I      存 在                     ☆
:I

If Not Exist J:\ Goto :J
Echo ★                   J      存 在                     ☆
:J

If Not Exist K:\ Goto :K
Echo ★                   K      存 在                     ☆
:K

If Not Exist L:\ Goto :L
Echo ★                   L      存 在                     ☆
:L

If Not Exist M:\ Goto :M
Echo ★                   M      存 在                     ☆
:M

If Not Exist N:\ Goto :N
Echo ★                   N      存 在                     ☆
:N

If Not Exist O:\ Goto :O
Echo ★                   O      存 在                     ☆
:O

If Not Exist P:\ Goto :P
Echo ★                   P      存 在                     ☆
:P

If Not Exist Z:\ Goto :Z
Echo ★                   Z      存 在                     ☆
:Z

If Not Exist Y:\ Goto :Y
Echo ★                   Y      存 在                     ☆
:Y

If Not Exist X:\ Goto :X
Echo ★                   X      存 在                     ☆
:X

If Not Exist U:\ Goto :U
Echo ★                   U      存 在                     ☆
:U

If Not Exist V:\ Goto :V
Echo ★                   V      存 在                     ☆
:V

If Not Exist W:\ Goto :W
Echo ★                   W      存 在                     ☆
:W
Echo ★                                                    ☆
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆

:reinput
Echo.
Echo.
Echo 例如:C盘即输入"C"(注意:不需要输入引号!)
Echo.
Echo 您当前的位置是:%disk%盘
Echo.
Set /p disk=请您输入您需要更改磁盘的盘符:

Echo [ExtShellFolderViews] >%disk%:\desktop.ini
Echo {BE098140-A513-11D0-A3A4-00C04FD706EC}= >>%disk%:\desktop.ini
Echo {BE098140-A513-11D0-A3A4-00C04FD706EC} >>%disk%:\desktop.ini
Echo [{BE098140-A513-11D0-A3A4-00C04FD706EC}] >>%disk%:\desktop.ini
Echo Attributes=1 >>%disk%:\desktop.ini
Echo IconArea_Image=backpic.jpg >>%disk%:\desktop.ini
Echo [.ShellClassInfo] >>%disk%:\desktop.ini
Echo ConfirmFileOp=0 >>%disk%:\desktop.ini
attrib %disk%:\desktop.ini +s +h

cls


If Not Exist %disk%:\ (Echo 错误!您输入的磁盘不存在!5秒后重新输入...&Echo %time% && ping 127.1 -n 5 >nul && Echo %time%&cls&Goto :reinput)

If Exist %disk%:\backpic.jpg (Echo →状态:磁盘%disk%已经存在背景!&Echo.)
If Not Exist %disk%:\backpic.jpg (Echo →状态:磁盘%disk%尚未创建背景!请选①创建!&Echo.)


:cho
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ☆                                ★
Echo ★     序列号    对应操作         ☆
Echo ☆                                ★
Echo ★       ①    更换磁盘背景       ☆
Echo ☆       ②    取消磁盘背景       ★
Echo ★       ③    重新选择分区       ☆
Echo ☆       ④    退出本程序         ★
Echo ★       ⑤    查看作者信息       ☆
Echo ☆                                ★
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo.
Set /p moves=请输入您所希望的操作序列号:

If /i %moves% equ 1 (Goto :cho1)
If /i %moves% equ 2 (Goto :cho2)
If /i %moves% equ 3 (cls&Goto :reinput)
If /i %moves% equ 4 (cls&Goto :End)
If /i %moves% equ 5 (cls&Goto :info)

cls
Echo   输入错误!请重新输入
Echo.
Goto :cho

:cho1

If Exist *.jpg Goto :Exist
cls
Echo 未探测到JPG格式图片,请在当前目录置入图片!
Echo.
Goto :cho
:Exist

If Exist backpic.jpg Goto :end2
@attrib %disk%:\backpic.jpg -s -h
@Del %disk%:\backpic.jpg
cls


Echo 序列号 图片名 (请勿输入无效序列号!)

Setlocal EnableDelayedExpansion
Set a=1
For %%a In (*.jpg) Do (
    Set jpgfile!a!="%%a"
    Echo    !a!   %%a
    Set/a a+=1
)

Set/p choose=请选择图片序列号(选中图片将设为%disk%盘的背景):
Ren !jpgfile%choose%! 4backpic.jpg


If Exist %disk%:\backpic.jpg Goto :endcho1
@Copy 4backpic.jpg %disk%:\backpic.jpg
Del 4backpic.jpg
:endcho1
attrib %disk%:\backpic.jpg +s +h
cls
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ☆                                                            ★
Echo ★      磁盘%disk%背景设置完毕,稍后请右键刷新查看效果!
Echo ☆                     5秒后返回菜单...                       ★
Echo ★                                                            ☆
Echo ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

Echo %time% && ping 127.1 -n 5 >nul && Echo %time%
cls
Goto :cho


:cho2
@attrib %disk%:\backpic.jpg -s -h
@Del %disk%:\backpic.jpg
cls
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ☆                                                            ★
Echo ★      磁盘%disk%背景还原完毕,稍后请右键刷新查看效果!
Echo ☆                     5秒后返回菜单...                       ★
Echo ★                                                            ☆
Echo ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

Echo %time% && ping 127.1 -n 5 >nul && Echo %time%
cls
Goto :cho


:end2
cls
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ☆                                                            ★
Echo ★       对不起,设计者不允许程序执行在磁盘根目录下!          ☆
Echo ☆       10秒后自动关闭本程序...或者请您关闭本程序            ★
Echo ★                                                            ☆
Echo ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
Echo %time% && ping 127.1 -n 10 >nul && Echo %time%
Goto :End

:info
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ☆                                                            ★
Echo ★          作者网名:Dark Blue                                ☆
Echo ☆          作者Q Q :93691582                                 ★
Echo ★          个人网站:adminhy.xinwen365.net                    ☆
Echo ☆                                                            ★
Echo ★                                                            ☆
Echo ☆          谢谢您的使用 如果有什么好的建议请E-Mail我         ★
Echo ★          E-Mail:huyang1986.student@sina.com                ☆
Echo ☆                                                            ★
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo.
Echo.
Echo.
pause
cls
Goto :cho
:End
作者: qinbuer     时间: 2007-7-9 22:37
再次路过,加分~  ^_^
作者: qinbuer     时间: 2007-7-9 23:37
似乎有几个漏洞:

1、在测试中弹出对话框如下---------------------------

cmd.exe - 没有软盘
---------------------------
驱动器中没有软盘。 请在驱动器 H: 中插入软盘。
---------------------------
取消   重试(T)   继续(C)   
---------------------------

H: 为虚拟光驱

其实我觉得中间那一大段似乎太过于臃肿了,倒不如:

Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
Echo ★                                                    ☆
Echo ★     数据如下:   盘符   存在与否 (仅列出存在磁盘!)  ☆
for /f "skip=1" %%i in ('wmic logicaldisk where "drivetype=3" get caption') do (
  echo ★                 %%i      存在                       ☆
    )
Echo ★                                                    ☆
Echo ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆


这样既简洁了代码,又消除了漏洞;

2、%disk%没有定义,无法显示当然位置的盘符,输出信息如下:

例如:C盘即输入"C"(注意:不需要输入引号!)

您当前的位置是:盘

请您输入您需要更改磁盘的盘符:

以上是一个菜鸟的愚见,请勿见怪:)

[ Last edited by qinbuer on 2007-7-9 at 11:46 PM ]