Что нового

Закрепить в меню "Пуск"

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Версия AutoIt: 3.3.14.0

Описание:
Всем здравствуйте.

Моя ОС: 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

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

Примечания:
Отсутствуют.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Для того, чтобы поместить программу в меню "Пуск", достаточно просто скопировать соответствующий ярлык.

Код:
FileCopy('Блокнот.lnk', 'C:\Users\...\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories')
 
Автор
S

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Yashied
Здравствуйте.

Прошу прощения, если я не корректно описал, что мне надо.

Мне надо, чтобы было, как на видео

Чтобы когда нажимаешь кнопку "Пуск", в нижнем левом углу появляется типа мини панель, слева вверху этой панели была строка "Блокнот" - это и есть Закрепить программу в меню "Пуск"

Спасибо.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Xion, где вы вирус нашли?
 
Автор
S

SharkyEXE

Новичок
Сообщения
134
Репутация
0
Неужели мне никто не хочет помочь, пожалуйста, неужели моя проблема не решаема? :(

Пожалуйста, в коде Autoit, сделайте, задать путь к файлу-ярлыку и все, запускаем скомпилированный exe файл и в меню "Пуск" закреплен ярлык.
 

Khaibit

Осваивающий
Сообщения
103
Репутация
25
попробуйте так
Код:
FileCopy('Блокнот.lnk', 'C:\Users\...\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu')

вместо точек имя пользователя

up

ну или так
Код:
FileCreateShortcut('C:\Windows\System32\notepad.exe',  'C:\Users\...\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\Блокнот.lnk')
 
Верх