标题: [问题求助] VBS怎样修改程序的起始位置? [打印本页]
作者: anchor52052 时间: 2011-9-23 23:10 标题: VBS怎样修改程序的起始位置?
经常修改程序的起始位置:在桌面程序图标上右键→属性→起始位置→输入行的路径→应用。
一直想找个简单的办法。网上找了些资料,网友“死性不改'”这个应该是最有用的:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
批量修改快捷方式的“目标”和“起始位置”
转载请注明本文出自:死性不改'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,自己暂时无法完成,恳请各位大侠帮忙!先谢谢了!
作者: haokeyy 时间: 2011-9-25 12:49
本帖最后由 haokeyy 于 2011-9-25 12:53 编辑
- Dim ws, dp, sc
-
- Set ws = CreateObject("wscript.shell")
-
- dp = ws.SpecialFolders("Desktop")
-
- Set sc = ws.CreateShortcut(dp & "\Foxmail.lnk")
-
- sc.WorkingDirectory = AppPath
-
- sc.Save
-
- Function AppPath
- AppPath = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
- End Function
复制代码
获取脚本所在路径,最好不要用CurrentDirectory,有时不好用。最好从脚本的完整路径ScriptFullName中提取出路径。
将上面的脚本保存成VBS文件,放在任意目录,运行后就会自动更换快捷方式的起始位置了。
作者: broly 时间: 2011-9-25 18:09
- Dim wsh,objLnk,strLnkPath,strLnkName
-
- '下面是快捷方式的名字(含后缀lnk)
- strLnkName = "Foxmail.lnk"
-
- Set wsh = CreateObject("WScript.Shell")
- strLnkPath = wsh.SpecialFolders("Desktop") & "\" & strLnkName
-
- Set objLnk = wsh.CreateShortcut(strLnkPath)
- objLnk.WorkingDirectory = wsh.CurrentDirectory
- objLnk.Save
-
- MsgBox "Succeed."
-
- Set wsh = Nothing
- Set objLnk = Nothing
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |