![]() |
Нужна помощь в удалении ярлыка с раб.стола
Добрый день. Прошу вас помочь в написании обратного действия на удаление 1)одного и 2) ряда каких либо ярлыков с рабочего стола пользователя.
Вот пример создания ярлыка, что в нем надо добавить или поменять в первом и во втором случае. Спасибо вам. ------------------------------------------------------------------------------------------------------------ Set WshShell = WScript.CreateObject("WScript.Shell") strDesktop = WshShell.SpecialFolders("Desktop") Set oMyShortCut= WshShell.CreateShortcut(strDesktop & "\GARANT.lnk") oMyShortCut.TargetPath = "\\server\Garant-Client\garant.exe" oMyShortCut.WorkingDirectory = "\\server\Garant-Client" oMyShortCut.Description = "GARANT" oMyShortCut.Save ------------------------------------------------------------------------------------------------------------ |
Удаление ярлыков ничем не отличается от удаления прочих файлов: Working with Files. Приведённый Вами код излишен для этого.
|
Цитата:
сможете написать пример ? |
Цитата:
C:\Documents and Settings\Пользователь\Рабочий стол\STDU Viewer.lnk C:\Documents and Settings\All Users\Рабочий стол\STDU Viewer.lnk для всех пользователей: Код:
;Удалить ярлык с рабочего стола |
Цитата:
|
sov44, это не будет работать на Win7.
Попробуйте это: Код:
@echo off 2) Работает и на ХР, и на Win7. 3) Удаляет указанные файлы на рабочем столе пользователя и общем. Файлы для удаления размещайте в секции "set files=" через пробел (все ярлыки имеют расширение .lnk) |
Подскажите, как удалить ярлыки по умолчанию ( IE, Windows media, Проводник) в Windows 7 из панели быстрого запуска?
Ярлыки находились в папке User Pinned (%AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\). Папка удалена, но ярлыки с панели не пропали. :( |
А возможно ли удалить ярлык с произвольным именем, зная только путь к файлу ярлыка?
|
Lucretius, а если там десять ярлыков — и какой из них Ваш?!
Что-нибудь ещё об ярлыке известно? На что указывает, например? |
Iska, я имел в виду, что известен только путь к файлу на который ссылается ярлык. Сам ярлык находиться на рабочем столе пользователя.
|
Цитата:
Код:
Option Explicit |
Iska, спасибо! Если Вас не затруднит, добавьте пожалуйста в скрипт:
1. Вызов скрипта с аргументом (wscript.exe "ShortcutDel.vbs" "полный путь к файлу") 2. Перед удалением скопировать найденные ярлыки в директорию со скриптом. |
Цитата:
Цитата:
Пробуйте: |
Спасибо большое! Всё работает. Под "запрос на удаление" я ошибочно принял вывод:
Код:
WScript.Echo objFile.Name, objWshShortcut.TargetPath |
Lucretius, ясно.
Нет, это был просто вывод отладочного сообщения, для того, чтобы убедиться, что находится именно то, что нужно. P.S. Если у Вас есть целый набор целей — можем сделать так, что Вы их перечисляете в текстовом файле и указываете этот файл в качестве аргумента скрипта. |
Iska, ещё раз спасибо, у меня последний вопрос - как добавить в скрипт создание ярлыка? Т.е. такая последовательность работы скрипта: копирование >удаление >создание с параметрами по умолчанию. Тему читал: "Создание ярлыков при установке ОС", но мне не удаётся внести изменения в приведённый Вами скрипт.
|
Lucretius, приведите, для моего понимания, конкретный пример — что удаляете, что создаёте.
Цитата:
2. Что есть «параметры по умолчанию»? |
Iska,
Последовательность выполнения скрипта:
|
Lucretius, в чём тогда смысл:
Цитата:
Цитата:
|
Iska, скрипт будет работать в составе патча к программе, сама программа имеет два исполняемых файла(или один - опционально в процессе инсталляции) и создаёт ярлыки только в меню пуск, что весьма не удобно. Предполагаю, что большинство пользователей вручную создаёт ярлык(и) на рабочем столе. Поэтому при согласии пользователя создать ярлык(и) на рабочем столе - запускается скрипт и создаёт ярлыки со стандартным именем/параметрами (без «ярлык для», «запуск от» – патч вносит изменения в манифест и т.д.) предварительно скопировав ярлык(и) созданные пользователем в папку скрипта(backup) на случай прерывания работы патча(по желанию пользователя или иным причинам) и «отката» всех сделанных изменений. Удалить ярлыки с рабочего стола необходимо по понятной причине — избежать создание дублей. Во всяком случае такой вариант меня устраивает и я буду очень признателен если, Вы поможете мне.
|
Lucretius, ясно.
В таком случае, будет гораздо лучше, если в качестве имени ярлыка будет выступать не имя исполняемого файла, а имя из свойств исполняемого файла (если оно есть; жаль, что Вы не называете продукт), например, не «NOTEPAD.EXE.lnk», а «Блокнот.lnk». Пробуйте: Обращаю Ваше внимание, что «36» в: Код:
strShortcutFileName = Trim(CStr(objFolder.GetDetailsOf(objFolderItem, 36))) |
Iska, спасибо за внимание к моему вопросу.
Цитата:
Код:
strShortcutFileName = objFSO.GetBaseName(strGoalTargetPath) Приведённый Вами скрипт создаёт ярлыки, только, с условием, что они изначально были на рабочем столе, а для меня важно создать ярлыки на существующие исполняемые файлы(проверка их наличия в системе, происходит до запуска скрипта и передачи ему параметров), а копирование ярлыков пользователя(если они существуют) происходит только с целью backup. Подскажите, как исправить? |
Iska, благодарю Вас за помощь, я разобрался. Всё проще, чем казалось.
|
Время: 16:25. |
Время: 16:25.
© OSzone.net 2001-