Показать полную графическую версию : [решено] Как добавить иконку к ярлыку
Zerstoren
27-05-2017, 14:45
Доброго времени суток!
Есть задача создать Url, но чтобы был значок
Код такой
Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
Set oUrlLink = WshShell.CreateShortcut(strDesktop & "\ЕК АСУИ.url")
oUrlLink.TargetPath = "http://loki.gvc.oao.rzd/maximo/webclient/login/login.jsp"
oUrlLink.Save
DesktopPath = sh.SpecialFolders("Desktop")
Set sc = sh.CreateShortcut(DesktopPath & "\ЕК АСУИ.lnk")
sc.TargetPath = sh.ExpandEnvironmentStrings("http://loki.gvc.oao.rzd/maximo/webclient/login/login.jsp")
sc.Arguments = "user32.dll,LockWorkStation"
sc.WindowStyle = 7
sc.Hotkey = ""
sc.Description = "ЕК АСУИ"
sc.IconLocation = sh.ExpandEnvironmentStrings("%windir%\explorer.exe,14")
sc.WorkingDirectory = sh.ExpandEnvironmentStrings(DesktopPath)
sc.Save
В первом варианте создается URL
Во втором создается LNK
Но и у url и у lnk есть кнопка сменить значок
http://s42.radikal.ru/i096/1705/c1/99562153b792.jpg (http://radikal.ru)
И что? Для класса WshURLShortcut свойство IconLocation не поддерживается.
Вы можете создать url-ярлык, затем открыть его как обычный текстовый файл и тупо дописать две строки, например:
Option Explicit
Const ForAppending = 8
Dim strPath2UrlFile
strPath2UrlFile = "C:\Мои проекты\0074\My.url"
With WScript.CreateObject("WScript.Shell").CreateShortcut(strPath2UrlFile)
.TargetPath = "http://forum.oszone.net/thread-327113.html"
.Save
WScript.Echo .FullName
End With
With WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile(strPath2UrlFile, ForAppending)
.WriteLine "IconFile=C:\Windows\system32\SHELL32.dll"
.WriteLine "IconIndex=27"
End With
WScript.Quit 0
Zerstoren
27-05-2017, 19:01
strPath2UrlFile = "C:\Мои проекты\0074\My.url" »
а как сюда засунуть
strDesktop = WshShell.SpecialFolders("Desktop")
Set oUrlLink = WshShell.CreateShortcut(strDesktop & "\ссылка.url")
Zerstoren
27-05-2017, 19:22
Вы можете создать url-ярлык, затем открыть его как обычный текстовый файл и тупо дописать две строки, например: »
почему-то иконку через тотал видно, а через проводник белый листок (я свои поставил значения, но разницы нет)
Option Explicit
Const ForAppending = 8
Dim strPath2UrlFile
strPath2UrlFile = "C:\Users\Admin\Desktop\ярлык.url"
With WScript.CreateObject("WScript.Shell").CreateShortcut(strPath2UrlFile)
.TargetPath = "http://yandex.ru"
.Save
WScript.Echo .FullName
End With
With WScript.CreateObject("Scripting.FileSystemObject").OpenTextFile(strPath2UrlFile, ForAppending)
.WriteLine "IconFile=C:\Windows\system32\SHELL32.dll"
.WriteLine "IconIndex=27"
.WriteLine "HotKey=0"
End With
WScript.Quit 0
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://yandex.ru
IDList=
IconFile=C:\Windows\system32\SHELL32.dll
IconIndex=27
HotKey=0
а через проводник белый листок »
содержание url через блокнот »
У меня — нормально:
http://i.imgur.com/WKQexfZ.png
«WScript.Echo .FullName» можно убрать — это по недосмотру оставил.
а как сюда засунуть… »
Например. так:
Option Explicit
Const ForAppending = 8
Dim strUrlFileName
Dim objFSO
Dim strPath2UrlFile
strUrlFileName = "ссылка.url"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
With WScript.CreateObject("WScript.Shell")
strPath2UrlFile = objFSO.BuildPath(.SpecialFolders("Desktop"), strUrlFileName)
With .CreateShortcut(strPath2UrlFile)
.TargetPath = "http://yandex.ru"
.Save
End With
End With
With objFSO.OpenTextFile(strPath2UrlFile, ForAppending)
.WriteLine "IconFile=C:\Windows\system32\SHELL32.dll"
.WriteLine "IconIndex=27"
End With
Set objFSO = Nothing
WScript.Quit 0
Кстати: использование раскрытие пути к специальной папке Рабочий стол вместо прямого задания пути — правильный подход, Вы совершенно правы.
Zerstoren
28-05-2017, 09:45
У меня — нормально: »
А у меня нет, даже на нулевой виртуалке
http://s018.radikal.ru/i528/1705/dd/e13cd154e041.jpg (http://radikal.ru)
Изменяет иконку после второго запуска скрипта :)
Странно, почему :dont-know
Изменяет иконку после второго запуска скрипта »
А если после первого (и единственного) запуска выделить что-нибудь на Рабочем столе и нажать F5?
Zerstoren
28-05-2017, 19:27
нажать F5? »
да хоть занажимайся
да хоть занажимайся »
Давайте ещё одно посмотрим, если Вы не против. Вам оно, конечно, ни к чему, а мне интересно. Если, опять же, с нуля создать ярлык скриптом, а затем завершить сеанс пользователя и заново войти в систему — ярлык отобразится со значком?
Zerstoren
29-05-2017, 11:02
Iska, все сработало!! :yes: :up
тема закрыта
Ну вот :(. А у меня ещё столько замечательных идей родилось™ :lol:.
Zerstoren
29-05-2017, 11:54
Iska, давай откроем опять, пиши идеи))
например как запустить из WPI без батника,
а то приходится на каждый ярлык делать vbs и к нему bat чтобы его запустить
Итого вдруг кому надо (решение)
Option Explicit
Const ForAppending = 8
Dim strUrlFileName
Dim objFSO
Dim strPath2UrlFile
strUrlFileName = "ссылка.url"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
With WScript.CreateObject("WScript.Shell")
strPath2UrlFile = objFSO.BuildPath(.SpecialFolders("Desktop"), strUrlFileName)
With .CreateShortcut(strPath2UrlFile)
.TargetPath = "http://yandex.ru"
.Save
End With
End With
With objFSO.OpenTextFile(strPath2UrlFile, ForAppending)
.WriteLine "IconFile=C:\Windows\system32\SHELL32.dll"
.WriteLine "IconIndex=27"
End With
Set objFSO = Nothing
WScript.Quit 0
start /w wscript.exe "C:\Distr\link.vbs"
например как запустить из WPI без батника, »
А как Вы запускаете «из WPI батником»? И, главное — зачем «батником»?
а то приходится на каждый ярлык делать vbs »
Инсталляция приложения сама умеет создавать ярлыки. Какие именно ярлыки Вы создаёте?
start.bat »
Крайне не рекомендую давать пакетным файлам имя start.
Zerstoren
02-06-2017, 21:31
А как Вы запускаете «из WPI батником»? И, главное — зачем «батником»? »
очень просто, выбираю файл *.bat, затем, что vbs не видит WPI, там файлы bat,cmd,exe
Какие именно ярлыки Вы создаёте? »
Ярлыки на корпоративные программы (web-программы, т.е. сайты), у пользователей должны быть ссылки на определенные сайты на рабочем столе, у всех разные, но есть и одинаковые, задал в WPI вместе с установкой таких прог как офис и добавление ярлыков и усё.
затем, что vbs не видит WPI, там файлы bat,cmd,exe »
Выбирайте exe. Конкретно — %SystemRoot%\System32\wscript.exe (cscript.exe). Аргументом к нему указываете путь к скрипту .vbs.
Ярлыки на корпоративные программы (web-программы, т.е. сайты), у пользователей должны быть ссылки на определенные сайты на рабочем столе, у всех разные, но есть и одинаковые, задал в WPI вместе с установкой таких прог как офис и добавление ярлыков и усё. »
Предпочтения групповой политики не думали использовать для подобных корпоративных вещей? А также, через групповую политику, развёртывание Office и прочих приложений.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.