Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista (http://forum.oszone.net/forumdisplay.php?f=83)
-   -   [решено] Как закрепить ярлыки в меню Пуск / панели задач? (http://forum.oszone.net/showthread.php?t=182291)

ded-mazay 06-08-2010 11:35 1468076

[решено] Как закрепить ярлыки в меню Пуск / панели задач?
 
Доброго времени!
Есть некий батник отрабатывающий по окончанию установки приложений при первом входе в систему:

Код:

if exist "%ProgramFiles%\AIMP2\AIMP2.exe" xcopy "%SystemDrive%\lnk\AIMP2.lnk" "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\" /Y
if exist "%ProgramFiles%\Total Commander\TOTALCMD.EXE" xcopy "%SystemDrive%\lnk\Total Commander.lnk" "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\" /Y
if exist "%ProgramFiles%\Opera AC 3.6\OperaAC.exe" xcopy "%SystemDrive%\lnk\Opera AC.lnk" "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\" /Y
if exist "%ProgramFiles%\OSAM\os.exe" xcopy "%SystemDrive%\lnk\OSAM.lnk" "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\" /Y

RD "%SystemDrive%\lnk" /S /Q
regedit /S "%SystemDrive%\reg.reg"
del "%SystemDrive%\reg.reg" /Q /F
del "%SystemDrive%\start.cmd" /Q /F

Жмакаю Пуск - там пусто, чз проводник ярлыки в %APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\ присутствуют, НЕ скрытые и не системные файлы.. В чем дело?

Vadikan 06-08-2010 11:40 1468085

ded-mazay, Windows 7? Там нет панели быстрого запуска, по кр. мере по умолчанию.

ded-mazay 06-08-2010 11:47 1468093

Vadikan, да, но когда жмакаешь на ярлыке или exe'шнике "Закрепить в меню Пуск" - ярлык именно там и появляется (...\User Pinned\StartMenu\), кроме того если я руками чз "Закрепить в меню Пуск" добавляю тот же самый Total Commander - он там уже появляется как Total Commander (2)...
P.S.
Да Win 7

Vadikan 07-08-2010 13:40 1468804

ded-mazay, понял теперь... Наверное, недостаточно просто положить их в папку :) Вот вариант со скриптом от профессионалов: Pin Items to the Start Menu or Windows 7 Taskbar via Script - The Deployment Guys

Фрагмент скрипта:

Код:

Const CSIDL_COMMON_PROGRAMS = &H17
Const CSIDL_PROGRAMS = &H2
Set objShell = CreateObject("Shell.Application")
Set objAllUsersProgramsFolder = objShell.NameSpace(CSIDL_COMMON_PROGRAMS)
strAllUsersProgramsPath = objAllUsersProgramsFolder.Self.Path
Set objFolder = objShell.Namespace(strAllUsersProgramsPath & "\Accessories")
Set objFolderItem = objFolder.ParseName("Calculator.lnk")
Set colVerbs = objFolderItem.Verbs
For Each objVerb in colVerbs
    Wscript.Echo objVerb
Next

Красным выделен путь к папке, где лежит ярлык (можно задать путь типа C:\) и имя ярлыка. Дополнительная помощь по скриптам у нас тут Скриптовые языки администрирования Windows

Morpheus 26-01-2011 23:39 1597976

Pin and unpin applications from the taskbar and Start-menu - вариант на PowerShell.

defor6 04-04-2012 23:17 1893661

Уж простите, раз тема есть, создавать новую не стану, поднимем эту)

Вот уже больше года прошло. Появился ли простой и вразумительный ответ на вопрос: "Как из батника (напрямую или с использованием вспомогательных экзэшников) создать и/или поместить ярлыки нужных программ в меню ПУСК?" На всякий случай реальный путь в системе : %APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\StartMenu\

Есть подозрение, что зараза семерка, кроме физического помещения ярлыка по вышеуказанному пути, еще и в реестре в шестнадцатиричном виде как-то их регистрирует.

Если через батник и простенькую вспомогательную утильку ну совсем никак - наведите, пожалуйста, на требуемый скрипт и по возможности объясните как им пользоваться. Заранее спасибо.

Iska 05-04-2012 00:20 1893687

defor6, напрямую из пакетного файла — никак. Если недостаточно предыдущих двух постов — на WSH и PoSH — напишите и скомпилируйте исполняемый файл, работающий по тому же механизму.

Или я что-то недопонимаю?

defor6 06-04-2012 22:49 1894882

Да как бы все правильно... Просто сам я скриптовых языков, кроме пакетных файлов не знаю совершенно. Да и говоря по правде узнавать не стремлюсь. Сейчас в активном режиме осваиваю С#... Потому предыдущие посты я просто не понимаю, пытался логически разобраться, что и зачем делается, но не смог( Помогите, пожалуйста, или написать скрипт и объяснить, как им пользоваться или полностью объяснить алгоритм действий, которые необходимы для добавления ярлыка в меню Пуск (а дальше уже с учетом своих знаний и умений попробую реализовать его). Вот..
Или все же для реализации процесса мне обязательно нужно вникнуть и научиться работать с
Цитата:

Цитата Iska
WSH и PoSH »

?

Iska 07-04-2012 01:23 1894940

Цитата:

Цитата defor6
или полностью объяснить алгоритм действий, которые необходимы для добавления ярлыка в меню Пуск »

Алгоритм действий прост — надо, получив объект Проводника «Shell.Application» (Shell object), пройти по иерархии объектов до нужного нам ярлыка/исполняемого файла:

* посредством метода «.NameSpace()» (Shell.NameSpace method) объекта «Shell.Application» получить ссылку на объект «Folder» (Folder object) [здесь желательно использовать не прямые пути, а константы CSIDL, а ещё лучше — предопределённые имена объектов Проводника: WSH: перечень предопределённых символьных имён Shell.Application];

* посредством метода «.ParseName()» (Folder.ParseName method) получить ссылку на объект «FolderItem» (FolderItem object) внутри Folder;

* затем в цикле перебирать глаголы (Verbs), относящиеся к данному объекту «FolderItem»;

* при совпадении свойства «.Name» (Name) очередного объекта «FolderItemVerb» (FolderItemVerb object) с искомым значением (названием пункта контекстного меню ярлыка/исполняемого файла «Закрепить/Открепить в меню Пуск/на Панель задач»; не забываем про амперсанд перед горячей клавишей, если таковые будут) выполнить его метод «.DoIt()» (DoIt).


Время: 01:50.

Время: 01:50.
© OSzone.net 2001-