无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6189|回复: 16

[已解决] 找到一个把程序附到开始菜单的批处理,请高手改一下

[复制链接]
发表于 2018-7-27 00:13:12 | 显示全部楼层 |阅读模式
本帖最后由 765058729 于 2018-8-4 23:34 编辑

我看它的原理是通过vbs执行,请教怎么把它全部转换成vbs?最好一个vbs可以批量添加快捷方式。

这样以后就不用通过注册表那么麻烦了,请高手帮帮忙,谢谢


2018-0728113447.jpg

附到开始菜单测试.rar (738 Bytes, 下载次数: 96)
发表于 2018-7-27 07:48:29 来自手机 | 显示全部楼层
楼下帮忙。
回复

使用道具 举报

发表于 2018-7-27 08:27:02 | 显示全部楼层
三楼负责办理
回复

使用道具 举报

发表于 2018-7-27 16:37:51 | 显示全部楼层
本帖最后由 9zhmke 于 2018-7-27 16:41 编辑

试了一下,显示倒是可以了,但是没办法点击啊,你们的是否正确?

  1. Set WshShell=WScript.CreateObject("WScript.Shell")
  2. Set objShell = CreateObject("Shell.Application")
  3. Set objFSO = CreateObject("Scripting.FileSystemObject")
  4. lnkfile="%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs" '指定存放位置


  5. lnkfile=WshShell.ExpandEnvironmentStrings(lnkfile) '解析环境变量,还原成真实路径
  6. Shortcut "IE牛难骑","C:\Program Files\Internet Explorer\iexplore.exe" '建立快捷方式的名字和路径文件
  7. path=Left(lnkfile,InStrRev(lnkfile,""))
  8. name=Replace(lnkfile,path,"")
  9. Set objFolder = objShell.Namespace(path)
  10. Set objFolderItem = objFolder.ParseName(name)
  11. Set colVerbs = objFolderItem.Verbs
  12. For Each objVerb in colVerbs
  13.         If Left(objVerb.name,2) = "附到" Then objVerb.DoIt
  14. Next


  15. Function Shortcut(Short_name,path_and_name) '为菜单创建一个快捷方式
  16.         lnkfile=lnkfile & "" & Short_name & ".lnk"    '名称
  17.     set oShellLink = WshShell.CreateShortcut(lnkfile)
  18.     oShellLink.TargetPath = path_and_name      '目标
  19.     oShellLink.WindowStyle = 1    '窗口样式  1默认窗口激活,参数3最大化激活,参数7最小化
  20.     oShellLink.Hotkey = ""         '快捷键
  21.     oShellLink.IconLocation = path_and_name & ",0"     '第几个图标
  22.     oShellLink.Description = Short_name      '备注
  23.     oShellLink.WorkingDirectory = left(path_and_name,InStrRev(path_and_name,"")-1)   '起始位置
  24.     oShellLink.Arguments = ""    '参数
  25.     oShellLink.Save     '保存
  26. End Function
复制代码

点评

今天测试一下,你修改的这个是可以创建快捷方式,也可以指定位置,但是与模拟文件右键附到开始菜单有明显区别, [attachimg]377559[/attachimg] 点击文件右键附到开始菜单会在这里创建快捷方式,而且还会添加到注册表  详情 回复 发表于 2018-7-28 11:59
我在外面,回去试试看,晚上报告结果  详情 回复 发表于 2018-7-27 19:12
回复

使用道具 举报

 楼主| 发表于 2018-7-27 19:12:15 来自手机 | 显示全部楼层
本帖最后由 765058729 于 2018-7-27 19:32 编辑
9zhmke 发表于 2018-7-27 16:37
试了一下,显示倒是可以了,但是没办法点击啊,你们的是否正确?


2018-0727192902.jpg

vbs出现错误,我提供的bat没有问题,闲了您再研究研究
回复

使用道具 举报

 楼主| 发表于 2018-7-28 11:59:39 | 显示全部楼层
本帖最后由 765058729 于 2018-7-28 12:02 编辑
9zhmke 发表于 2018-7-27 16:37
试了一下,显示倒是可以了,但是没办法点击啊,你们的是否正确?


今天测试一下,你修改的这个是可以创建快捷方式,也可以指定位置,但是与模拟文件右键附到开始菜单有明显区别,
2018-0728113447.jpg 2018-0728113501.jpg

点击文件右键附到开始菜单会在这里创建快捷方式,而且还会添加到注册表里,%userprofile%\AppData\Roaming\Microsoft\Intern~1\QuickL~1\UserPi~1\StartMenu\

你修改的只能指位置创建快捷方式,没有点击附到开始菜单的动作,所以没有改动注册表,下面的代码好像没有工作
Set objFolder = objShell.Namespace(path)
name=Replace(lnkfile,path,"")
Set objFolderItem = objFolder.ParseName(name)
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
    If Left(objVerb.name,2) = "附到" Then objVerb.DoIt
Next
End Sub
startpin Wscript.Arguments(0)

回复

使用道具 举报

发表于 2018-7-28 12:09:36 | 显示全部楼层
后面那段代码是从你给的批处理里分解出来的,如果没执行的话,菜单上会看不到内容,所以是运行了的
我以前都是直接把文件复制到菜单位置,我添加的菜单一般都指向了 “D:\我的文档\系统设置\开始菜单” ,所以没遇到过你这个问题,添加到注册表的目的是什么呢?

