![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 18:15 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [VBS]如何右键调用一个我自己的VBS脚本? |
| 可打印版本 1,078 / 11 |
| 第1楼 kich | 发表于 2007-03-15 10:37 |
| 中级用户 发帖 168 积分 397 | |
|
[VBS]如何右键调用一个我自己的VBS脚本? 我想在右键菜单中添加一个条目,点击它能调用我自己编写的VBS脚本。
比如说,我在一个文件夹里右击一下,弹出右键,一面有一项自己建的“产生文件列表”这个菜单,执行的话,就执行我指定的一个VBS脚本(我已经编辑好,但我想还缺一个由右键时传递过来的文件夹地址的参数吧)。这样就可以在当前文件下建立一个TXT文本,里面显示的是当前文件夹下所有文件列表! 程序我会编写,就是不知道怎么用右键调用,还有右键怎么传递这个“地址”参数呢?? 网上简单查了下说,要什么 CLSID值! 并看见一段代码! ============================================= 我手头有一个注册表文件,它就可以自建CLSID,我想自己也做个。 的确,随意进行修改是行不通的 具体如下: @="{00000000-0000-0000-0000-000000000012}" @=hex(2):25,53,79,73,74,65,6d,52,6f,6f,74,25,5c,73,79,73,74,65,6d,33,32,5c,73,\ 68,64,6f,63,76,77,2e,64,6c,6c,00 "ThreadingModel"="Apartment" "CLSID"="{3f454f0e-42ae-4d7c-8ea3-328250d6e272}" "method"="ShellExecute" "Param1"="c:\\program files\\hide.vbs" "command"="superhide" "CLSID"="{13709620-C279-11CE-A49E-444553540000}" "Alexis" <alexis@microsoft.com> 写入消息新闻:efexsIA9GHA.4644@TK2MSFTNGP04.phx.gbl... > CLSID 不是建立一个名字就可以使用那么简单,需要赋予 CLSID 各种必需的组件 > 信息,例如执行文件路径、执行文件名称、关联的组件名称等等,总之比较麻烦。 > 一般不建议手动建立新的 CLSID。 至少要分七步走。 第一是查找现有的 CLSID 避免冲突、第二是自己建立 CLSID、第三是在“默认” 值指定 CLSID 名称、第四是在 DefaultIcon 中指定图标、第五是指定执行程序 动态链接库、第六是在 Shell 中指定打开动作、第七是在 ShellFolder 中指定 右键菜单。 前面都好做,关键是要做Shell Namespace扩展,这样必须写一个DLL,估计你没有这个能力。 也许可以等待别人做一个通用的类似插件功能的就好了~ 其实你可以用普通的文件关联来达到你的要求就好了~。 ========================================== 请高手赐教,怎么做这样的右键连接到我的VBS呢? |
|
| 第2楼 baomaboy | 发表于 2007-03-19 04:28 |
| 银牌会员 发帖 554 积分 1,513 | |
|
没这么复杂,
Windows Registry Editor Version 5.00 @="卡巴斯基病毒库备份" @="wscript.exe \"C:\\WINDOWS\\system32\\AVP6Bak.vbs\" \"%L\"" 每个DLL做好后都会有自己的类标识,而且由于修改等原因重新编译后一次 类标识就有变化了,所以说类标识是DLL生成的你自己建了也没作用, 你既然要取文件夹做目标那就在Directory的shell下建立命令啊, 另外象@="wscript.exe c:\\program files\\hide.vbs"这样调用只能是一般的运行而已对于你要建列表来说没效果的,注意要加“L”传递路径等参数, [ Last edited by baomaboy on 2007-3-19 at 04:43 AM ] |
|
| 第3楼 baomaboy | 发表于 2007-03-19 04:38 |
| 银牌会员 发帖 554 积分 1,513 | |
|
@="{00000000-0000-0000-0000-000000000012}"
实际起作用的是于它联动的系统自动的一个默认动态链接库文件,你可以在注册表中由此处追查下去就能找到是哪个库文件了。 |
|
| 第4楼 kich | 发表于 2007-03-19 10:48 |
| 中级用户 发帖 168 积分 397 | |
|
恩,对要传递路径,那么请问VBS脚本怎么调用这个路径呢?
传递过来,脚本总要调用这个路径再操作吧?? 同样,操作文件的时候,也要传递路径! 简单小例子,右键里加“显示文件大小"的功能! 然后,右击某个文件,选择这个功能,就能显示当前文件的大小的命令? 也就是,怎么获得传递过来的这个文件地址呢? |
|
| 第5楼 baomaboy | 发表于 2007-03-19 11:18 |
| 银牌会员 发帖 554 积分 1,513 | |
|
msgbox WScript.Arguments(0)
把上面这句保存为VBS文件用右键调用或者直接拖文件到这个VBS文件上你看看什么效果: |
|
| 第6楼 kich | 发表于 2007-03-19 11:36 |
| 中级用户 发帖 168 积分 397 | |
|
我是拖文件的,回答是无效字符!
第一行,第一个 !! 呵呵 |
|
| 第7楼 kich | 发表于 2007-03-19 11:39 |
| 中级用户 发帖 168 积分 397 | |
|
右键导入还没学会!呵呵,谢谢指导!
|
|
| 第8楼 baomaboy | 发表于 2007-03-19 11:41 |
| 银牌会员 发帖 554 积分 1,513 | |
Originally posted by kich at 2007-3-19 11:36: 可能你是复制的吧 是否多复制了不可见的控制符 或者你少复制了字符啊 ...sgbox |
|
| 第9楼 baomaboy | 发表于 2007-03-19 11:49 |
| 银牌会员 发帖 554 积分 1,513 | |
Originally posted by kich at 2007-3-19 11:36: |
|
| 第10楼 kich | 发表于 2007-03-19 11:54 |
| 中级用户 发帖 168 积分 397 | |
|
呵呵,好像我是在网吧,禁止VBS,但网吧是怎么做到的呢?
|
|
| 第11楼 baomaboy | 发表于 2007-03-19 12:11 |
| 银牌会员 发帖 554 积分 1,513 | |
Originally posted by kich at 2007-3-19 11:54: 很多方法啊 注册表修改对象的关键字、注销DLL、如果怕你在重新注册的话 直接删掉DLL了。 |
|
| 第12楼 kich | 发表于 2007-03-19 12:13 |
| 中级用户 发帖 168 积分 397 | |
|
感谢 宝马兄!!
今天下了您好多的文件(当前还下了那个解码文件),回去好好研究下! 相信技术很有长进了!! 幸福!! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |