Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Windows 7 и переключение колонки-наушники


Рекомендуемые сообщения

НЕ знаю кто как борется с издевательской системой Windows 7 по переключению выходных аудиопотоков, но я перепробовал кучу утилит наткнулся на: Windows 7 Tip: How to change the default audio device with a hotkey

И там используя ПО AutoHotkey и скрипт переключают, но проблема в том что я не смог его понять до конца, т.е. он у меня срабатывает один раз и всё - может я где то ошибаюсь или что то не понимаю, но просмотрев сам скрипт не нашёл ошибок кроме моего незнания.

Может быть кто то взглянет и скажет что не так и почему он не перебрасывает активные устройства.

#a::Run, mmsys.cplWinWait,SoundControlSend,SysListView321,{Down}ControlGet, isEnabled, Enabled,,&Set Defaultif(!isEnabled){  ControlSend,SysListView321,{Down 2}}ControlClick,&Set DefaultControlClick,OKWinWaitCloseSoundPlay, *-1return

Помогите, а то замучался туда сюда лазить, я про переключение звуковых устройств (выходных)

Ссылка на комментарий
Поделиться на другие сайты

А что за аудиокарта-то? И неужели штатный драйвер от неё не справляется с этим тривиальным, в общем-то, заданием?

У меня так всё просто - воткнул уши в разъём на морде - колонки\ресивер перестали сигнал получать... "Аутоматично"... Ибо драйвер так настроен...

Ссылка на комментарий
Поделиться на другие сайты

Yezhishe поясняю.

1. Штатный драйвер то справляется, но надо совершить кучу телодвижений по переназначению

2. Версия AIDA64 не детектирует мать, говорит надо обновить - я послал отчёт уже давно, но результат нулевой.

3. У меня спереди/можно сзади воткнуть гарнитуру, но возникает ряд проблем:

- наушники хотят работать только как устройство для голосовой связи, если же от этого отказаться, то разделённый сигнал теряет смысл;

- когда я щелкаю по громкости то половина ПО под наушниками, а половина в динамиках;

- всё ПО не имеет встроенной настройки по каналам имеют например только AIMP3, Скайп, ну и ещё по мелочи.

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

В ХР такой проблемы не было это только в 7-ке.

Ссылка на комментарий
Поделиться на другие сайты

Ну у меня тоже колонки получают жрачку от ресивера Techniks SA-AX530... А уж он - подключён к Sound Blaster X-Fi. И драйвер настроен так, что если в морду машины воткнуть уши\оно же гарнитура - сигнал на ресивер обрубается...

"Волшебные пузырьки, однако"... То бишь - настройки.

P.S. Ох не зря сказал когда-то давно старик Оккам - "Не плодите сущности без нужды!", что применимо к данному случаю означает - "А настрой-ка ты, друже, свой драйвер аудиокарты на необходимое - и не парься"...

Ну и вдогоночку - если та карта и её драйвер, коими пользуешься - этакого не позволяют, отчего бы не поменять на лучшее?

Ссылка на комментарий
Поделиться на другие сайты

Yezhishe ты всё верно сказал, если воткнуть, то отрубается, но я привык блин или в ухи или в морду :sm(100):

Она даже понижает, ну это нормально, автоматически уровень громкости... но это всё не то - мне по сути не нужны два устройства сразу (ну не маньяк я ещё вроде)... вот и страдаю и я обнаружил что этим страдают в основном американцы (ну т.е. не нашенские), а у наших проблемы, то колонки не пашут, то микрофон.... может я и зажрался, но привычка страшная сила. :blush2:

Ссылка на комментарий
Поделиться на другие сайты

То-есть, как я понимаю, банальная лень мешает вынуть\вставить уши из\в комп, чтобы колонки заработали\отключились и vice versa? Хочется крыскою? mrgreen.gifcool.gif

Ну тогда опять-таки - через драйвер включать\перенаправлять поток...

Ссылка на комментарий
Поделиться на другие сайты

Безусловно понимать... Да.

Но как мне представляется, всё же гораздо проще (в данном конкретном случае) пользовать штатные возможности настроек аудиодрайвера. Ибо, по моему разумению, использование чего-то стороннего... Ну, всяко может случиться - ОС оно же ОС...

Ссылка на комментарий
Поделиться на другие сайты

Yezhishe есть ещё одна причина некоторые программы нельзя посадить на конкретное устройство, причём это две мои игры ИЛ-2 Штурмовик (ну может быть сумею) и контру (нет так пофиг), просто надо будет каждый раз переопределять за что отвечают уши, а они по переустановке за звуковую связь... Скайп и тд.

Ссылка на комментарий
Поделиться на другие сайты

У меня наоборот. С одним включенным устройством все в порядке. С любым из них.

