Soundkarte per Button wechseln!

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von dbsystel.

    Soundkarte per Button wechseln!

    Hi,

    ich habe folgendes Problem. Ich möchte einen ELP "Einsatzleitplatz" für unseren ELW programmieren und Funktionen wie Soundkarte wechseln(Zwischen Headset und Lautsprecher) und Master-Lautstärke einstellen usw...

    Das mit dem Einstellen der System Lautstärke und dem anzeigen des Pegels habe ich schon geschafft. Der Mikro Pegel sowie der Ausgangspegel wird in einer Progressbar angezeigt.

    Nun mein Problem:

    Ich habe 2 Buttons, auf dem einen ein Bild mit Kopfhörern und auf dem anderen ein Bild mit Lautsprechern. Wenn ich auf den Button1 klicke, dann soll der Lautsprecher aktiviert werden.
    Bei Button2 sollen die Kopfhörer aktiviert werden.

    Lautsprecher geht über HDMI Audio am Touchscreen-Bildschirm, Headset über Lautsprecher im Notebook(Realtek).

    In der Systemsteuerung kann ich das natürlich ständig ändern, nur ist das jedesmal zu Aufwändig da man sehr spontan hin und her schalten soll/muss.

    Ich weiß auch das es schon so ein Programm gibt, das heißt "Vista Audio Changer". Es gibt auch einen SourceCode dazu, nur ist der leider auf C# und defekt und die Funktion muss in meinem Prog sein, da alle anderen Progs gesperrt werden für die Software am Bedienplatz.

    Wenn ihr mir helfen könntet wäre ich euch sehr dankbar! Brauche diese Funktion wirklich dringend!

    MfG
    DBSYSTEL
    @SystemUnknow
    Der 1. Link bringt mich leider nicht weiter! Das fertige Programm selbst funzt schon nicht!

    Der 2.Link ist leider nur für WinXP und darunter. Habe den Code richtig im Programm eingesetzt und es kam der Fehler "NOT SUPPORTED".

    Schade, aber vllt. wisst ihr noch was anderes. Habe mir schon selbst was zusammengesucht, aber leider habe ich nichts gefunden!

    Gruß
    @SystemUnknown
    Nochmals Danke für deinen Link, allerdings funzt das auch nicht. Ich habe Windoof 7 muss ich vllt. dazu sagen.
    Wenn du mir aber zeigst wie es doch geht, dann wäre das sehr schön!

    Hat sonst vllt. noch jemand ne Idee oder vllt. auch Tutorial zum zeigen wie ich die Soundkarten anspreche?

    MfG

    VB.NET-Quellcode

    1. Private Sub SelectSoundcard(ByVal Index As Integer, ByVal Tabs As Integer)
    2. With Process.Start("rundll32.exe", "shell32.dll,Control_RunDLL mmsys.cpl,,0")
    3. For i = 0 To Index - 1
    4. SendKeys.Send("{DOWN}")
    5. Next
    6. For i = 0 To Tabs - 1
    7. SendKeys.Send("{Tab}")
    8. Next
    9. SendKeys.Send("{Down}{Down}{Enter}{Tab}{Tab}{Enter}")
    10. End With
    11. End Sub


    unsauber aber es funktioniert...

    1.Argument ist der index in der liste der ausgabegeräte
    2.Argument ist Anzahl der Tabstops
    Also wenn "Konfigurieren" aktiviert ist dann 2 eingeben ansonsten 1...
    Dake oli-f.

    Klingt ja super, habs auch schonmal ausprobiert. Mein Code ist folgender:

    VB.NET-Quellcode

    1. SelectSoundcard(0, 2)


    Nur leider funktioniert es nicht so ganz. Mache ich irgendetwas falsch!

    Habe 2 Ausgaben, HDMI und Lausprecher.
    Konfiguriert ist auch aktiviert.

    Danke
    Hab ich natürlich auch schon versucht!

    Aber irgendwie klappt das nicht so ganz!

    Kannst du vllt. den Code nochmal überprüfen! Das Fenster öffnet sich auch und irgendetwas tut sich auch, nur wird kein standard gesetzt!

    MfG und Danke

    VB.NET-Quellcode

    1. Private Sub SelectSoundcard(ByVal Index As Integer, ByVal Tabs As Integer)
    2. With Process.Start("rundll32.exe", "shell32.dll,Control_RunDLL mmsys.cpl,,0")
    3. For i = 0 To Index - 1
    4. SendKeys.Send("{DOWN}")
    5. Threading.Thread.Sleep(1000)
    6. Next
    7. For i = 0 To Tabs - 1
    8. SendKeys.Send("{Tab}")
    9. Threading.Thread.Sleep(1000)
    10. Next
    11. SendKeys.Send("{Down}")
    12. Threading.Thread.Sleep(1000)
    13. SendKeys.Send("{Down}")
    14. Threading.Thread.Sleep(1000)
    15. SendKeys.Send("{Enter}")
    16. Threading.Thread.Sleep(1000)
    17. SendKeys.Send("{Tab}")
    18. Threading.Thread.Sleep(1000)
    19. SendKeys.Send("{Tab}")
    20. Threading.Thread.Sleep(1000)
    21. SendKeys.Send("{Enter}")
    22. End With


    dann kannste mal die einzelnen schritte sehen...
    vlt findeste dann den fehler...
    Guten Abend,

    Also ich habe alles nochmal ausprobiert, statt Enter Space und am Ende vllt. noch ESC oder sonstiges. Nichts, habs fast 1 Stunde ausprobiert und nichts rausbekommen.

    Hat vllt. noch jemand ne Idee wie's gehen könnte?

    Schonmal Danke im Voraus und Gruß
    dbsystel
    vlt öffnet er die STeuerung zu langsam...

    VB.NET-Quellcode

    1. Private Sub SelectSoundcard(ByVal Index As Integer, ByVal Tabs As Integer)
    2. With Process.Start("rundll32.exe", "shell32.dll,Control_RunDLL mmsys.cpl,,0")
    3. Threading.Thread.Sleep(1000)
    4. For i = 0 To Index - 1
    5. SendKeys.Send("{DOWN}")
    6. Next
    7. For i = 0 To Tabs - 1
    8. SendKeys.Send("{Tab}")
    9. Next
    10. SendKeys.Send("{Down}")
    11. SendKeys.Send("{Down}")
    12. SendKeys.Send("{Enter}")
    13. SendKeys.Send("{Tab}")
    14. SendKeys.Send("{Tab}")
    15. SendKeys.Send("{Enter}")
    16. End With
    17. End Sub
    @oli-f

    Vielen vielen Dank! Auf die einfachsten Sachen kommt man manchmal gar nicht :)

    Funktioniert so jetzt einigermaßen. Muss noch mal was testen wegen dem Eigenschaftenfenster das machnmal aufgeht, aber ansonsten GEIL!!!!!


    Danke und Gruß
    dbsystel