Favorite6233
Знающий
- Сообщения
- 21
- Репутация
- 5
Приветствую сообщество. После достаточно долгих лазаний по инету я нашёл всё таки способ, как программно закрепить нужную программу в панели задач Windows-7. Эту операцию можно сделать по правой кнопке мыши, но данный скрипт предназначен для того, чтобы автоматизировать процесс. Инсталлируете вы, например, программу, и хотите, чтобы её ярлык размещался в панели задач, и чтобы это происходило автоматически. Данный скрипт поможет это сделать.
Этот способ был реализован на VBS, я его переделал на AutoIt и оформил в удобное использование.
Работает на русскоязычной версии Windows-7. На англоязычной не пробовал. Но, если нужно под другой язык, то скрипт нужно совсем немного переделать: просто добавить проверку на нужный язык.
Этот способ был реализован на VBS, я его переделал на AutoIt и оформил в удобное использование.
Работает на русскоязычной версии Windows-7. На англоязычной не пробовал. Но, если нужно под другой язык, то скрипт нужно совсем немного переделать: просто добавить проверку на нужный язык.
Код:
Func Pin_To_Taskbar($StrPath)
; Закрепляет программу в панели задач Windows 7
; Всё делается так, как если бы на файле была нажата правая кнопка мыши и выбран соответствующий пункт. Если текст в меню будет отличаться от того, что здесь в скрипте,
; то работать не будет, потому что нужно будет добавить сюда запись. Это значит, что для другого языка или если при каком-либо обновлении переименуют этот пункт, то скрипт
; работать не будет, пока его не исправить.
;
; $StrPath - Это полный путь к файлу, ярлык от которого нужно поместить в панель задач. Если файл не может быть помещён в панель задач, то есть если по ПКМ на нём нет такого
; пункта, то ничего делаться не будет. Будет только соответствующая запись в лог-файле.
; При выходе возвращает:
; 1 - если программа закрепилась,
; 2 - если открепилась,
; 0 - если ни то, ни другое.
;~ $StrPath = "C:\Program Files (x86)\The KMPlayer\KMPlayer.exe"
If @OSVersion = "WIN_7" Or @OSVersion = "WIN_8" Then
Local $objShell = ObjCreate("Shell.Application")
Local $filesystem = ObjCreate("scripting.Filesystemobject")
Local $objFolder = $objShell.Namespace($filesystem.GetParentFolderName($StrPath))
Local $objFolderItem = $objFolder.ParseName($filesystem.GetFileName($StrPath))
Local $colVerbs = $objFolderItem.Verbs
Local $VerbName
For $objVerb In $colVerbs
$VerbName = StringReplace($objVerb.name, "&", "")
If $VerbName = "Закрепить программу в панели задач" Or _
$VerbName = "Закрепить на панели задач" Or _
$VerbName = "Pin to Taskbar" Then
$objVerb.DoIt
Logging("Программа " & $StrPath & " закреплена в панели задач успешно.")
Return 1
ElseIf $VerbName = "Изъять программу из панели задач" Or _
$VerbName = "Открепить от панели задач" Or _
$VerbName = "Unpin from Taskbar" Then
$objVerb.DoIt
Logging("Программа " & $StrPath & " успешно открепилась от панели задач.")
Return 2
EndIf
Next
Logging("Не удалось программу " & $StrPath & " закрепить в панели задач.")
Return 0
Else
Logging("В данной операционной системе не могу закрепить ярлык в панели задач.")
EndIf
EndFunc ;==>Pin_To_Taskbar
Строчки Logging можно просто удалить. У меня отдельная функция делает лог-файл. В данном случае это не принципиально.