2009年1月19日星期一

图片&压缩文件合并器-开源

这个是我用VB6.0+SP6编写的图片&压缩文件合并器。理论上支持全部图片、压缩文件格式,实践证明支持各种主流格式,非主流格式没有试验。



以上永远为最新版本的图片。怎么样,不错吧?但是,有什么用?(以上图片不是合并后的图片,而是普通图片,不要试了)

这个小工具的用处在于:你可以把rar文件和jpg文件合并起来,传到网上相册中,既保存了图片,同时也把你的文件(可以合并个人隐私文件哦!)传了上去。打开这个文件时,会出现图片,但如果把扩展名改为rar,再打开,就会出现压缩文件,且里面内容无损。

现在网上有个老丁文件合并器,我觉得它做的不够人性化,没有提示,不能让用户自主选择是否只读等(好像有点王婆卖瓜……)

现在提供源文件和编译好的程序:(以下永远为最新版本的合并器)

最新合并器程序.rar

提示:若不能运行,则是因为你的系统是过度精简或者系统文件丢失了。把comdlg32.ocx复制到exe文件同级目录下即可。或者点击开始-运行-输入regsvr32 d:comdlg32.ocx(首先要把comdlg32.ocx复制到D盘)即可。

本程序仅供学习用,出现任何法律责任本人概不负责。

这个工具还有一个不是错误的错误,就是打开后光标会自动聚焦到第二个文本框内,见上图。这是一开始把rar和jpg位置弄倒了,后来再正过来,text2到了上面,text1到了下面。很好修改,但不想修改了,完全不影响使用。

示例合并后图片:

到这篇日志查看

下一页:What's New,核心源代码



程序更新:

2009年5月28日

1、去掉了点击就出现蓝天下的大图片,改为右下角一行小字。

2、重新编写核心代码。变化很大。

