![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 05:21 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » vbs 更改快捷方式的目标路径后,如何不改变图标? |
| 可打印版本 826 / 4 |
| 第1楼 25869 | 发表于 2009-08-07 00:45 |
| 新手上路 发帖 10 积分 10 | |
|
vbs 更改快捷方式的目标路径后,如何不改变图标? 网上找到的改变快捷方式的目标路径,可更改后,图标也变了,请问如何解决?
Sub Doit(strlnk) Dim oShlnk Set oShlnk = Wsh.CreateShortcut(strlnk) If Instr(oShLnk.TargetPath,oldpath) > 0 Then old=oShLnk.IconLocation oShLnk.IconLocation=old '添加后无效 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 --------------------------------------------- |
|
| 第2楼 slore | 发表于 2009-08-07 01:31 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
既然知道问题。。。
为什么不调试下。。。 msgbox old 你就知道为什么了。 还有 b=a a=b 这样做有意义麽? |
|
| 第3楼 25869 | 发表于 2009-08-07 02:16 |
| 新手上路 发帖 10 积分 10 | |
|
多谢指教, 我试过 wscript.echo old 得到 ",0"
我的意思是用原来的快捷方式图标, 测试后无效, 所以才发帖请教的. old=oShLnk.IconLocation oShLnk.IconLocation=old |
|
| 第4楼 slore | 发表于 2009-08-07 02:46 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
你没看明白麽?
如果只有图标的索引指向的目标程序的。 这个地方 你倒来倒去没发现没做什么事麽? b=a a=b 如果原来指向A.exe 图标,0 你改变为B.exe 图标,0没有变。。。 显示的图标由目标决定。 如果是自定义的图标就会显示全路径 X:\XXX\XXX.EXE,2 你图标设置 oShLnk.IconLocation=oShLnk.TargetPath & oShLnk.IconLocation 但是为了通用你最好判断下。 oShLnk.IconLocation是不是只有图标索引,就是第一个字符是不是"," 如果不是就不用变。 |
|
| 第5楼 25869 | 发表于 2009-08-07 09:17 |
| 新手上路 发帖 10 积分 10 | |
|
图标的索引指向规则不太熟悉
加上就可以了 if left(oShLnk.IconLocation,1)="," then oShLnk.IconLocation=oShLnk.TargetPath & oShLnk.IconLocation |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |