Форум программистов, компьютерный форум, киберфорум
VBScript/JScript/WSH/WMI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для serggg
77 / 52 / 32
Регистрация: 24.03.2013
Сообщений: 1,121
JS

Работа с ярлыками через WshShortcut

29.10.2013, 19:08. Показов 5068. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Парни, подскажите кто знает!
Передо мной поставлена такая задача:
Написать скрипт, который проверял бы соответствие всех ярлыков на рабочем столе реальным файлам на диске и уничтожал бы те ярлыки, для которых файл, на который он ссылается, не существует. Список удаленных ярлыков заносить в файл в формате “Дата удаления: Имя ярлыка, Путь к связанному файлу”.
Так вот, Как писать в файл и удалять файлы - я знаю! А вот как мне проверить то, что файл, на который ссылается ярлык - есть на диске!
Вот я тут набросал:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
//-------------------------------------------------------
var wh=WScript.CreateObject("WScript.Shell");
FSO = WScript.CreateObject("Scripting.FileSystemObject");
var DesktopPath = wh.SpecialFolders("Desktop"); 
var Desk = FSO.GetFolder(DesktopPath);
var yarl = new Enumerator(Desk.Files);
for(;!yarl.atEnd(); yarl.moveNext())
    {
    var ssylka = yarl.item();
    WScript.Echo(ssylka.Name);
    }    
//-------------------------------------------------------
Ну это я получаю список файлов на рабочем столе! А вот про WshShortcut в интернете я вообще ничего не нахожу.... Везде только про создание ярлыка - WshShell.CreateShortcut, но это я знаю..... Ну вот что-то типо этого:
http://msdn.microsoft.com/en-u... s.84).aspx
А как проверить параметр ярлыка TargetPath - полное имя ресурса на который ссылается ярлык. Подскажите кто знает! Заранее благодарен!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2013, 19:08
Ответы с готовыми решениями:

Работа с ярлыками
Доброе утро. Не могу разобраться в вопросе создания ярлыков к какой-либо программе. В поисковиках нашел несколько примеров, но они не...

Работа с ярлыками в c#
Всем привет. Я хотел бы узнать как работать с ярлыками на рабочем столе(например: менять их координаты), на c#.

Работа с ярлыками на рабочем столе
Подскажите пожалуйста методы(функций) работы с ярлыками Например: Иконка ярлыка, адрес где находится оригинал

6
1748 / 353 / 41
Регистрация: 15.10.2012
Сообщений: 550
30.10.2013, 21:24
Тоже как-то мучился подобным вопросом - надо было работать с ярлыком на рабочем столе.
В результате получилось следующее на vbs (это не полноценный скрипт, а кусок другого большого, оставил главное, с переменными заморачиваться не стал, надеюсь ничего важного не упустил)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
    Set shap = CreateObject("Shell.Application")
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set shl = CreateObject("WScript.Shell")
    Dim desktop, deskslo
    Set desktop = shap.NameSpace("C:\").ParentFolder.ParentFolder
    Set deskslo = desktop.ParseName("FM.lnk").GetLink
    deskslo.SetIconLocation fm_dir+"\FM.icl", 0
    deskslo.Path = fm_dir
    deskslo.Arguments = fm_args
    deskslo.WorkingDirectory = fm_dir
    deskslo.ShowCommand = 1
    deskslo.Save
Объект WshShortcut сдесь получаем через GetLink
0
0 / 0 / 0
Регистрация: 04.06.2013
Сообщений: 30
20.06.2014, 10:12
Smitis, почему выдает ошибку: требуется объект: 'desklo' в 7 строке?
0
1748 / 353 / 41
Регистрация: 15.10.2012
Сообщений: 550
24.06.2014, 22:32
vezde-smirno, возможно, отсутствует ярлык.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
25.06.2014, 15:14
serggg, не обращайте внимание на то, что метод называется CreateShortcut.
Тот же метод используется и для подключения к объекту уже созданного ярлыка.

Например, этот код отобразит путь к файлу, заданному в ярлыке C:\Microsoft.lnk

JavaScript
1
2
3
var WshShell = new ActiveXObject('WScript.Shell');
var WshShortcut = WshShell.CreateShortcut('C:\\Microsoft.lnk')
msgbox WshShortcut.TargetPath;
1
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
25.06.2014, 15:21
Dragokas, тогда уж
JavaScript
1
2
3
var WshShell = new ActiveXObject('WScript.Shell');
var WshShortcut = WshShell.CreateShortcut('C:\\Microsoft.lnk');
WScript.Echo(WshShortcut.TargetPath);
1
0 / 0 / 0
Регистрация: 28.04.2016
Сообщений: 27
08.05.2017, 03:08
Люди, подскажите пожалуйста, пробовал создать ярлык в меню пуск с помощью VBS для одного пользователя, он создается.

Visual Basic
1
2
3
4
5
6
7
8
9
10
Set Shell = CreateObject("WScript.Shell")
ProgramsPath = Shell.SpecialFolders("Programs")
Set link = Shell.CreateShortcut(ProgramsPath & "\AAct-Windows.lnk")
link.Arguments = "/win=act" ' Аргументы запуска
link.Description = "AAct-Windows" '  Комментарий
link.IconLocation = "%Windir%\AAct.exe, 0" ' Полный путь к иконке
link.TargetPath = "%Windir%\AAct.exe" ' Полный путь к файлу
link.WindowStyle = 7 '1 - normal '3 - maximized '7 - minimized 
link.WorkingDirectory = "%Windir%" ' Директория запускаемого файла
link.Save
Как только меняешь ProgramsPath = Shell.SpecialFolders("Programs") на
ProgramsPath = Shell.SpecialFolders("AllUsersPrograms") выскакивает ошибка
Пробовал все это на Win10x64/
Меняешь на ProgramsPath = Shell.SpecialFolders("Desktop") - опять все работает,
В директории (C:\ProgramData\Microsoft\Windows\Start Menu\Programs) то есть для всех пользователей, упорно не хочет создаваться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.05.2017, 03:08
Помогаю со студенческими работами здесь

Работа с двумя аргументами и ярлыками на рабочем столе
Ребят нужна помощь , первую часть задания вроде сделал, а вторую никак не могу понять как, помогите! 7. Написать скрипт, который при...

Работа с ярлыками рабочего стола Windows Vista
Ярлыки рабочего стола стали после перезагрузки или команды "обновить" выравниваться автоматически ,т. е. по левому краю стола ."...

Управление ярлыками
Подскажите кто нибудь как перетащить ярлык с рабочего стола на свою форму, причем чтобы он был полностью функционален. Очень нужно.

трабл с ярлыками
Снова Всем привет! Спасибо всем, кто помогал мне решать проблему с контрастностью дисплея, но решил все проще. Заново поставил винду....

Неполадки с ярлыками
Все ярлыки на рабочем столе, которые указывают на exe-файлы, выглядят странно - на иконку из исполняемого файла, на который указывает ярлык...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru