Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Смена иконки ярлыка командой в .bat

Ответить
Настройки темы
CMD/BAT - [решено] Смена иконки ярлыка командой в .bat

Новый участник


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

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


Изменения
Автор: Алексей_Мокшанов@vk
Дата: 09-11-2012
Вопрос с предысторией (для пущего осознания ситуации)
изначально хотелось переключать "Устройство воспроизведения" в один клик, тут нашлось решение в виде утилиты DefSound
тк в DefSound реализована командная строка, народ смекнул и заваял
start.bat
Код: Выделить весь код
IF exist log.txt goto loop1
echo 0>log.txt
DefSound-x32.exe 0
goto exit
:loop1
del log.txt
DefSound-x32.exe 1
:exit
taskkill /im DefSound-x32.exe
START.JS
Код: Выделить весь код
var activex = new ActiveXObject("WScript.Shell");
activex.Run("start.bat", 0, true);
оба файлика требуется положить в папку к DefSound и запускать всю эту конструкцию с ярлыка созданного для START.JS
теперь у меня имеется проблема в индикации активного "Устройство воспроизведения", и мне думается что иконка ярлыка (созданного для START.JS) самый изящный способ
потому прошу откликнуться людей кто в состоянии дополнить (переделать) данную конструкцию для того что бы она не только переключала "Устройство воспроизведения" но и меняла иконку ярлыка
в системе имеется два устройства вывода звука, насколько я понимаю их в коде нумеруют как 0 и 1, чтоб далеко не отходить от устоявшегося обозначения будем считать что в папку со всеми файлами положены две иконки 0.ico и 1.ico, а на рабочем столе имеется ярлык START.lnk

не в тему: что выполняет (делает) данный код
читать дальше »
Код: Выделить весь код
@ECHO OFF
SETLOCAL EnableDelayedExpansion

FOR /F "tokens=*" %%I IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render"') DO (
	SET AudCount = 0
	FOR /F "tokens=3" %%J IN ('REG QUERY "%%I"^|FINDSTR /I /C:"devicestate"') DO (
		IF /I "%%J" EQU "0x1" (
			SET /a AudCount+=1
			ECHO %%I>>"%TMP%\renderlist.txt"
		)
	)
)

IF /I %AudCount% NEQ 0 (
	SET DevID=0
	SET DevName=
	FOR /F "tokens=*" %%I IN (%TMP%\renderlist.txt) DO (
		
		FOR /F "tokens=2*" %%J IN ('REG QUERY "%%I\Properties" /v "{b3f8fa53-0004-438e-9003-51a46e139bfc},6"') DO (
			SET DevName=%%K
		)
		
		FOR /F "tokens=2*" %%J IN ('REG QUERY "%%I\Properties" /v "{a45c254e-df1c-4efd-8020-67d146a850e0},2"') DO (
			SET DevName=!DevName! - %%K
		)
		
		IF /I "!DevName!" EQU "%~1" (
			CD /D "%~dp0"
			IF /I "%PROCESSOR_ARCHITECTURE%" EQU "x86" DefSound-x32.exe !DevID! %~2
			IF /I "%PROCESSOR_ARCHITECTURE%" EQU "amd64" DefSound-x64.exe !DevID! %~2
			DEL /F "%TMP%\renderlist.txt"
			GOTO :EOF
		)
		SET /a DevID+=1
	)
	DEL /F "%TMP%\renderlist.txt"
)
обнаружил это в DefSound.cmd, прилагался в архиве DefSound.zip тут, но про него не было ни слова, хочется знать его ценность и необходимость а также функционал

Отправлено: 13:53, 07-11-2012

 

Новый участник


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

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


Вложения
Тип файла: zip defsound.zip
(56.0 Kb, 36 просмотров)

Цитата Iska:
??? »
В драйвере если включить подсветку клавиатуры она так же слетает при перезагрузке компа.

Отправлено: 09:38, 07-05-2013 | #31



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

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


Новый участник


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

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


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, 08-05-2013 в 21:36.


Отправлено: 10:52, 07-05-2013 | #32


Новый участник


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

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


koliambia,
Спасибо обязательно попробую сегодня. Но как уже писал, думаю клава меня подводит, зараза такая.
Не сомневаюсь что на сочетание клавиш с дополнительной прогой будет работать на ура, но вот то что это сочетание будет работает на клаве как надо, и постоянно, это уже вопрос. А если так то это уже мои проблемы Буду терроризироват производителя и их форумы, ибо для windows 8 драйвера не захотели устанавливаться, и я поставил для 7.

Отправлено: 09:35, 08-05-2013 | #33


Новый участник


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

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


Вложения
Тип файла: zip SwitchSound.zip
(59.8 Kb, 71 просмотров)

Win 7. Переключение между 1-м и 3-м устройством воспроизведения + создание ярлыка на раб столе с меняющимися иконками.
В некоторых случаях понадобится правка vbs скрипта (кол-во TAB может быть на 1 меньше, зависит от активной кнопки "Настроить" в окне "Звук").

Отправлено: 00:07, 25-10-2013 | #34


Новый участник


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

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


Цитата Iska:
поместите следующий код:
читать дальше »
в файл с расширением «.vbs», заменив пути к файлам иконок на Ваши собственные. Поместите этот файл в любое потребное место. Поместите рядом с этим файлом файл «DefSound-x32.exe» (работа с утилитой основана на этой статье: EreTIk's Box » Утилиты » DefSound: установка аудио устройства по умолчанию). В случае ОС соответствующей разрядности, используйте «DefSound-x64.exe», одновременно заменив и в скрипте имя исполняемого файла на «DefSound-x64.exe» (я не стал усложнять скрипт определением разрядности ОС и выбором соответствующего исполняемого файла).
Cозданный скрипт *.vbs при первом своём запуске создаст на Рабочем столе текущего пользователя одноимённый себе ярлык. Далее Вы можете просто пользоваться созданным ярлыком. »
Всё работает, огромное спасибо камраду Iska, но есть одно но, не могу разобраться как настроить переключение между определенными устройствами. Например сейчас переключаются между наушниками и S/PDIF а нужно между динамиками и HDMI

Отправлено: 09:49, 12-11-2013 | #35


Новый участник


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

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


Zuluries, наверное, самое простое - отключить неиспользуемые (в настройках) и оставив 2 используемые.

Отправлено: 20:10, 25-12-2013 | #36



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Смена иконки ярлыка командой в .bat

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - [решено] проблема с командой arp -s Dosmod Microsoft Windows 7 1 07-10-2011 20:19
как воспользоваться данной командой? xrenomx AutoIt 8 17-10-2010 22:38
[решено] Создание ярлыка и смена иконки? Centrinar AutoIt 1 10-04-2010 23:39
Разное - [решено] Смена иконки у ярлыка на DOS приложение Delirium Microsoft Windows 7 9 18-01-2010 07:50
Проблемы с командой su m0rfeusl Общий по Linux 6 28-01-2004 15:17




 
Переход