Board logo

标题: [问题求助] VBS怎样修改程序的起始位置? [打印本页]

作者: anchor52052    时间: 2011-9-23 23:10     标题: VBS怎样修改程序的起始位置?

经常修改程序的起始位置:在桌面程序图标上右键→属性→起始位置→输入行的路径→应用。
一直想找个简单的办法。网上找了些资料,网友“死性不改'”这个应该是最有用的:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
批量修改快捷方式的“目标”和“起始位置”
转载请注明本文出自:死性不改'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,自己暂时无法完成,恳请各位大侠帮忙!先谢谢了!
作者: haokeyy    时间: 2011-9-25 12:49

本帖最后由 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文件,放在任意目录,运行后就会自动更换快捷方式的起始位置了。
作者: broly    时间: 2011-9-25 18:09

  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
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2