Toon posts:

[c++/vb6] Schakelen primaire geluidskaart

Pagina: 1
Acties:

Verwijderd

Topicstarter
Niet direct een code vraag, meer win32 specifiek:

Ik heb op m'n onboard geluidskaart een headset zitten, op m'n audigy de versterker aangesloten. Als ik 's avonds van boxen schakel naar koptelefoon, doe ik dat door m'n primaire geluidskaart te veranderen. Start -> Config scherm -> Sound & Audio devices -> Audio tab en daar output device. Erg lange weg dus, ik heb liever een klein programma'tje dat kan schakelen tussen mijn kaarten. Met een tray-icon met menu, desnoods een command line tool die ik met shortcuts benader.. dat maakt niet uit. Als het maar sneller en korter is. Functionaliteit staat hier even voorop, interfacing kan altijd nog.

Nu ik niks dergelijks vinden kon voor dit doeleinde, en ik het leuk vind zelf te coden, wil ik dit natuurlijk zelf schrijven. Dus ben ik eerst uit gaan zoeken wat er zo allemaal verandert als je omschakelt. Hier kwam ik al uit op de volgende 2 registry keys:

HKEY_USERS\S-1-5-21-1275210071-1532298954-725345543-1003\Software\Microsoft\Multimedia\Sound Mapper\Playback

en

HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper\Playback

Beide bevatten de string van de naam van de geluidskaart. Even met een .reg file geprobeerd, en het werkt wel. De 2e key heb ik wel gevonden, maar maakte tot nu toe geen merkbaar verschil. Alleen systeemgeluiden gaan niet over naar de andere kaart. Als ik vervolgens config.scherm in ga, naar audio devices en alleen maar op OK klik werkt het wel goed. Net alsof de wavemapper een resetje nodig heeft zodat deze weer opnieuw z'n primair device pakt. Nu zit ik eigenlijk met 2 punten:

- Achter HKEY_USERS staat een hash? van m'n systeem (hij is anders bij andere computers, sterker nog; bij een nieuwe install van winxp). Hoe achterhaal ik deze (ik ga die code natuurlijk niet hard coderen)?

- Is er een win32 api call of iets dergelijks dat de opdonder geeft, wave mapper reset of iets dergelijks?

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 10-12-2025
HKEY_USERS zijn de registry keys van alle users. Andere computers hebben andere users, en dus andere registry keys. Uit m'n hoofd heb je het over de SID, wat de code is die een user uniek identificeert. Je hoeft deze niet te achterhalen - je gebruikt namelijk HKEY_CURRENT_USER, wat eene shortcut is naar de key in HKEY_USERS voor de momenteel ingelogde user

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Verwijderd

Topicstarter
Oke, dus alleen die 2e key wijzigen zou ook moeten werken als ik het goed begrijp. Punt 1 valt dan af ;) Wat resteert is dan het 'resetten', tenzij het device helemaal niet daar ingesteld zou horen te worden en ik de plank mis sla (het werkt wel met een maar)

  • NLChris
  • Registratie: Juli 2004
  • Laatst online: 15:31
Misschien kan je proberen om de 'Windows Audio' service te restarten.

Command-prompt:
code:
1
2
net stop AudioSrv
net start AudioSrv


heb er voor de rest weinig verstand van