标题: 请教如何添加右键菜单把剪贴板文字保存为.bat
[打印本页]
作者: ygrzzz
时间: 2008-9-25 02:06
标题: 请教如何添加右键菜单把剪贴板文字保存为.bat
这个功能很实用啊
经常看到论坛里有许多P代码
如果能在资源管理器界面里空白处(或目录或文件上)
点右键弹出一个菜单,如:保存剪贴板文字为bat文件
最好自动以当时时间命名,因为批处理内容的开头多为@echo off
如果以首行为文件名也不好
最好能做成一组,比如
保存剪贴板文字为|--批处理bat
|--脚本vbs
|--文本txt
如果批处理方法做可能要借助clip.exe(2003系统附带)
或winclip.exe(unxutils for win32)等工具
可惜我学的少,又得牵扯到注册表,只能期待高手做个完美方案了
补充一个问题:为什么在cmd窗口里运行一些文字特效比如
简单的模拟打字效果的 时候CPU就100%了啊,不是说cmd命令行很省资源吗
Last edited by ygrzzz on 2008-9-25 at 02:15 AM ]
作者: zqz0012005
时间: 2008-9-25 02:34
@reg add hkcr\*\shell\SaveClipData\command /ve /d "mshta vbscript:CreateObject(\"Scripting.FileSystemObject\").OpenTextFile(replace(time,\":\",\";\")&\".txt\",2,true).Writeline(CreateObject(\"htmlfile\").parentwindow.clipboardData.getData(\"text\"))(window.close)" /f
作者: ygrzzz
时间: 2008-9-26 00:03
我运行mshta.exe怎么老是在进程里不关闭啊
以前运行一个bat语音读文本的VBS时就有这个问题
测试了楼上朋友的批处理
不知道文件有没有保存成功,找不到文件啊
作者: zqz0012005
时间: 2008-9-26 19:40
标题: Re 3楼
运行上面的代码后,在任意文件上点右键,是不是多了一项SaveClipData
选择它可以生成一个txt文件,内容就是剪贴板里的数据
作者: ygrzzz
时间: 2008-9-26 23:03
确实是多了一项SaveClipData
但点了多次后mshta.exe进程越来越多,而我还不知道文件在哪里
请问你设定文件保存目录在哪里呢
mshta.exe这个工具是不是被我的杀毒软件给屏蔽不起作用了啊
前段时间wcscript的关联也不知道给什么软件给取消了
重新注册关联后才能直接双击打开VBS
麻烦这个朋友,你把vbs部分提取出来单独存为vbs,然后注册这个vbs文件可行吗,把命令全写进注册表是挺好的,可我这里遇到mshta.exe就一定出问题
据说这个东西容易被病毒利用,不用mshta.exe吧
忘给加分了,2分鼓励一下,哈哈,vbs我一点也看不明白
Last edited by ygrzzz on 2008-9-26 at 23:19 ]
作者: zqz0012005
时间: 2008-9-26 23:25
生成的文件名为当前系统时间,保存在当前目录
可能是你的mshta.exe坏了,附件里是我的系统(SP3)上的,保存到%systemroot%\system32\
文件:mshta.exe
大小:45568 字节
md5:59a92e2982fc8d9d6c3ac87fe093edf8
附件:
http://upload.cn-dos.net/img/797.rar
作者: ygrzzz
时间: 2008-9-26 23:36
测试中。。。
奇怪啊,明明我复制进去了,在弹出框里确认原先28k的6.0版本
换成你的45k的8.0版本,怎么右键后还是老的那exe在进程里
360安全卫士显示还是老版本
我系统文件夹里把它删除然后右键clip
那玩意又跳出来了
我的qq,412801178,楼上朋友有空加我好吗,很显然朋友你vb厉害
我得多讨教~~~~~·
Last edited by ygrzzz on 2008-9-27 at 00:08 ]
作者: cad55
时间: 2008-9-27 14:03
zqz0012005
支持你一下。。。
作者: ygrzzz
时间: 2008-9-28 04:27
@echo off&mode con: cols=48 lines=2&"%~dp0CMD\winclip.exe" -p>tmp.txt&for /f "tokens=2 delims=:" %%i in ('findstr /n . tmp.txt^|findstr /b "1:"') do (ren "%~dp0tmp.txt" "%%i".txt)||start /min notepad tmp.txt&&pause
化了九牛二虎的精力凑出来这么一行代码
把剪贴版文字以第一行内容作标题保存在批处理所在目录
如果2次保存标题一样的话重命名会失败
纯P的,不过要借winclip外部小工具,参考了无奈何的sendto工具
下一部把它注册到文件夹右键菜单去,
把批处理内容直接写进注册表的话,%~dp0会出错呀,咋办
估计要用绝对路径来写了吧
Last edited by ygrzzz on 2008-9-28 at 04:29 ]
作者: ygrzzz
时间: 2008-9-28 04:56
@reg add hkcr\*\shell\SaveClipData\command /ve /d "cmd /c @echo off&mode con: cols=48 lines=2&"G:\win32\CMD\winclip.exe" -p>G:\win32\tmp.txt&for /f "tokens=2 delims=:" %%i in ('findstr /n . G:\win32\tmp.txt^|findstr /b "1:"') do (ren "G:\win32\tmp.txt" "%%i".txt)||start /min notepad G:\win32\tmp.txt&&pause" /f
测试中。。。
还是这样倒可以运行了
@reg add hkcr\*\shell\SaveClipData\command /ve /d "cmd /c G:\win32\#winclip.bat" /f
Last edited by ygrzzz on 2008-9-28 at 05:00 ]