Как добавить иконку к ярлыку
Доброго времени суток!
Есть задача создать Url, но чтобы был значок
Код такой
PHP код:
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 есть кнопка сменить значок
|
И что? Для класса 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
|
Цитата:
Цитата Iska
strPath2UrlFile = "C:\Мои проекты\0074\My.url" »
|
а как сюда засунуть
PHP код:
strDesktop = WshShell.SpecialFolders("Desktop")
Set oUrlLink = WshShell.CreateShortcut(strDesktop & "\ссылка.url")
|
Цитата:
Цитата Iska
Вы можете создать url-ярлык, затем открыть его как обычный текстовый файл и тупо дописать две строки, например: »
|
почему-то иконку через тотал видно, а через проводник белый листок (я свои поставил значения, но разницы нет)
код
PHP код:
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
содержание url через блокнот
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://yandex.ru
IDList=
IconFile=C:\Windows\system32\SHELL32.dll
IconIndex=27
HotKey=0
|
Цитата:
Цитата Zerstoren
а через проводник белый листок »
|
Цитата:
Цитата Zerstoren
содержание url через блокнот »
|
У меня — нормально:
«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
Кстати: использование раскрытие пути к специальной папке Рабочий стол вместо прямого задания пути — правильный подход, Вы совершенно правы.
|
А у меня нет, даже на нулевой виртуалке
Изменяет иконку после второго запуска скрипта :)
Странно, почему :dont-know
|
Цитата:
Цитата Zerstoren
Изменяет иконку после второго запуска скрипта »
|
А если после первого (и единственного) запуска выделить что-нибудь на Рабочем столе и нажать F5?
|
Давайте ещё одно посмотрим, если Вы не против. Вам оно, конечно, ни к чему, а мне интересно. Если, опять же, с нуля создать ярлык скриптом, а затем завершить сеанс пользователя и заново войти в систему — ярлык отобразится со значком?
|
Iska, все сработало!! :yes: :up
тема закрыта
|
Ну вот :(. А у меня ещё столько замечательных идей родилось™ :lol:.
|
Iska, давай откроем опять, пиши идеи))
например как запустить из WPI без батника,
а то приходится на каждый ярлык делать vbs и к нему bat чтобы его запустить
Итого вдруг кому надо (решение)
Link.vbs
PHP код:
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.bat
start /w wscript.exe "C:\Distr\link.vbs"
|
Цитата:
Цитата Zerstoren
например как запустить из WPI без батника, »
|
А как Вы запускаете «из WPI батником»? И, главное — зачем «батником»?
Цитата:
Цитата Zerstoren
а то приходится на каждый ярлык делать vbs »
|
Инсталляция приложения сама умеет создавать ярлыки. Какие именно ярлыки Вы создаёте?
Крайне не рекомендую давать пакетным файлам имя start.
|
Цитата:
Цитата Iska
А как Вы запускаете «из WPI батником»? И, главное — зачем «батником»? »
|
очень просто, выбираю файл *.bat, затем, что vbs не видит WPI, там файлы bat,cmd,exe
Цитата:
Цитата Iska
Какие именно ярлыки Вы создаёте? »
|
Ярлыки на корпоративные программы (web-программы, т.е. сайты), у пользователей должны быть ссылки на определенные сайты на рабочем столе, у всех разные, но есть и одинаковые, задал в WPI вместе с установкой таких прог как офис и добавление ярлыков и усё.
|
Цитата:
Цитата Zerstoren
затем, что vbs не видит WPI, там файлы bat,cmd,exe »
|
Выбирайте exe. Конкретно — %SystemRoot%\System32\wscript.exe (cscript.exe). Аргументом к нему указываете путь к скрипту .vbs.
Цитата:
Цитата Zerstoren
Ярлыки на корпоративные программы (web-программы, т.е. сайты), у пользователей должны быть ссылки на определенные сайты на рабочем столе, у всех разные, но есть и одинаковые, задал в WPI вместе с установкой таких прог как офис и добавление ярлыков и усё. »
|
Предпочтения групповой политики не думали использовать для подобных корпоративных вещей? А также, через групповую политику, развёртывание Office и прочих приложений.
|
Время: 16:27.
© OSzone.net 2001-