找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21991|回复: 2

[问题求助] VBS怎样修改程序的起始位置?

[复制链接]
发表于 2011-9-23 23:10:54 | 显示全部楼层 |阅读模式
经常修改程序的起始位置:在桌面程序图标上右键→属性→起始位置→输入行的路径→应用。
一直想找个简单的办法。网上找了些资料,网友“死性不改'”这个应该是最有用的:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
批量修改快捷方式的“目标”和“起始位置”
转载请注明本文出自:死性不改's Blog~http://www.clxp.net.cn/
站点链接:
保存为VBS,和快捷方式同一目录运行!
  1. Option Explicit
  2. Dim oldpath,newpath

  3. ''''''''''''''''说明'''''''''''''''''
  4. '作用:批量修改快捷方式的“目标”和“起始位置”
  5. '使用方法:和需要修改的快捷方式放在同一个文件夹执行
  6. '''''''''''''''说明完'''''''''''''''''

  7. oldpath = "E:\聊天软件"           '设置原路径中将被替换的内容
  8. newpath = "D:\棋牌聊天"   '设置新路径中要使用的内容

  9. Dim Wsh,fso
  10. Set Wsh = WScript.CreateObject("WScript.Shell")
  11. Set fso = CreateObject("Scripting.FileSystemObject")
  12. Dim ji_1,ji_2,Folder
  13. ji_1 = 0
  14. ji_2 = 0
  15. Folder = Wsh.CurrentDirectory
  16. if Ask("将要修改"&chr(34)& Folder &chr(34)&"里的所有快捷方,是否继续") then
  17.    Dim f,fc,f1,ext
  18.    Set f = fso.GetFolder(Folder)
  19.    Set fc = f.Files
  20.    For Each f1 in fc
  21.        ext = LCase(fso.GetExtensionName(f1))
  22.        if ext = "lnk" then
  23.          ji_1 = ji_1 + 1
  24.          call Doit(f1)
  25.        end if
  26.    Next
  27. end if

  28. Set WSH = Nothing
  29. msgbox "找到 "&ji_1&" 个快捷方式"&vbCrLf&"修改 "&ji_2&" 个快捷方式",64,"执行完毕!"
  30. WScript.quit

  31. Sub Doit(strlnk)
  32. Dim oShlnk
  33.    Set oShlnk = Wsh.CreateShortcut(strlnk)
  34. If Instr(oShLnk.TargetPath,oldpath) > 0 Then
  35.        oShLnk.TargetPath = Replace(oShLnk.TargetPath,oldpath,newpath)
  36.        oShLnk.WorkingDirectory = Replace(oShLnk.WorkingDirectory,oldpath,newpath)
  37.        oShLnk.Save
  38.        ji_2 = ji_2 + 1
  39. End If
  40.    Set oShLnk=NoThing
  41. End Sub

  42. Function Ask(strAction)
  43.    Dim intButton
  44.    intButton = MsgBox(strAction,vbQuestion + vbYesNo,"询问")
  45.    Ask = intButton = vbYes
  46. End Function
复制代码
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

比如我要经常改变起始位置的程序是Foxmail,我的想法是,能不能有一个VBS程序,将该程序放置在磁盘的某个路径下,运行程序后,程序自动获取VBS程序自身所在路径,并将该路径设置为桌面上Foxmail的起始位置?
由于基本不用VBS,自己暂时无法完成,恳请各位大侠帮忙!先谢谢了!
发表于 2011-9-25 12:49:30 | 显示全部楼层
本帖最后由 haokeyy 于 2011-9-25 12:53 编辑
  1. Dim ws, dp, sc

  2. Set ws = CreateObject("wscript.shell")

  3. dp = ws.SpecialFolders("Desktop")

  4. Set sc = ws.CreateShortcut(dp & "\Foxmail.lnk")

  5. sc.WorkingDirectory = AppPath

  6. sc.Save

  7. Function AppPath
  8.         AppPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, ""))
  9. End Function
复制代码
获取脚本所在路径,最好不要用CurrentDirectory,有时不好用。最好从脚本的完整路径ScriptFullName中提取出路径。

将上面的脚本保存成VBS文件,放在任意目录,运行后就会自动更换快捷方式的起始位置了。
发表于 2011-9-25 18:09:31 | 显示全部楼层
  1. Dim wsh,objLnk,strLnkPath,strLnkName

  2. '下面是快捷方式的名字(含后缀lnk)
  3. strLnkName = "Foxmail.lnk"

  4. Set wsh = CreateObject("WScript.Shell")
  5. strLnkPath = wsh.SpecialFolders("Desktop") & "" & strLnkName

  6. Set objLnk = wsh.CreateShortcut(strLnkPath)
  7. objLnk.WorkingDirectory = wsh.CurrentDirectory
  8. objLnk.Save

  9. MsgBox "Succeed."

  10. Set wsh = Nothing
  11. Set objLnk = Nothing
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 07:30 , Processed in 0.018294 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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