点评

好像是只要有附到开始菜单的动作,注册表就会有改动,我也不是很懂,不过我根据你辛苦劳动得来的代码改动一下成功,多谢,我自己真的是一窍不能,摸索着玩 Set WshShell=WScript.CreateObject("WScript.Shell") Set objS  详情 回复 发表于 2018-7-28 12:37
回复

使用道具 举报

 楼主| 发表于 2018-7-28 12:37:34 | 显示全部楼层
本帖最后由 765058729 于 2018-7-28 12:41 编辑
9zhmke 发表于 2018-7-28 12:09
后面那段代码是从你给的批处理里分解出来的,如果没执行的话,菜单上会看不到内容,所以是运行了的
我以前 ...


好像是只要有附到开始菜单的动作,注册表就会有改动,我也不是很懂,不过我根据你辛苦劳动得来的代码改动一下成功,多谢,我自己真的是一窍不能,摸索着玩

我估摸着它的原理是先在附件的文件夹创建一个快捷方式,然后再检索这个快捷方式的右键菜单,只要有"附到"这两个字就点击,用下面的代码可以


Set WshShell=WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")
lnkfile="%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\" '指定存放位置

lnkfile=WshShell.ExpandEnvironmentStrings(lnkfile) '解析环境变量,还原成真实路径
Shortcut "附到开始菜单测试","C:\Program Files\Internet Explorer\iexplore.exe" '建立快捷方式的名字和路径文件
Set objShell = CreateObject("Shell.Application")
path=Left(lnkfile,InStrRev(lnkfile,"\"))
Set objFolder = objShell.Namespace(path)
name=Replace(lnkfile,path,"")
Set objFolderItem = objFolder.ParseName(name)
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
    If Left(objVerb.name,2) = "附到" Then objVerb.DoIt
Next



Function Shortcut(Short_name,path_and_name) '为菜单创建一个快捷方式
        lnkfile=lnkfile & "" & Short_name & ".lnk"    '名称
    set oShellLink = WshShell.CreateShortcut(lnkfile)
    oShellLink.TargetPath = path_and_name      '目标
    oShellLink.WindowStyle = 1    '窗口样式  1默认窗口激活,参数3最大化激活,参数7最小化
    oShellLink.Hotkey = ""         '快捷键
    oShellLink.IconLocation = path_and_name & ",0"     '第几个图标
    oShellLink.Description = Short_name      '备注
    oShellLink.WorkingDirectory = left(path_and_name,InStrRev(path_and_name,"")-1)   '起始位置
    oShellLink.Arguments = ""    '参数
    oShellLink.Save     '保存
End Function
回复

使用道具 举报

发表于 2018-9-14 16:17:47 | 显示全部楼层

真6  
回复

使用道具 举报

发表于 2019-3-25 12:26:44 | 显示全部楼层
楼主,你的VBS文件,现在只能添加一个,怎么改才能批量添加快捷方式呢?谢谢
回复

使用道具 举报

发表于 2019-3-27 16:26:51 | 显示全部楼层
本帖最后由 willson_mx 于 2019-3-31 10:21 编辑

折腾了一个下午,终于东拼西凑地把代码改成我想要的了。我改的代码可实现同一文件夹下的所有快捷方式批量附到开始菜单,不用在代码中输入快捷方式的名称和路径。如果有同名的快捷方式已附在开始菜单,会跳过,不是快捷方式的文件,也会跳过。
改良了脚本,新的VBS请到这里下载
http://wuyou.net/forum.php?mod=v ... &extra=page%3D1
回复

使用道具 举报

发表于 2019-3-27 18:32:57 来自手机 | 显示全部楼层
既然已经是一堆快捷方式,为啥不直接拖进去?

点评

直接拖进去并不生效,开始菜单上不会出现图标  详情 回复 发表于 2019-3-28 08:08
回复

使用道具 举报

发表于 2019-3-28 08:08:47 | 显示全部楼层
窄口牛 发表于 2019-3-27 18:32
既然已经是一堆快捷方式,为啥不直接拖进去?

直接拖进去并不生效,开始菜单上不会出现图标
回复

使用道具 举报

发表于 2019-3-28 08:31:46 来自手机 | 显示全部楼层
本帖最后由 窄口牛 于 2019-3-28 08:47 编辑

那应该是你设置了不允许拖拽?


77.gif

已经是快捷方式就这么拖进去即可,如果是一些软件的路径,那就是vbs比较方便一i些。

点评

我们说的地方不一样  详情 回复 发表于 2019-3-28 15:55
回复

使用道具 举报

发表于 2019-3-28 15:55:14 | 显示全部楼层
本帖最后由 willson_mx 于 2019-3-28 15:56 编辑
窄口牛 发表于 2019-3-28 08:31
那应该是你设置了不允许拖拽?


我们说的地方不一样,你的是出现在所有程序里的,我们想它们出现在所有程序上面那个空白地方
回复

使用道具 举报

发表于 2019-3-28 15:55:40 | 显示全部楼层
我们想要图标出现在这里
开始.jpg
回复

使用道具 举报

发表于 2019-9-19 21:46:26 | 显示全部楼层
批量添加快捷方式
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-16 12:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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