А вот включить сразу два, не получается. ХР в этом плане не упиралась, звук шел отовсюду.

Ссылка на комментарий
Поделиться на другие сайты

Ну и зачем путать лапти с гвоздями?

Если аудиокарта от Creative Labs - то вот он драйвер, который может столько, что казённым и не снилось...

Если же не Blaster... Желаю успехов. Хотя и немножко сомневаюсь...

Ссылка на комментарий
Поделиться на другие сайты

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

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

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

toma.m, ну что сказать? Я полностью согласен с вами.

У меня в системе сейчас две звуковые. Realtec HD Audio и C-Media не помню какая.

Звук лучше через реалтек, но для ТВ-тюнера почему-то лучше C-Media.

Это под Ubuntu. Вообще я заметил, что звук (несмотря на фирменное ПО для Windows) в Linux намного лучше.

Может быль ALSA тому виной. Не суть. Так вот задача с перераспределением решается именно технически

(разветвители, переключатели...) и звук идет туда. куда нужно, а не туда, куда он сам решил.

Это не креативовские платы а обычные втроенные или бюджетные. С одной на другую переключиться пару секунд.

Но что касается управления, то @toma.m права в очень многом.

Ссылка на комментарий
Поделиться на другие сайты

Ну не знаю (да, я кстати нашёл ошибку) по моему проще написать макрос и одним переключением менять выходное устройство. Просто я не вижу разницы между программным или аппаратным решением.

1. AutoHotkey я и так использую для многих целей

2. Она же, т.е. AutoHotkey просто эмулирует нажатие на пару клавиш и мышку.

Зачем огород то городить с железом, у меня всего два внешних устройства.

TOLKOV твоя проблема мне знакома, так многие именно мучаются не с избытком, а с недостатком. :D

Изменено пользователем Indomito
Ссылка на комментарий
Поделиться на другие сайты

Зачем огород то городить с железом, у меня всего два внешних устройства.

Один раз можно повозиться исходя из следующих причин:

1. Внешних устройств может быть и больше. Если к стандартному набору – колонки + гарнитура, добавляются беспроводные наушники, например.

2. Можно переключатся на любое устройство, легким движением мизинца не отрывая задницу от кресла.

3. Из чисто эстетических соображений – к фронтальной панели ничего не подключено и провода не путаются под ногами.

4. Когда происходит смена железа нужно только воткнуть штекеры и все уже работает.

Лень двигатель прогресса!

Ссылка на комментарий
Поделиться на другие сайты

toma.m

1. Добавить одну строчку в коде

2. И я не отрываю - легким нажатием Win+TAB

3. Эстетика вещь индивидуальная и зачастую личностно-умозрительная.

4. См пп 4

Лень... :D

P.S. Мне легче написать программу чем возиться с железом, первое ближе ибо я этим с 1985 года "страдаю" :rolleyes:

Изменено пользователем Indomito
Ссылка на комментарий
Поделиться на другие сайты

И так скрипт по переключению - авторство не моё, я бы такое не смог написать.

#Tab::  Run, mmsys.cpl  Process, Wait, rundll32.exe, 1  If ErrorLevel  {     WinWait, % "ahk_pid" ErrorLevel     ControlSend, SysListView321, {Down}     Sleep, 50     ControlGet, isEnabled, Enabled,, По умол&чанию     Sleep, 50     If !isEnabled       ControlSend, SysListView321, {Down}     Sleep, 50     ControlClick, По умол&чанию     Sleep, 500     Process, Close, rundll32.exe     Exit  }  MsgBox, 262192,, Ошибка переключения, 1  Sleep, 1500  Return

Тему закрыть или как? :blush2:

Ссылка на комментарий
Поделиться на другие сайты

И последний отлаженный вариант

#Tab::  isDevSetTitle:="Переключение звука"  isDevSet:="Звук на "  d:="колонки", h:="наушники"reDevSet:  Run, mmsys.cpl  Process, Wait, rundll32.exe, 1  If (!ErrorLevel)  {   Process, Close, rundll32.exe   MsgBox, 16, % isDevSetTitle, Ошибка, 0     }  else  {     WinWait, % "ahk_pid" ErrorLevel     ControlSend, SysListView321, {Down}     Sleep, 50     ControlGet, isEnabled, Enabled,, Button2     Sleep, 50     If !isEnabled        ControlSend, SysListView321, {Down}     Sleep, 50     ControlClick, Button2 ; По умол&чанию     Sleep, 50     ControlClick, Button4 ; на клик по кнопке ОК     Process, Close, rundll32.exe     MsgBox, 1, % isDevSetTitle            , % isEnabled ? isDevSet . d : isDevSet . h, 3  };Sleep, 1000IfMsgBox, Cancel  Goto, reDevSetExit
Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...