无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4700|回复: 20
打印 上一主题 下一主题

绿色软件配合上VBS程序真是完美解决方案

[复制链接]
跳转到指定楼层
1#
发表于 2006-11-3 16:19:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我喜欢绿色软件(不必担心系统目录里多了什么LJ,不必担心流氓软件的捆绑,解压完就可以用,不用就把整个目录删了),经常把一些软件搞成绿色的,现在也有了不少绿色软件站,更方便我了

但是绿软件的路径是个一直没解决的问题,一般在README.TXT里都是叫我们直接把REG文件的路径改改再导入注册表,但真的是好烦,于是这两天研究了下VBScript,发现完全可以取代REG文件

但是REG文件完全转成VBS文件还有点难,之前有人写过REG转INF的,但我用过后发现那个还是有BUG(比如[-XXX]它就翻译不过来),所以自己正在写程序来搞定这个问题,相信过几天就可以搞好了,现在重点先解决路径问题

拿NOTEPAD++来举个例子,这是个替代记事本的软件,可以在下面下载

http://green.crsky.com/soft/37.html

然后你可以抄下下面的程序,生成个.VBS的文件,复制到解压后的NOTEPAD++目录里再执行它,以后你把NOTEPAD++搬家了,再执行一遍就好了:

Function GetPath
    '' Retrieve path to the script file
    Dim path
    path = WScript.ScriptFullName  '' Script file name
    GetPath = Left(path, InstrRev(path, "\"))
End Function

Dim WSHShell,HowTo
HowTo = MsgBOX("将要设置TXT文件用以下软件打开"&Chr(13)&GetPath()&"NotePAD++.EXE",vbOKCancel)
IF HowTo = vbOK Then
  Set WSHShell = WScript.CreateObject("WScript.Shell")
  WSHShell.RegWrite "HKLM\SOFTWARE\Classes\txtfile\shell\open\command\",GetPath()&"NotePAD++.EXE %1","REG_SZ"
Else
  HowTo = MsgBOX("是否还原TXT文件的打开方式为系统默认的记事本?",vbOKCancel)
  If HowTo = vbOK Then
    Set WSHShell = WScript.CreateObject("WScript.Shell")
    WSHShell.RegWrite "HKLM\SOFTWARE\Classes\txtfile\shell\open\command\","NotePAD.EXE %1","REG_SZ"
  End If
End If
Set WSHShell = Nothing
WScript.echo "Done!"
WScript.Quit  '' Terminate script.

本贴由福州子夜狂风原创,转载或用于商业目的请保留本贴完整
2#
发表于 2006-11-3 19:06:08 | 只看该作者
绿色软件的路径注册完全可以通过CMD命令解决,楼主的也是一种方法,但不同的程序注册信息也不同,这种通过VBS注册的方式在一些系统不能用(如红叶PE,因为它支持VBS),以楼主对VBS的理解,可以将下面的内容保存为一个CMD文件(名称随便),放到任意目录执行看看两个环境变量(CMDCommandLine、ThisPath)是什么,你会发现CMDCommandLine是CMD文件本身,ThisPath是这个CMD所在的目录,相当于你 VBS中的GetPath()函数。


  1. Set CMDCommandLine=%0
  2. FOR /F "delims=" %%I in ("%CMDCommandLine%") do Set ThisPath=%%~dpI
  3. Set CMDCommandLine
  4. Set ThisPath
  5. Pause > nul
复制代码
回复

使用道具 举报

3#
发表于 2006-11-3 20:11:09 | 只看该作者
正常windows用inf可以做的很漂亮(完全解决路径问题),在pe中还是喜欢用reg.exe(配合%cd%参数也可以解决路径问题)。

[ 本帖最后由 strongchen 于 2006-11-3 08:12 PM 编辑 ]
回复

使用道具 举报

4#
发表于 2006-11-3 20:24:58 | 只看该作者
原帖由 strongchen 于 2006-11-3 20:11 发表
正常windows用inf可以做的很漂亮(完全解决路径问题),在pe中还是喜欢用reg.exe(配合%cd%参数也可以解决路径问题)。

如果在别的路经通过输入路径\批处理文件名的方式来运行批,%CD% 得到的值就不准确。而老九说到的那个却是可行的
回复

使用道具 举报

5#
发表于 2006-11-3 20:34:33 | 只看该作者
原帖由 strongchen 于 2006-11-3 08:11 PM 发表
正常windows用inf可以做的很漂亮(完全解决路径问题),在pe中还是喜欢用reg.exe(配合%cd%参数也可以解决路径问题)。


%CD%是指当前路径,比如你在C:\Path1\下执行F:\Path2\XXX.CMD,则%CD%是C:\Path1\
回复

使用道具 举报

6#
发表于 2006-11-3 20:47:03 | 只看该作者
老九这段代码收藏了 ^_^

dos命令还是很菜。。。
回复

使用道具 举报

7#
发表于 2006-11-3 20:52:51 | 只看该作者
原帖由 strongchen 于 2006-11-3 20:47 发表
老九这段代码收藏了 ^_^

dos命令还是很菜。。。

在批处理方面,老九可是高手啊!
回复

使用道具 举报

8#
发表于 2006-11-3 21:03:26 | 只看该作者
原帖由 老毛桃 于 2006-11-3 08:52 PM 发表

在批处理方面,老九可是高手啊!


晕死,我那些三脚猫的功夫还是学你的,只是太长时间没弄DOS(批处理)了,想当年对DOS的研究还是有收获的,尤其是 Int13的扩展功能在NetWare服务器上的应用曾令我着迷。
回复

使用道具 举报

9#
发表于 2006-11-3 21:08:01 | 只看该作者
原帖由 lxl1638 于 2006-11-3 21:03 发表
尤其是 Int13的扩展功能在NetWare服务器上的应用曾令我着迷。

偶好像是在看一部天书。。。。。:lol:lol:lol
回复

使用道具 举报

10#
发表于 2006-11-3 22:14:06 | 只看该作者
  嘿嘿,看到各位高手都在讨论,我也来掺和一下。获取路径用CMD来处理是再合适不过了,它可以取到文件名、扩展名,还可以获取某一路径中任意层次上的文件夹名。
回复

使用道具 举报

11#
发表于 2006-11-4 00:51:36 | 只看该作者
我不是很喜欢这种绿色软件,我认为绿色的就是不写入注册表 不写入系统文件 独立就可运行的软件 那才是绿色
回复

使用道具 举报

12#
发表于 2006-11-4 10:17:28 | 只看该作者
原帖由 feng8103 于 2006-11-4 12:51 AM 发表
我不是很喜欢这种绿色软件,我认为绿色的就是不写入注册表 不写入系统文件 独立就可运行的软件 那才是绿色

  
持相同意见。
回复

使用道具 举报

13#
发表于 2006-11-4 12:46:45 | 只看该作者
使用cmd有一个问题就是不能支持9x。
回复

使用道具 举报

14#
发表于 2006-11-4 13:15:40 | 只看该作者
原帖由 szlxy58 于 2006-11-4 10:17 AM 发表

  
持相同意见。


绝对不写注册表的程序是极少极少的,程序本身不写,Windows也会写,系统会把它的运行记录写入注册表。一些程序写注册表是必要的,要看它写入什么内容,比如程序本身的窗口大小、窗口位置、程序本身一些配置(如记事本的字体设置)和它所打开过的文件记录等,这些内容写入注册表无所谓,若这些内容都不记录的话,这样的程序(工具)功能也不完善,用起来也不方便(比如某些工具是多语言的,默认是英语,当你设置成中文时,它会记录在注册表,否则下次启动又是英语)。最怕是它写入服务、驱动、插件、启动项等。
回复

使用道具 举报

15#
发表于 2006-11-4 15:17:29 | 只看该作者
支持lxl1638 的观点。
回复

使用道具 举报

16#
发表于 2006-11-10 14:49:38 | 只看该作者
很好的解决方法,谢谢分享
回复

使用道具 举报

17#
发表于 2006-11-10 17:02:49 | 只看该作者
支持lxl1638 的观点。
回复

使用道具 举报

18#
发表于 2006-11-11 00:13:17 | 只看该作者
拿来研究研究
回复

使用道具 举报

19#
发表于 2006-11-11 01:15:42 | 只看该作者
不知道老毛桃能否把那段cmd改成在dos环境也可以使用?
回复

使用道具 举报

20#
发表于 2006-11-11 08:28:24 | 只看该作者
学习中...
回复

使用道具 举报

21#
发表于 2006-11-11 09:38:41 | 只看该作者
原帖由 strongchen 于 2006-11-11 01:15 发表
不知道老毛桃能否把那段cmd改成在dos环境也可以使用?

要看了,COMMAND.COM 与 CMD.EXE 的命令解释方式有点区别,一般 DOS 下的批处理在 CMD 中运行问题不大,反之可能会有些问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-28 20:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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