 |
|
Изъять программЫ из панели задач
Вложений: 1
Всем здравствуйте
Операционная система: Microsoft Windows 7 Professional Service Pack 1 x64 Russian
Вот здесь перейти скопировал код
Скрытый текст
Код:
Option Explicit
Const CSIDL_APPDATA = &H1A
Dim objShell
Dim objFolder
Dim objFolderItem
Dim objVerb
Dim objCurrentUserAppData
Dim strCurrentUserAppData
Set objShell = CreateObject("Shell.Application")
Set objCurrentUserAppData = objShell.NameSpace(CSIDL_APPDATA)
strCurrentUserAppData = objCurrentUserAppData.Self.Path
'===================''==================='
' - Remove All Pinned Items -
'===================''==================='
Set objFolder = objShell.Namespace(strCurrentUserAppData & "\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
For Each objFolderItem in objFolder.Items
For Each objVerb in objFolderItem.Verbs
If Replace(objVerb.name, "&", "") = "Unpin from Taskbar" Then objVerb.DoIt
Next
Next
и вставил его в файл Unpin all from Taskbar.vbs - прилагаю
После запуска файла все значки, которые закреплены на панели задач - не изъялись из панели задач
Пожалуйста, поправьте код, что в нем не так
Спасибо.
|
Например, в нём не учитывается, что локализация ОС может отличаться от английской :).
Скрытый текст
Код:
Option Explicit
Dim strUserAppData
Dim objFolder
Dim objFolderItem
Dim objVerb
With WScript.CreateObject("Shell.Application")
strUserAppData = .NameSpace("shell:AppData").self.Path
Set objFolder = .Namespace(strUserAppData & "\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
If Not objFolder Is Nothing Then
For Each objFolderItem In objFolder.Items
For Each objVerb In objFolderItem.Verbs
WScript.Echo Replace(objVerb.Name, "&", "")
Select Case LCase(Replace(objVerb.Name, "&", ""))
Case "unpin from taskbar", "открепить от панели задач"
WScript.Echo "Unpin [" & objFolderItem.Name & "]."
objVerb.DoIt
Case Else
' Nothing to do
End Select
Next
Next
Set objFolder = Nothing
Else
WScript.Echo "Can't determine path [" & strUserAppData & "\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" & "]."
WScript.Quit 1
End If
End With
WScript.Quit 0
Но там хранятся данные (в виде ярлыков) не о всех закреплённых приложениях. Попробуйте, например, закрепить Солитер («C:\Program Files\Microsoft Games\FreeCell\FreeCell.exe») на Панели задач, а потом поискать его в указанном каталоге профиля пользователя. Сведения о его закреплении будут только в реестре — «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband».
|
Цитата:
Цитата Iska
Сведения о его закреплении будут только в реестре — «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband» »
|
Пожалуйста, я Вас очень прошу, если можно, сделайте, чтобы 100%но откреплялось как из "\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar", так и из "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband"
|
SharkyEXE, не сделаю, поскольку единственно известный мне легальный способ уже изложен выше.
|
Что значит "легальный"? Остальные способы запрещены законом?
|
Здравствуйте.
Эм, а считать данные из ветки "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" - если там чего-то будет (записи, дополнительные разделы внутри ветки), просто удалить записи или вообще по простому, по "тупому" (прошу прощения) - удалить ветку "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" - нет ветки, по моей идее и не будет закрепленного того же ярлыка Солитер («C:\Program Files\Microsoft Games\FreeCell\FreeCell.exe»)
|
Цитата:
Цитата dislike
Что значит "легальный"? »
|
Документированный и официально поддерживаемый.
Цитата:
Цитата SharkyEXE
Эм, а считать данные из ветки "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" - если там чего-то будет (записи, дополнительные разделы внутри ветки), просто удалить записи или вообще по простому, по "тупому" (прошу прощения) - удалить ветку "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband" - нет ветки, по моей идее и не будет закрепленного того же ярлыка Солитер («C:\Program Files\Microsoft Games\FreeCell\FreeCell.exe») »
|
Пробуйте, на свой страх и риск.
P.S. Я вообще никогда не пользовал и не пользую закрепление приложений на Панели задач. Посему для меня это достаточно отвлечённая тема.
|
Цитата:
Цитата Iska
Пробуйте, на свой страх и риск. »
|
Так я не могу, не умею, пожалуйста, если Вы можете - помогите это реализовать, добавьте в Ваш скрипт удалить ветку реестра "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband"
|
На Ваш страх и риск:
Скрытый текст
Код:
Option Explicit
Const HKEY_CURRENT_USER = &H80000001
Const strSubKey = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband"
Dim strUserAppData
Dim objFolder
Dim objFolderItem
Dim objVerb
With WScript.CreateObject("Shell.Application")
strUserAppData = .NameSpace("shell:AppData").self.Path
Set objFolder = .Namespace(strUserAppData & "\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar")
If Not objFolder Is Nothing Then
For Each objFolderItem In objFolder.Items
For Each objVerb In objFolderItem.Verbs
WScript.Echo Replace(objVerb.Name, "&", "")
Select Case LCase(Replace(objVerb.Name, "&", ""))
Case "unpin from taskbar", "открепить от панели задач"
WScript.Echo "Unpin [" & objFolderItem.Name & "]."
objVerb.DoIt
Case Else
' Nothing to do
End Select
Next
Next
Set objFolder = Nothing
Else
WScript.Echo "Can't determine path [" & strUserAppData & "\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" & "]."
End If
End With
If WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").Get("StdRegProv").DeleteKey(HKEY_CURRENT_USER, Split(strSubKey, "\", 2)(1)) <> 0 Then
WScript.Echo "Can't delete subkey [" & strSubKey & "]."
End If
WScript.Quit
Кроме того, полагаю, изменения в интерфейсе оболочки (в результате удаления в реестре) Вы увидите только после перезапуска оболочки (например, выход из сеанса/вход в систему).
|
Здравствуйте.
Большое Вам спасибо за помощь.
PS. В моем случае, после использования скрипта, происходит перезагрузка компьютера
|
Iska
Здравствуйте.
Пожалуйста, можете выложить еще одну версию Вашего скрипта
http://forum.oszone.net/post-2894577-9.html
в котором после строки добавлены строки ( это на языке "командная строка" строки )
Код:
Rem Если не существует папка "%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\" , то
If Not Exist "%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\" (
Rem Создать папку "%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\"
Md "%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\"
Rem Присвоить папке "%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\" атрибут "только чтение"
"%SystemDrive%\Windows\System32\Attrib.exe" +R "%UserProfile%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\"
)
Спаисбо.
|
SharkyEXE, а в чём глубинный смысл? Как может данный каталог не существовать, если там есть изначально закреплённые элементы?! И зачем присваивать каталогу атрибут «Только для чтения»?
|
Время: 20:20.
© OSzone.net 2001-