Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 23
Благодарности: 6

Профиль | Отправить PM | Цитировать


Dodakaedr, вот, все аналогично первому скрипту, сохраняйте в виде файла .vbs:
Код: Выделить весь код
If WScript.Arguments.Count <> 1 Then
	MsgBox "Перетащите файл, чтобы закрепить его в меню ""Пуск""", , "Закрепление ярлыка в меню ""Пуск"""
	WScript.Quit
End If

strPath = WScript.Arguments(0)

If MsgBox("Закрепить ярлык на [" & strPath & "] в меню ""Пуск""?", vbYesNo + vbInformation, "Закрепление ярлыка в меню ""Пуск""") = vbYes Then
	Set objShell = CreateObject("Shell.Application")
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	
	Set objFolder = objShell.NameSpace(objFSO.GetParentFolderName(strPath))
	Set objFolderItem = objFolder.ParseName(objFSO.GetFileName(strPath))
	
	If objFolderItem Is Nothing Then
		MsgBox strPath & vbCrLf & "Файл не найден", , "Закрепление ярлыка в меню ""Пуск"""
		WScript.Quit
	End If
	
	Set colVerbs = objFolderItem.Verbs
	
	bPinned = False
	For Each objVerb In colVerbs
		VerbName = Replace(objVerb.Name, "&", "")
		If VerbName = "Закрепить в меню ""Пуск""" Or VerbName = "Pin to Start Menu" Then
			objVerb.DoIt
			bPinned = True
			Exit For
		End If
		
	Next
		
	If bPinned Then
		Msgbox "Ярлык закреплен", vbOKOnly + vbInformation, "Закрепление ярлыка в меню ""Пуск"""
	Else
		Msgbox "Ошибка закрепления ярлыка", vbOKOnly + vbCritical, "Закрепление ярлыка в меню ""Пуск"""
	End If
End If
Предвосхищая следующий вопрос - "Как убрать ярлык из меню Пуск?", отвечу: в тексте скрипта выше нужно заменить вот эту строку:
Код: Выделить весь код
If VerbName = "Закрепить в меню ""Пуск""" Or VerbName = "Pin to Start Menu" Then
на строку
Код: Выделить весь код
If VerbName = "Изъять из меню ""Пуск""" Or VerbName = "Unpin from Start Menu" Then
Ну и по тексту посмотреть - где было "...закрепить..." - заменить на "...изъять...".

P.S.: Напомню, что в зависимости от локализации эти скрипты могут легко Вас подвести. Пока что учтены имена действий только на русском и английском. В идеале нужно бы найти некий системный ресурс, который для всех языковых пакетов находился бы в одном и том же месте, и по определенному индексу из него можно было бы извлечь нужное название действия именно для текущей локализации.
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:20, 06-07-2014 | #46