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

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

SharkyEXE 02-11-2019 18:00 2894436

Изъять программЫ из панели задач
 
Вложений: 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 - прилагаю

После запуска файла все значки, которые закреплены на панели задач - не изъялись из панели задач

Пожалуйста, поправьте код, что в нем не так

Спасибо.

Iska 02-11-2019 20:41 2894463

Цитата:

Цитата SharkyEXE
что в нем не так »

Например, в нём не учитывается, что локализация ОС может отличаться от английской :).

Скрытый текст
Код:

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».

SharkyEXE 02-11-2019 20:43 2894464

Цитата:

Цитата 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"

Iska 02-11-2019 22:08 2894484

SharkyEXE, не сделаю, поскольку единственно известный мне легальный способ уже изложен выше.

dislike 03-11-2019 08:13 2894517

Цитата:

Цитата Iska
легальный способ »

Что значит "легальный"? Остальные способы запрещены законом?

SharkyEXE 03-11-2019 11:31 2894544

Цитата:

Цитата Iska
Iska »

Здравствуйте.

Эм, а считать данные из ветки "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»)

Iska 03-11-2019 11:59 2894551

Цитата:

Цитата 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. Я вообще никогда не пользовал и не пользую закрепление приложений на Панели задач. Посему для меня это достаточно отвлечённая тема.

SharkyEXE 03-11-2019 12:54 2894565

Цитата:

Цитата Iska
Пробуйте, на свой страх и риск. »

Так я не могу, не умею, пожалуйста, если Вы можете - помогите это реализовать, добавьте в Ваш скрипт удалить ветку реестра "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband"

Iska 03-11-2019 14:15 2894577

На Ваш страх и риск:
Скрытый текст
Код:

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


Кроме того, полагаю, изменения в интерфейсе оболочки (в результате удаления в реестре) Вы увидите только после перезапуска оболочки (например, выход из сеанса/вход в систему).

SharkyEXE 03-11-2019 14:38 2894580

Цитата:

Цитата Iska
Iska »

Здравствуйте.

Большое Вам спасибо за помощь.

PS. В моем случае, после использования скрипта, происходит перезагрузка компьютера

SharkyEXE 14-12-2019 14:17 2900326

Iska

Здравствуйте.

Пожалуйста, можете выложить еще одну версию Вашего скрипта
http://forum.oszone.net/post-2894577-9.html

в котором после строки
Код:

Option Explicit
добавлены строки ( это на языке "командная строка" строки )
Код:

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\"
)

Спаисбо.

Iska 15-12-2019 16:14 2900529

SharkyEXE, а в чём глубинный смысл? Как может данный каталог не существовать, если там есть изначально закреплённые элементы?! И зачем присваивать каталогу атрибут «Только для чтения»?


Время: 20:20.

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