Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Как в vbs вставить переменную (http://forum.oszone.net/showthread.php?t=232977)

Valek271183 17-04-2012 00:59 1901069

Как в vbs вставить переменную
 
Не разбираюсь в 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
но вместо ИМЕНИ ПОЛЬЗОВАТЕЛЯ вставить переменную потому что будет использоваться на разных компах
Как мне сделать этот путь универсальным для разных пользователей (или может есть путь попроще??)

ferget 17-04-2012 02:40 1901080

C:\users\%username%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar

Iska 17-04-2012 08:34 1901115

Valek271183, обратите внимание на примеры отсюда: 7 / 2008 R2 - [решено] Как закрепить ярлыки в меню Пуск?.

Valek271183 19-04-2012 12:26 1902409

Iska помогай. Приведи пожалуйста пример на любом ярлыке с панели задач как его можно "Открепить от панели задач"

Iska 19-04-2012 14:46 1902519

Valek271183, не помогу — у меня нет сейчас под рукой ОС, более свежих, нежели Windows XP.

Примеры есть по приведённой ссылке. Потребное имя глагола можно получить, перебрав их, как в этом примере из упомянутой ссылки же.

Morpheus 19-04-2012 19:54 1902721

Код:

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. Можно тему приклеить сюда - [решено] Закрепление на панели задач из командной строки

ferget 19-04-2012 20:05 1902732

"cmd.lnk" вы просто так написали или у вас он так называется?

просто у меня cmd закрепляется как "Command Prompt.lnk"

Morpheus 19-04-2012 20:10 1902736

ferget, это у меня там ярлык такой.

Valek271183 19-04-2012 20:11 1902737

Morpheus , я знал что ты сможешь помочь, людей которые так хорошо разбираются не так уж и много, но у тебя всегда есть ответ на любой вопрос, так что СПАСИБО тебе огромное!

Morpheus 19-04-2012 20:15 1902741

Valek271183, не всегда и не на любой, но за спасибо - спасибо! :)

timon45 23-09-2012 00:50 1993352

Больше часа пытаюсь изъять программу но так и не получается.
Прикрепить (это срабатывает)
Код:

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
но совсем ничего не получилось :(

Iska 23-09-2012 09:42 1993394

Что Вы ожидаете получить здесь:
Код:

Set objFolder = objShell.Namespace(strCurrentUserProgramsPath & "c:\Users\TimON\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
?

Вообще-то скрипт должен сообщать об ошибке во время своего исполнения.

timon45 23-09-2012 10:04 1993400

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
ошибка:

Iska 23-09-2012 19:14 1993598

timon45, начните с того, что прикрепите архив с упакованным Вашим скриптом к сообщению.

timon45 23-09-2012 19:50 1993616

Вложений: 1
Iska, В принципе все то что и писал под кодом.
Ярлык "STDU Viewer.lnk" присутствует по пути: c:\Users\TimON\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\STDU Viewer.lnk

Iska 23-09-2012 20:14 1993630

timon45, как я и предполагал, вышеуказанная ошибка вызвана тем, что Ваш скрипт сохранён в кодировке UTF-8 с BOM. Как раз из-за BOM Вы и получаете эту ошибку.

Сохраните Ваш скрипт в кодировке ANSI/Windows-1251.

timon45 23-09-2012 20:55 1993652

Iska, да уже близко но все равно пока ошибка, но другая.


Iska 23-09-2012 21:10 1993665

timon45, лучше нажимайте «Ctrl-C» в окне сообщения об ошибке и вставляйте, обрамив тэгом «code».

Цитата:

Цитата timon45
ошибка, но другая. »

Вы пытаетесь присвоить переменной объектный тип («set …»), а в правой части присваивания выражение («objCurrentUserStartFolder.Self.Path») возвращает строку.

timon45 23-09-2012 21:40 1993686

Цитата:

Цитата Iska
лучше нажимайте «Ctrl-C» в окне сообщения об ошибке и вставляйте, обрамив тэгом «code». »

Спасибо, буду знать.
Цитата:

Цитата Iska
Вы пытаетесь присвоить переменной объектный тип («set …»), а в правой части присваивания выражение («objCurrentUserStartFolder.Self.Path») возвращает строку. »

Честно признаюсь я ничего в данном скрипте не понимаю, в CMD еще более или менее, поэтому и спрашиваю как мне поступить, что исправить.

Iska 24-09-2012 02:10 1993749

Цитата:

Цитата timon45
Честно признаюсь я ничего в данном скрипте не понимаю, в CMD еще более или менее, поэтому и спрашиваю как мне поступить, что исправить. »

Почитайте про общий метод решения подобных задач здесь.


Время: 13:34.

Время: 13:34.
© OSzone.net 2001-