经常修改程序的起始位置:在桌面程序图标上右键→属性→起始位置→输入行的路径→应用。
一直想找个简单的办法。网上找了些资料,网友“死性不改'”这个应该是最有用的:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
批量修改快捷方式的“目标”和“起始位置”
转载请注明本文出自:死性不改's Blog~http://www.clxp.net.cn/
站点链接:
保存为VBS,和快捷方式同一目录运行!- Option Explicit
- Dim oldpath,newpath
-
- ''''''''''''''''说明'''''''''''''''''
- '作用:批量修改快捷方式的“目标”和“起始位置”
- '使用方法:和需要修改的快捷方式放在同一个文件夹执行
- '''''''''''''''说明完'''''''''''''''''
-
- oldpath = "E:\聊天软件\" '设置原路径中将被替换的内容
- newpath = "D:\棋牌聊天\" '设置新路径中要使用的内容
-
- Dim Wsh,fso
- Set Wsh = WScript.CreateObject("WScript.Shell")
- Set fso = CreateObject("Scripting.FileSystemObject")
- Dim ji_1,ji_2,Folder
- ji_1 = 0
- ji_2 = 0
- Folder = Wsh.CurrentDirectory
- if Ask("将要修改"&chr(34)& Folder &chr(34)&"里的所有快捷方,是否继续") then
- Dim f,fc,f1,ext
- Set f = fso.GetFolder(Folder)
- Set fc = f.Files
- For Each f1 in fc
- ext = LCase(fso.GetExtensionName(f1))
- if ext = "lnk" then
- ji_1 = ji_1 + 1
- call Doit(f1)
- end if
- Next
- end if
-
- Set WSH = Nothing
- msgbox "找到 "&ji_1&" 个快捷方式"&vbCrLf&"修改 "&ji_2&" 个快捷方式",64,"执行完毕!"
- WScript.quit
-
- Sub Doit(strlnk)
- Dim oShlnk
- Set oShlnk = Wsh.CreateShortcut(strlnk)
- If Instr(oShLnk.TargetPath,oldpath) > 0 Then
- oShLnk.TargetPath = Replace(oShLnk.TargetPath,oldpath,newpath)
- oShLnk.WorkingDirectory = Replace(oShLnk.WorkingDirectory,oldpath,newpath)
- oShLnk.Save
- ji_2 = ji_2 + 1
- End If
- Set oShLnk=NoThing
- End Sub
-
- Function Ask(strAction)
- Dim intButton
- intButton = MsgBox(strAction,vbQuestion + vbYesNo,"询问")
- Ask = intButton = vbYes
- End Function
复制代码 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
比如我要经常改变起始位置的程序是Foxmail,我的想法是,能不能有一个VBS程序,将该程序放置在磁盘的某个路径下,运行程序后,程序自动获取VBS程序自身所在路径,并将该路径设置为桌面上Foxmail的起始位置?
由于基本不用VBS,自己暂时无法完成,恳请各位大侠帮忙!先谢谢了! |