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

Компьютерный форум 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

 

Ветеран


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

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


TERMINAL, в аккурат по этой самой статье Hey, Scripting Guy! Can I Pin a File to the Start Menu by Using a Script? делаете на AutoIt (я, правда, предпочитаю прикреплять не сами исполняемые файлы, а ярлыки из Главного меню).

Какие проблемы с переводом с WSH на AutoIt?

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



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

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


Аватара для TERMINAL

Ветеран


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

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


Цитата Iska:
Какие проблемы с переводом с WSH на AutoIt? »
Угадали, и хотелось бы конечно тоже ярлыки создавать...

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


Отправлено: 15:38, 04-05-2012 | #3


Ветеран


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

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


Цитата TERMINAL:
Угадали »
Что угадал? Я спросил — «какие проблемы?», а Вы отвечаете — «угадал»?!

Отправлено: 16:05, 04-05-2012 | #4


Аватара для TERMINAL

Ветеран


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

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


Iska, проблема с переводом с WSH на AutoIt.

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


Отправлено: 09:36, 05-05-2012 | #5


Ветеран


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

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


WSH:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim objShell
Dim objFolder
Dim objFolderItem
Dim objVerb

Set objShell = WScript.CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("shell:Start Menu")

If Not objFolder Is Nothing Then
	Set objFolderItem = objFolder.ParseName("Программы")
	
	If Not objFolderItem Is Nothing Then
		If objFolderItem.IsFolder Then
			Set objFolder = objFolderItem.GetFolder
			
			If Not objFolder Is Nothing Then
				Set objFolderItem = objFolder.ParseName("Internet Explorer.lnk")
				
				If Not objFolderItem Is Nothing Then
					For Each objVerb In objFolderItem.Verbs
						' &Закрепить в меню "Пуск"
						' &Изъять из меню "Пуск"
						
						If objVerb.Name = "&Закрепить в меню ""Пуск""" Then
							objVerb.DoIt()
						End If
					Next
				Else
					WScript.Echo "Can't parse name [Internet Explorer.lnk]"
				End If
			Else
				WScript.Echo "Can't get folder from item [Программы]"
			End If
		Else
			WScript.Echo "Folder item [Программы] is not a folder"
		End If
	Else
		WScript.Echo "Can't parse name [Программы]"
	End If
Else
	WScript.Echo "Can't get folder [Start Menu]"
End If

WScript.Quit 0


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)

Полагаю, что на основе этого будет понятнее.
Это сообщение посчитали полезным следующие участники:

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


Аватара для TERMINAL

Ветеран


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

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


Iska, А обновить сразу можно меню ПУСК, чтобы увидеть изменения?

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


Отправлено: 17:10, 05-05-2012 | #7


Ветеран


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

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


TERMINAL, я под Windows XP вижу изменения сразу — мы ведь работаем с самим Проводником.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:44, 05-05-2012 | #8


Аватара для TERMINAL

Ветеран


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

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


Iska, Ничего не происходит и ошибки не выдаёт-вроде всё правильно, я так понял поиск идёт по самому ПУСК=Все программы?
читать дальше »
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("Skype 5.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 [D:\Program Files\Skype\Phone\Skype.exe]" & @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)

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


Отправлено: 18:58, 05-05-2012 | #9


Ветеран


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

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


TERMINAL, скомпилируйте скрипт для консоли (как CUI) и запустите скомпилированный код непосредственно из командной строки. Если будут ошибки — Вы их увидите. Либо просто сделайте перенаправление потока ошибок в файл:
Код: Выделить весь код
"<скомпилированный код>.exe" 2>errors.txt
и посмотрите на его содержимое.

Цитата TERMINAL:
я так понял поиск идёт по самому ПУСК=Все программы? »
Нет. Мы спускаемся по дереву Проводника: «C:\Documents and Settings\UserName\Главное меню» [это "shell:Start Menu"] → «Программы» → «Internet Explorer.lnk». Сия структура справедлива для Windows XP.
Это сообщение посчитали полезным следующие участники:

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



Компьютерный форум 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




 
Переход