![]() |
Смена иконки ярлыка командой в .bat
Вопрос с предысторией (для пущего осознания ситуации)
изначально хотелось переключать "Устройство воспроизведения" в один клик, тут нашлось решение в виде утилиты DefSound тк в DefSound реализована командная строка, народ смекнул и заваял start.bat Код:
IF exist log.txt goto loop1 Код:
var activex = new ActiveXObject("WScript.Shell"); теперь у меня имеется проблема в индикации активного "Устройство воспроизведения", и мне думается что иконка ярлыка (созданного для START.JS) самый изящный способ потому прошу откликнуться людей кто в состоянии дополнить (переделать) данную конструкцию для того что бы она не только переключала "Устройство воспроизведения" но и меняла иконку ярлыка в системе имеется два устройства вывода звука, насколько я понимаю их в коде нумеруют как 0 и 1, чтоб далеко не отходить от устоявшегося обозначения будем считать что в папку со всеми файлами положены две иконки 0.ico и 1.ico, а на рабочем столе имеется ярлык START.lnk не в тему: что выполняет (делает) данный кодобнаружил это в DefSound.cmd, прилагался в архиве DefSound.zip тут, но про него не было ни слова, хочется знать его ценность и необходимость а также функционал |
А может сделать два ярлыка с разными иконками и копировать их bat-ом попеременно с автоматическим удаление перед копированием новогоИЛИ
|
Цитата:
1. Разместить потребную информацию здесь же, а не посылать возжелавших помочь бегать по ссылкам. 2. Сообщить имя неназванного ярлыка на Рабочем столе. 3. Выложить здесь же Ваши «допустим 0.ico и 1.ico». Или это тоже — к «требуется готовое решение», Вам должен кто-то сделать? |
Iska, Капитан Тиг - «Хранитель Пиратского Кодекса Чести» :laugh:
|
Цитата:
спасибо за попытку Цитата:
2. я думаю если в коде его назвать START.lnk а потом пояснить что мол вместо START.lnk впиши название своего, так будет вполне приемлемо 3. а я думаю человеку составляющему (дополняющему) код по барабану что за картинки кроются под 0.ico и 1.ico, главное их имена прописать в коде правильно, а потом пояснить мол не забудь их в папку с прогой и скриптами положить, так будет вполне приемлемо |
если не нравится идея с копированием (из-за фигурного расположения) то возможен вариант с
Код:
attrib 1.lnk +h |
Цитата:
|
вот скрипт меняющий иконку на рабочем столе - не перемещая...
Код:
var vbOKCancel = 1; и Код:
IF exist log.txt goto loop1 если не понятно var MyShortcut = Название ярлыка .lnk MyShortcut.TargetPath = Расположение .exe MyShortcut.WorkingDirectory = Рабочая директория .exe MyShortcut.IconLocation = Расположение файла .ico ОБЯЗАТЕЛЬНОЕ ИСПОЛЬЗОВАНИЕ ДВОЙНОГО СЛЕША \\ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Прошу прощения за мои разные мысли но простое замещение одного и того же файла происходит без перемещения по рабочему столу ))))
приведу пример [code] IF exist log.txt goto loop1 echo 0>log.txt DefSound-x32.exe 0 copy /y c:\1.ico "рабочий стол\0.ico" goto exit :loop1 del log.txt DefSound-x32.exe 1 copy /y c:\2.ico "рабочий стол\0.ico" :exit taskkill /im DefSound-x32.exe |
Цитата:
Цитата:
Или имеешь в виду что просто копируем с заменой заранее созданные и настроенные на разные иконки ярлыки? в общем оба метода опробовал, оба работают, и оба занимаются затиранием старого ярлыка тем или иным способом, хотелось бы конечно изменять именно свойства ярлыка спасибо за помощь |
Алексей_Мокшанов@vk, поместите следующий код:
в файл с расширением «.vbs», заменив пути к файлам иконок на Ваши собственные. Поместите этот файл в любое потребное место. Поместите рядом с этим файлом файл «DefSound-x32.exe» (работа с утилитой основана на этой статье: EreTIk's Box » Утилиты » DefSound: установка аудио устройства по умолчанию). В случае ОС соответствующей разрядности, используйте «DefSound-x64.exe», одновременно заменив и в скрипте имя исполняемого файла на «DefSound-x64.exe» (я не стал усложнять скрипт определением разрядности ОС и выбором соответствующего исполняемого файла). Cозданный скрипт *.vbs при первом своём запуске создаст на Рабочем столе текущего пользователя одноимённый себе ярлык. Далее Вы можете просто пользоваться созданным ярлыком. |
Цитата:
можете ли Вы сделать так что бы пути к файлам иконок не были жёстко привязаны, тобиш были только указаны имена Icon0.ico и Icon1.ico? потому как иконки всегда будут лежать в тойже папке что и .vbs а вот папка с DefSound имеет все шансы на перемещение а неплохая идея определять разрядность ОС, хотя если это шибко сложно и так хорошо спасибо за помощь |
Цитата:
Цитата:
Цитата:
|
|
Попробуйте так (не проверялось):
Поместите рядом с этим файлом файлы «DefSound-x32.exe», «DefSound-x64.exe» (работа с утилитой основана на этой статье: EreTIk's Box » Утилиты » DefSound: установка аудио устройства по умолчанию), а также файлы иконок «Icon0.ico», «Icon1.ico». При желании можете раскомментировать строку, задающую горячую клавишу для создаваемого ярлыка, равно как и поменять там саму горячую клавишу. |
Цитата:
проверил определение разрядности ОС простым удалением DefSound-x64.exe, да ругается что не может найти его, удаление DefSound-x32.exe не приводит ни к какой реакции, следовательно работает (даже и не знаю для чего сделан DefSound-x64.exe, ведь и DefSound-x32.exe справляется) |
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Эта меняющаяся иконка только на рабочем столе (прокатывает) работает-так я понял,получилось у меня.
А чтоб такая иконка текущего аудиоустройства в трее висела.Ведь в трее стандартная Громкость иконка остаётся неизменной,при переключении разных аудиоустройств,но при этом выводится всплывающая подсказка от текущем аудиоустройстве, и отображает его уровень громкости. Наверно нереально такое? ПопробЫвал Windows Tray Icons Creator.exe-не много не то, :) но и не получилось |
Iska,
Спасибо большое всё работает идеально. Хотел спросить как изменить скрипт так чтобы можно было задействовать 3 устройства, у меня это телевизор, наушники и колонки. Телевизор стоит на 1 месте и если не получиться сделать с 3 устройствами, то как сделать так чтобы переключение было между 2 и 3 устройством, не нашёл где поставить. |
Скрипт работает по принципу триггера, переключая два устройства. Как думаете организовать переключение между тремя устройствами?
|
Iska,
Я решил для себя сделать другим методом, остановиться на bat и скриптах, без ярлыков и без vbs, и поставить выполнение скриптов на дополнительные кнопки клавиатуры, у меня Tt eSPORTS Challenger pro. Но возникла другая проблема, после перезагрузки и попытки выполнить скрипт через кнопку вылетает ошибка http://take.ms/pneWIC, как с этим бороться пока что не придумал, но думаю дело уже в клавиатуре, приходится переназначать кнопки заново. |
Цитата:
|
Iska,
Код:
var activex = new ActiveXObject("WScript.Shell"); Код:
DefSound-x32.exe 1 После назначения на кнопку всё работает идеально, но после перезагрузки вылезает такая лажа, хотя в интерфейсе драйвера пути сохраняются. |
Зачем Вам «start1.bat»?
Код:
(new ActiveXObject("WScript.Shell")).Run("\"Путь\\DefSound-x32.exe\" 1", 0, true) |
Iska,
Я не большой знаток всего этого что нашёл в теме из того и склепал, там было для 2 в 1 бат файле, я решил что так тоже будет работать. Наверное по правильному нужно сделать по другому, но я не в курсе как =) ps не работает http://take.ms/WJyG6B Iska, Я наверное правдо туповат, извините что отнял время, сдел всё через ярлыки, Хотя через ярлыки не работает вообще через клавиатуру.... делема =( |
Цитата:
|
Вложений: 1
Iska, Вот
Но мне всёравно не кажется что дело в скрипте, помоему просто дрова кривые, ибо подсветка так же не включается при перезагрузке, хотя должна. |
Цитата:
Цитата:
Цитата:
|
Вложений: 1
Цитата:
|
Iska у tentacleattack модная клава,с подсветкой клавиш.
Свои 5 копеек вставлю.. Я tentacleattack свой способ переключенмя расскажу... Через созданные ярлыки я сделал привязку на гор кнопки. У меня ос win7 конфиг:1 системник 2 моника.Звук встроенный в материнке,и звук юсб колонки. Навесил на один ярлык монитор и звук,на второй ярлык другой моник с юсб колонками.Пример ярлыка:%comspec% /c start C:\Windows\System32\DisplaySwitch.exe 1&&start F:\Архив\DefSound-x32\DefSound-x32.exe 0 Ярлыки поставил в панель быстрого запуска и запускаю win+1 и win+2 Также очень хорошо работают ATNSOFT Key Manager ATNSOFT Key Remapper.Может Детектить и назначить на любую кнопку,и даже под конкретно указанную прогу.Сбрасывать нужно триал каждый месяц-Наверное для вас tentacleattack это способ наилучший! Может решение проще найдётся и через скрипты и батники |
koliambia,
Спасибо обязательно попробую сегодня. Но как уже писал, думаю клава меня подводит, зараза такая. Не сомневаюсь что на сочетание клавиш с дополнительной прогой будет работать на ура, но вот то что это сочетание будет работает на клаве как надо, и постоянно, это уже вопрос. А если так то это уже мои проблемы =) Буду терроризироват производителя и их форумы, ибо для windows 8 драйвера не захотели устанавливаться, и я поставил для 7. |
Вложений: 1
Win 7. Переключение между 1-м и 3-м устройством воспроизведения + создание ярлыка на раб столе с меняющимися иконками.
В некоторых случаях понадобится правка vbs скрипта (кол-во TAB может быть на 1 меньше, зависит от активной кнопки "Настроить" в окне "Звук"). |
Цитата:
|
Zuluries, наверное, самое простое - отключить неиспользуемые (в настройках) и оставив 2 используемые.
|
Время: 13:32. |
Время: 13:32.
© OSzone.net 2001-