Имя пользователя:
Пароль:
 

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

Ветеран


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

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


Всем здравствуйте.

Моя ОС: MS Windows 7 SP1 Pro x64 Rus

1) Здесь есть код Autoit
Скрытый текст
Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

Local $oShell  = ObjCreate("Shell.Application")
Local $oFolder = $oShell.Namespace("shell:Start Menu")
Local $oFolderItem
Local $oVerb

If Not ObjName($oFolder) = "" Then
	$oFolderItem = $oFolder.ParseName("Программы")

	If Not ObjName($oFolderItem) = "" Then
		If $oFolderItem.IsFolder Then
			$oFolder = $oFolderItem.GetFolder

			If Not ObjName($oFolder) = "" Then
				$oFolderItem = $oFolder.ParseName("Internet Explorer.lnk")

				If Not ObjName($oFolderItem) = "" Then
					For $oVerb In $oFolderItem.Verbs
						; &Закрепить в меню "Пуск"
						; &Изъять из меню "Пуск"

						If $oVerb.Name = "&Закрепить в меню ""Пуск""" Then
							$oVerb.DoIt()
						EndIf
					Next
				Else
					ConsoleWriteError("Can't parse name [Internet Explorer.lnk]" & @CRLF)
				EndIf
			Else
				ConsoleWriteError("Can't get folder from item [Программы]" & @CRLF)
			EndIf
		Else
			ConsoleWriteError("Folder item [Программы] is not a folder" & @CRLF)
		EndIf
	Else
		ConsoleWriteError("Can't parse name [Программы]" & @CRLF)
	EndIf
Else
	ConsoleWriteError("Can't get folder [Start Menu]" & @CRLF)
EndIf

Exit(0)

2) Создал пустой файл C:\1.au3

3) В файл C:\1.au3 вставил целиком/полностью код AutoIt
Скрытый текст
Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

Local $oShell  = ObjCreate("Shell.Application")
Local $oFolder = $oShell.Namespace("shell:Start Menu")
Local $oFolderItem
Local $oVerb

If Not ObjName($oFolder) = "" Then
	$oFolderItem = $oFolder.ParseName("Программы")

	If Not ObjName($oFolderItem) = "" Then
		If $oFolderItem.IsFolder Then
			$oFolder = $oFolderItem.GetFolder

			If Not ObjName($oFolder) = "" Then
				$oFolderItem = $oFolder.ParseName("Internet Explorer.lnk")

				If Not ObjName($oFolderItem) = "" Then
					For $oVerb In $oFolderItem.Verbs
						; &Закрепить в меню "Пуск"
						; &Изъять из меню "Пуск"

						If $oVerb.Name = "&Закрепить в меню ""Пуск""" Then
							$oVerb.DoIt()
						EndIf
					Next
				Else
					ConsoleWriteError("Can't parse name [Internet Explorer.lnk]" & @CRLF)
				EndIf
			Else
				ConsoleWriteError("Can't get folder from item [Программы]" & @CRLF)
			EndIf
		Else
			ConsoleWriteError("Folder item [Программы] is not a folder" & @CRLF)
		EndIf
	Else
		ConsoleWriteError("Can't parse name [Программы]" & @CRLF)
	EndIf
Else
	ConsoleWriteError("Can't get folder [Start Menu]" & @CRLF)
EndIf

Exit(0)

4) В файле C:\1.au3 заменил только Internet Explorer.lnk на Блокнот.lnk

5) Получилось так
Скрытый текст
Код: Выделить весь код
AutoItSetOption("MustDeclareVars", 1)

Local $oShell  = ObjCreate("Shell.Application")
Local $oFolder = $oShell.Namespace("shell:Start Menu")
Local $oFolderItem
Local $oVerb

If Not ObjName($oFolder) = "" Then
	$oFolderItem = $oFolder.ParseName("Программы")

	If Not ObjName($oFolderItem) = "" Then
		If $oFolderItem.IsFolder Then
			$oFolder = $oFolderItem.GetFolder

			If Not ObjName($oFolder) = "" Then
				$oFolderItem = $oFolder.ParseName("Блокнот.lnk")

				If Not ObjName($oFolderItem) = "" Then
					For $oVerb In $oFolderItem.Verbs
						; &Закрепить в меню "Пуск"
						; &Изъять из меню "Пуск"

						If $oVerb.Name = "&Закрепить в меню ""Пуск""" Then
							$oVerb.DoIt()
						EndIf
					Next
				Else
					ConsoleWriteError("Can't parse name [Блокнот.lnk]" & @CRLF)
				EndIf
			Else
				ConsoleWriteError("Can't get folder from item [Программы]" & @CRLF)
			EndIf
		Else
			ConsoleWriteError("Folder item [Программы] is not a folder" & @CRLF)
		EndIf
	Else
		ConsoleWriteError("Can't parse name [Программы]" & @CRLF)
	EndIf
Else
	ConsoleWriteError("Can't get folder [Start Menu]" & @CRLF)
EndIf

Exit(0)

6) Скомпилировал файл C:\1.au3 в exe, получился файл C:\1.exe

7) Запускаю файл C:\1.exe

8. Перезагрузил ПК

9) Нажимаю кнопку "Пуск", строки Блокнот нету

10) Файл-ярлык Блокнот.lnk, который надо закрепить в меню "Пуск", у меня находится в папке: C:\Users\-\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories

Что я сделал не так, пожалуйста, помогите мне.

Отправлено: 05:26, 07-09-2015 | #17