Всем здравствуйте.
Моя ОС: 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
Что я сделал не так, пожалуйста, помогите мне.