Показать полную графическую версию : Как в vbs вставить переменную
Valek271183
17-04-2012, 00:59
Не разбираюсь в vbs но нужна помощь что бы изменить путь в таком файле
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\КИССа")
Set objFolderItem = objFolder.ParseName("КИССа.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
If Replace(objVerb.name, "&", "") = "Закрепить на панели задач" Then objVerb.DoIt
Next
мне нужно тоже но наоборот "Открепить от панели задач"
но по пути C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
но вместо ИМЕНИ ПОЛЬЗОВАТЕЛЯ вставить переменную потому что будет использоваться на разных компах
Как мне сделать этот путь универсальным для разных пользователей (или может есть путь попроще??)
C:\users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
Valek271183, обратите внимание на примеры отсюда: 7 / 2008 R2 - [решено] Как закрепить ярлыки в меню Пуск? (http://forum.oszone.net/showthread.php?p=1894940).
Valek271183
19-04-2012, 12:26
Iska помогай. Приведи пожалуйста пример на любом ярлыке с панели задач как его можно "Открепить от панели задач"
Valek271183, не помогу — у меня нет сейчас под рукой ОС, более свежих, нежели Windows XP.
Примеры есть по приведённой ссылке. Потребное имя глагола можно получить, перебрав их, как в этом (http://forum.oszone.net/post-1468804.html#post1468804) примере из упомянутой ссылки же.
Morpheus
19-04-2012, 19:54
Const CSIDL_PROFILE = &H28
Set objShell = CreateObject("Shell.Application")
Set objCurrentUserStartFolder = objShell.NameSpace(CSIDL_PROFILE)
strCurrentUserProgramsPath = objCurrentUserStartFolder.Self.Path
Set objFolder = objShell.Namespace(strCurrentUserProgramsPath & "\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
Set objFolderItem = objFolder.ParseName("cmd.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
If Replace(objVerb.name, "&", "") = "Открепить от панели задач" Then objVerb.DoIt
Next
P.S. Можно тему приклеить сюда - [решено] Закрепление на панели задач из командной строки (http://forum.oszone.net/thread-197757.html)
"cmd.lnk" вы просто так написали или у вас он так называется?
просто у меня cmd закрепляется как "Command Prompt.lnk"
Morpheus
19-04-2012, 20:10
ferget, это у меня там ярлык такой.
Valek271183
19-04-2012, 20:11
Morpheus , я знал что ты сможешь помочь, людей которые так хорошо разбираются не так уж и много, но у тебя всегда есть ответ на любой вопрос, так что СПАСИБО тебе огромное!
Morpheus
19-04-2012, 20:15
Valek271183, не всегда и не на любой, но за спасибо - спасибо! :)
Больше часа пытаюсь изъять программу но так и не получается.
Прикрепить (это срабатывает)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\STDUtility")
Set objFolderItem = objFolder.ParseName("STDU Viewer.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
If Replace(objVerb.name, "&", "") = "Закрепить на панели задач" Then objVerb.DoIt
Next
Открепить (не получается)
Const CSIDL_PROFILE = &H28
Set objShell = CreateObject("Shell.Application")
Set objCurrentUserStartFolder = objShell.NameSpace(CSIDL_PROFILE)
strCurrentUserProgramsPath = objCurrentUserStartFolder.Self.Path
Set objFolder = objShell.Namespace(strCurrentUserProgramsPath & "c:\Users\TimON\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
Set objFolderItem = objFolder.ParseName("STDU Viewer.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
If Replace(objVerb.name, "&", "") = "Открепить от панели задач" Then objVerb.DoIt
Next
где же допущена ошибка?
пробовал еще как здесь: http://forum.oszone.net/post-1307991-2.html
но совсем ничего не получилось :(
Что Вы ожидаете получить здесь:
Set objFolder = objShell.Namespace(strCurrentUserProgramsPath & "c:\Users\TimON\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
?
Вообще-то скрипт должен сообщать об ошибке во время своего исполнения.
Iska, Да сообщает но мне это ничего не дает, и вообще чтобы я не делал по моему одна и та же ошибка.
Скрипт:
Const CSIDL_PROFILE = &H28
Set objShell = CreateObject("Shell.Application")
Set objCurrentUserStartFolder = objShell.NameSpace(CSIDL_PROFILE)
Set CurrentUserProgramsPath = objCurrentUserStartFolder.Self.Path
Set objFolder = objShell.Namespace(strCurrentUserProgramsPath & "\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
Set objFolderItem = objFolder.ParseName("STDU Viewer.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
If Replace(objVerb.name, "&", "") = "Открепить от панели задач" Then objVerb.DoIt
Next
как в этом сообщении: http://forum.oszone.net/post-1902721-6.html
ошибка:
http://s019.radikal.ru/i620/1209/1e/9106b2df5839t.jpg (http://radikal.ru/F/s019.radikal.ru/i620/1209/1e/9106b2df5839.jpg.html)
timon45, начните с того, что прикрепите архив с упакованным Вашим скриптом к сообщению.
Iska, В принципе все то что и писал под кодом.
Ярлык "STDU Viewer.lnk" присутствует по пути: c:\Users\TimON\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\STDU Viewer.lnk
timon45, как я и предполагал, вышеуказанная ошибка (http://forum.oszone.net/post-1993400.html#post1993400) вызвана тем, что Ваш скрипт сохранён в кодировке UTF-8 с BOM. Как раз из-за BOM Вы и получаете эту ошибку.
Сохраните Ваш скрипт в кодировке ANSI/Windows-1251.
Iska, да уже близко но все равно пока ошибка, но другая.
http://s019.radikal.ru/i613/1209/15/1dc3fa050236t.jpg (http://radikal.ru/F/s019.radikal.ru/i613/1209/15/1dc3fa050236.jpg.html)
timon45, лучше нажимайте «Ctrl-C» в окне сообщения об ошибке и вставляйте, обрамив тэгом «code».
ошибка, но другая. »
Вы пытаетесь присвоить переменной объектный тип («set …»), а в правой части присваивания выражение («objCurrentUserStartFolder.Self.Path») возвращает строку.
лучше нажимайте «Ctrl-C» в окне сообщения об ошибке и вставляйте, обрамив тэгом «code». »
Спасибо, буду знать.
Вы пытаетесь присвоить переменной объектный тип («set …»), а в правой части присваивания выражение («objCurrentUserStartFolder.Self.Path») возвращает строку. »
Честно признаюсь я ничего в данном скрипте не понимаю, в CMD еще более или менее, поэтому и спрашиваю как мне поступить, что исправить.
Честно признаюсь я ничего в данном скрипте не понимаю, в CMD еще более или менее, поэтому и спрашиваю как мне поступить, что исправить. »
Почитайте про общий метод решения подобных задач здесь (http://forum.oszone.net/post-1894940.html#post1894940).
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.