原核心源代码:


 

        
  1. If textjpg.Text = "" Then MsgBox "你在忽悠我?"Exit Sub 

  2.     
  3. If textrar.Text = "" Then MsgBox "你在忽悠我?"Exit Sub 

  4.     
  5. If Text3.Text = "" Then MsgBox "你在忽悠我?"Exit Sub 

  6.     
  7. Dim a, b, ab, w, xw, zd, wl, wjj 

  8.     
  9. a = textjpg.Text 

  10.     
  11. b = textrar.Text 

  12.     
  13. ab = Text3.Text 

  14.     
  15. w = Environ("windir"

  16.     
  17. wl = w + "system32cmd.exe /c" + " " + "copy /b" + " " + """" + a + """" + " " + "+" + " " + """" + b + """" + " " + """" + ab + """" 

  18.     
  19. wjj = w + "explorer.exe" + " " + """" + ab + """" 

  20.     
  21. Shell wl, vbHide 

  22.     
  23. MsgBox "合并完成", vbInformation, "恭喜" 

  24.     
  25. zd = MsgBox("要为文件设置只读属性吗?有些网站、邮箱会认为这个文件是病毒,设置只读属性后就不再误报病毒。", vbYesNo, "只读属性"

  26.     
  27. If zd = vbYes Then 

  28.     
  29. SetAttr Text3.Text, vbReadOnly 

  30.     
  31. MsgBox "设置完成!", vbOKOnly, "恭喜" 

  32.     
  33. End If 

  34.     
  35. xw = MsgBox("要打开合并后的文件吗?", vbYesNo, "询问"

  36.     
  37. If xw = vbYes Then 

  38.     
  39. Shell wjj, vbNormalFocus 

  40.     
  41. Else 

  42.     
  43. MsgBox "您选择了不打开,现在转入程序初始界面。如果您不需要再合并了,请点击“退出”。" 

  44.     
  45. End If






 

原来的超级简单。

现在的:

ASP/Visual Basic代码

        
  1. Private Sub Command4_Click()    

  2.     
  3. '更改状态栏文字    

  4.     
  5. StatusBar1.SimpleText = "点击进行合并……"    

  6.     
  7. '首先检查三个文本框是否为空,若为空则提示并退出    

  8.     
  9. If textjpg.Text = "" Then StatusBar1.SimpleText = "错误!你还没选完文件呢!"Exit Sub    

  10.     
  11. If textrar.Text = "" Then StatusBar1.SimpleText = "错误!你还没选完文件呢!"Exit Sub    

  12.     
  13. If Text3.Text = "" Then StatusBar1.SimpleText = "错误!你还没选完文件呢!"Exit Sub    

  14.     
  15. '若都不为空则继续执行下面语句    

  16.     
  17. '蓝天下的图片、压缩文件合并器核心代码,调用了cmd程序    

  18.     
  19. Dim cmd    

  20.     
  21. cmd = Environ("windir") & "system32cmd.exe /c copy /b /y " & """" & textjpg.Text & """ " & "+ " & """" & textrar.Text & """ " & """" & Text3.Text & """"    

  22.     
  23. Shell cmd, vbHide    

  24.     
  25. StatusBar1.SimpleText = "合并完成!"    

  26.     
  27. '合并过程结束    

  28.     
  29. '=====================    

  30.     
  31. '若有附加选项选中则询问是否继续    

  32.     
  33. If zhidu.Value = Unchecked And dakai.Value = Unchecked And tuichu.Value = Unchecked Then    

  34.     
  35. StatusBar1.SimpleText = "无附加选项,程序结束。"    

  36.     
  37. Exit Sub    

  38.     
  39. End If    

  40.     
  41. '当存在生成后文件时才执行。    

  42.     
  43. '下面根据附加选项的选择情况执行语句    

  44.     
  45. Do While Dir(Text3.Text) <> ""    

  46.     
  47. '若选择了设置只读属性    

  48.     
  49. If zhidu.Value = Checked Then    

  50.     
  51. SetAttr Text3.Text, vbReadOnly    

  52.     
  53. StatusBar1.SimpleText = "设置只读属性成功!"    

  54.     
  55. End If    

  56.     
  57. '若选择了打开文件    

  58.     
  59. If dakai.Value = Checked Then    

  60.     
  61. Dim dakaiurl    

  62.     
  63. dakaiurl = Environ("windir") & "explorer.exe " & Text3.Text    

  64.     
  65. Shell dakaiurl    

  66.     
  67. StatusBar1.SimpleText = "已经打开文件!"    

  68.     
  69. End If    

  70.     
  71. '若选择了合并完毕后退出    

  72.     
  73. If tuichu.Value = Checked Then    

  74.     
  75. End    

  76.     
  77. End If    

  78.     
  79. Exit Do    

  80.     
  81. Loop    

  82.     
  83. End Sub    



比原来的先进多了……

另外我还写了这个程序的VB.net2008版。但.net写出来的程序就是个半身不遂,体积大,乱七八糟的东西多,而且需要.net framework,很多电脑根本没装这个框架。所以.net版垃圾程序就不公布了,就当我熟悉.net的途径吧!(发现写这个程序用的语句和vb6中,思想一样,但语句相差不是一点。)

3、添加上了状态栏。一切提示在状态栏显示。(除了点击右下角的?按钮)这样就跟烦人的msgbox说拜拜啦!而且鼠标移动到textbox和command上状态栏会有帮助提示。

4、将“添加只读属性”和“打开合并后的文件”从msgbox里转移到了frame的多选框里。

5、将两个textbox位置倒过来了,这样打开程序,焦点会在第一个textbox里。

6、感想:我的每个VB作品都能使我的水平得到提高!这比看那些乱七八糟的教程强多了!

7、继续打算:每个版本都加上下载,以前只是图片。

此版本图片:



此版本下载:

1241881025_1944efe5.rar

下一页:继续what's new!



2009年5月9日

1、把程序界面改为XP风格,但按钮不好看了,解决方法是把按钮放在了picturebox里,问题完美解决。

2、取消了文件类型的限制,理论上支持到所有类型的图片和压缩文件,经过我试验的有图片GIF PNG JPG BMP ICO 压缩文件RAR ZIP 7z,全部成功。

3、原来的那个图片太难看了,用画图做的。这次用PS稍微画了个小图片,比原来的就是好看多了啊!还是设置点击图片进入蓝天下。看看使用者的反映,下一步打算把点击图片进入的网页改为这个工具的网页,成为专用的程序支持页,这样就不是单纯为网站做小广告了。

4、本程序从发布开始就完全开源,绝不含恶意软件,报毒者均为误报。(其实也没有杀毒软件报毒啊!)这些代码都是我一个字一个字写出来的啊!

5、在百度贴吧看见了08年12月时一个人也发布了一个这东西,和我的差不多。但他的不支持空格路径,而我的支持。我保证本程序绝没有参考任何其他同类程序,唯一参考的代码即为获取windows文件夹路径的代码。人格担保。绝对原创。

6、今天把这个程序发布到百度贴吧上,发布的方式打算是连接到本网页,并且贴上一个用本工具合并的图片,图片包含的压缩文件即为源代码以及程序。

7、版本由原来1.0.0.0升级为1.1.0.0。

8、感觉改版本号像是瞎胡闹……无聊……玩VB的有几个关心工程的版本、描述等等……

9、决定每发布一个版本都贴上图,我要看着这款软件慢慢变化。也是留念吧。

10、把程序的图标改成了更漂亮的图标,原来那个太难看了。VB6不支持Xp真彩色,图标太漂亮也不能用,这是能用的最漂亮的了……MS这个是256位颜色。

此版本图片:



此版本下载回顾:

1241881025_1944efe5.rar

'==================================================================================

2009年1月21日

1、修正了选择Rar文件时文件名出现jpg文件名的错误。(添加了一个commondialog控件)

2、继续修正部分系统Comdlg32.ocx错误,并去掉了安装程序,做成了绿色版。这样大幅度减小了文件体积。

3、删掉了调试程序时忘记去掉的确认对话框。

4、增加了设为只读文件的询问。

此版本图片(与1.0.0.0版相比只更改了程序内部代码,表面看不出什么):



此版本下载:

1243519483_34841f61.rar

'===================================================================================

2009年1月20日

1、修正了无法运行的错误,做成了安装程序,安装包里添加了comdlg32.ocx以修正这一错误。

2、修正了桌面目录等长名目录无法合并的错误,改法是在文件名两边加“"”。(这个合并器是通过调用系统目录里cmd实现的)

此版本图片:



此版本下载:

不提供,因为这个版本已经被上面那个取代了,而且,这个和上面那个区别只有一句话,就是我写错了的一句话,上面写着呢,并且源码让我弄丢了。再说谁有兴趣收集我的东西啊~~

点击程序里那个图片会弹出蓝天下哦!

============结束=============