Board logo

标题: 如何添加个“发送到桌面快捷方式”的右键 [打印本页]

作者: tireless     时间: 2008-4-14 21:23    标题: 如何添加个“发送到桌面快捷方式”的右键
系统里的“发送到”实在让人受不了,要几秒才显示出发送到菜单

想在右键加个菜单---发送到桌面快捷方式
· 如果是文件,创建的快捷方式最好不带扩展名
· 能针对多个文件
· 最好不要闪cmd窗口
· 利用其他工具也行,如shortcut、nircmd

作者: slore     时间: 2008-4-15 03:07    标题: DesktopLink.vbs---By Slore
引用的就不算我说话了~郁闷~~~打空格也不行。。。


'-----------------DesktopLink.vbs---By Slore At 2008-04-15------------------
'
'脚本说明:
'放到任意目录,双击即可安装/卸载。
'欢迎您的测试以及给我提供宝贵意见。
'如果你喜欢,请随意转载,但请勿随意修改。
' http://bbs.cn-dos.net
'
'意见反馈:1.论坛消息
' 2.email:slorelee@yahoo.com.cn
'---------------------------------------------------------转载请保留我:)----
Dim strArg,strDesktop,strBsname
Set objShell = WScript.CreateObject("WScript.Shell")
ArgCount = wscript.Arguments.Count
If ArgCount = 0 Then
strArg = "在右键添加一个发送到桌面快捷方式选项:" & vbCrLf
ret = MsgBox( strArg & "是 否 取消",67,"By Slore")
strArg = "HKCR\AllFilesystemObjects\Shell\Slore\"
If ret = 6 Then
strCommand = "Wscript.exe """ & WScript.ScriptFullName & """ ""%1"""
objShell.RegWrite strArg,"桌面快捷方式(&L)"
objShell.RegWrite strArg & "Command\", strCommand
MsgBox "菜单已添加成功!..o(∩_∩)o..",64,"By Slore"
ElseIf ret = 7 Then
objShell.RegDelete strArg & "Command\"
objShell.RegDelete strArg
MsgBox "该菜单已删除!",64,"By Slore"
End If
wscript.Quit
End If

Set
objFSO = CreateObject("Scripting.FileSystemObject")
strDesktop = objShell.SpecialFolders("Desktop")
For i = 0 To ArgCount - 1
strArg = wscript.arguments.item(i)
strBsname = objFSO.GetBaseName(strArg)
strTarget = strDesktop & "\" & strBsname
If Not CST(strTarget,".lnk") Then CST strTarget,".pif"
Next

Function
CST(strPath,strExt)
n = 1:CST = True
on Error Resume Next
Do While
objFSO.FileExists(strPath & strExt)
n = n + 1
strTarget = strDesktop & "\" & strBsname & " (" & n & ")"
Loop
Set
oShellLink = objShell.CreateShortcut(strPath & ".lnk")
oShellLink.TargetPath = strArg
oShellLink.WorkingDirectory = objFSO.GetParentFolderName(strArg)
oShellLink.Save
If Err Then Err.Clear:CST = False
End Function

Set
oShellLink = Nothing
Set
objShell = Nothing
Set
objFSO = Nothing


作者: tireless     时间: 2008-4-15 08:11
谢谢slore,很不错。就是创建多个快捷方式有点慢,能像系统的那样快就好了

作者: zh159     时间: 2008-4-15 09:48
2 楼的可以在选定多个文件后创建多个快捷方式

Last edited by zh159 on 2008-4-15 at 09:53 AM ]

作者: slore     时间: 2008-4-15 12:48
Originally posted by tireless at 2008-4-15 08:11:
谢谢slore,很不错。就是创建多个快捷方式有点慢,能像系统的那样快就好了


已经尽量了。但是知识还是不够。。。
调用系统的那个DESKLINK,但是是 CLSID那种……
这个其实选多个,也没有进循环。。。

是每个文件调用一次DESKLINK.VBS,所以……选的越多越卡,会一下运行n个wscript...


所以如果是多个还是SENDTO下吧<img src="images/smilies/face-raspberry.png" align="absmiddle" border="0">

PS:我这里的SENDTO显示很快呀~~~你是不是里面项目太多了?

作者: tireless     时间: 2008-4-15 20:35
Originally posted by slore at 2008-4-14 04:48 PM:


PS:我这里的SENDTO显示很快呀~~~你是不是里面项目太多了?


不,即使只留下一个“桌面快捷方式”,那菜单的显示速度也让我很郁闷。。。

用shortcut或nircmd应该比较快,怎么用?

作者: sylovanas     时间: 2008-4-15 20:57
1.bat内容

@echo off
if exist %temp%\1.txt del 1.txt /q >nul 2>nul
for %%a in (%*) do echo shortcut "%%~a" "~$folder.desktop$" "%%~na">>%Temp%\1.txt
nircmd script %temp%\1.txt

加入右键选单的内容

nircmd execmd 1.bat %*

Last edited by sylovanas on 2008-4-15 at 09:00 PM ]