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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Закрепление ярлыков в меню "Пуск" в ХР

Ответить
Настройки темы
[решено] Закрепление ярлыков в меню "Пуск" в ХР

Аватара для TERMINAL

Ветеран


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

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


Добрый день !
Есть статья Закрепление ярлыков в меню "Пуск" и статья Hey, Scripting Guy! Can I Pin a File to the Start Menu by Using a Script?.
Возможно ли, более подходящую вторую статью, сделать так в AutoIt ?

-------
Автоматизация прежде всего....


Отправлено: 10:10, 04-05-2012

 

Аватара для TERMINAL

Ветеран


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

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


Цитата Iska:
TERMINAL, скомпилируйте скрипт для консоли (как CUI) и запустите скомпилированный код непосредственно из командной строки. Если будут ошибки — Вы их увидите. »
Да за это я вкурсе, мне в консоле пишет
читать дальше »
>"D:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\tets.au3" /autoit3dir "D:\Program Files\AutoIt3" /UserParams
+>19:10:52 Starting AutoIt3Wrapper v.2.0.1.24 Environment(Language:0419 Keyboard:00000409 OS:WIN_XP/Service Pack 3 CPU:X64 OS:X86)
>Running AU3Check (1.54.19.0) from:D:\Program Files\AutoIt3
+>19:10:52 AU3Check ended.rc:0
>Running3.3.6.1):D:\Program Files\AutoIt3\autoit3.exe "C:\tets.au3"
+>19:10:55 AutoIT3.exe ended.rc:0

и ничего не добовляется. В C:\Documents and Settings\UserName\Главное меню должен тоже ярлык лежать на этот файл или ехе должен быть?

-------
Автоматизация прежде всего....


Отправлено: 20:13, 05-05-2012 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


Получается, что не в курсе.

Ладно. Замените все «ConsoleWriteError()» на «MsgBox()».

Отправлено: 22:12, 05-05-2012 | #12


Аватара для TERMINAL

Ветеран


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

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


Цитата Iska:
Получается, что не в курсе.
Ладно. Замените все «ConsoleWriteError()» на «MsgBox()». »
Да разницы то никакой, то в консоли выводит, а то сообщением....Для эксперемента заменил на MsgBox()-всеравно тишина, без ошибок и ничего не появляется...

-------
Автоматизация прежде всего....


Отправлено: 09:20, 07-05-2012 | #13


Ветеран


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

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


TERMINAL, сожалею, у меня нет идей. Ждите более опытных коллег.

Отправлено: 10:28, 07-05-2012 | #14


Старожил


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

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


TERMINAL, поищите файл Skype.lnk в папке с профилями пользователей, скорее всего найдёте его в профиле "All Users", то бишь правильный вариант в данном случае будет несколько иной. Проверено на [addon] Skype 5.10.32.114 Business Edition

Последний раз редактировалось _syd_, 30-04-2021 в 08:42.

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:40, 15-07-2012 | #15


Аватара для TERMINAL

Ветеран


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

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


_syd_, вроде бы работает, а вот можно закрепить с другим именем как я хочу, например на русском языке-Скайп ?

-------
Автоматизация прежде всего....


Отправлено: 19:00, 16-07-2012 | #16


Ветеран


Сообщения: 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


Ветеран


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

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


Пожалуйста, сделайте в этом коде - чтобы прописать путь к файлу-ярлыку:
1) прописал путь C:\Users\-\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories\Блокнот.lnk
2) скомпилировал в exe файл скрипт au3
3) запустил exe файл
4) в меню "Пуск" закреплен файл-ярлык Блокнот

Отправлено: 18:53, 07-09-2015 | #18


Старожил


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

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


SharkyEXE, FileCreateShortcut(@WindowsDir & "\NOTEPAD.EXE", @ProgramsCommonDir & "\Блокнотик.lnk", @WindowsDir, "", "Это блокнот", "", "", @SW_MINIMIZE)

Отправлено: 11:44, 14-10-2015 | #19



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Закрепление ярлыков в меню "Пуск" в ХР

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как удалить ярлыки (в меню "Пуск" - "Программы", с рабочего стола, и т. д.) Craager Автоматическая установка Windows 2000/XP/2003 167 08-05-2015 02:50
Интерфейс - [решено] Исчез список программ в подменю "Все программы" меню "Пуск" sewell Microsoft Windows 7 23 21-03-2011 16:51
CMD/BAT - Нужен bat для удаления ИЗМЕНЁННЫХ папок и программ (ярлыков) из меню "Пуск-Программы" Nun-Nun Скриптовые языки администрирования Windows 15 18-03-2011 10:14
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") submaster Microsoft Windows NT/2000/2003 5 13-09-2006 12:29
Пункт "Завершение сеанса..." в меню "Пуск" при входе в домен. Andrik Microsoft Windows NT/2000/2003 3 13-12-2005 11:31




 
Переход