Laden...

Sound Device ändern

Erstellt von KRambo vor 16 Jahren Letzter Beitrag vor 16 Jahren 11.914 Views
K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren
Sound Device ändern

Hallo Leute,

Hab vor paar Tagen ein neues kleines Projekt gestartet und zwar gehts darum: wer hatte noch nicht das Problem dass bei mehreren Soundkarten diese mal schnell geändert werden müssen und dazu muss man sich durch die Systemsteuerung durchklicken. Da ich im Prinzip sogar 3 Soundkarten eingebaut habe (davon eine Onboard) hatte ich das Problem und dazu musste ne Lösung her.

Features:

  • Standardgerät Soundwiedergabe ändern
  • Standardgerät Soundaufnahme ändern
  • Lautstärke Wave (Soundwiedergabe) ändern

Das Programm lädt dazu bei Programmstart die aktuellen Einstellungen von Windows und dann kann man mit wenigen Klicks die Einstellungen ändern. Habe noch vor es eventuell um ein paar Features zu erweitern.

Eventuell Geplant:

  • Mixer für die verschiedenen Lautstärkeeinstellungen
  • Mehrsprachigkeit

Screenshot gibts im Anhang. Hoffe es gefällt euch 🙂 werde die nächsten Tage die erste Version freigeben, die dann hoffentlich intensiv getestet wird.

Leider lässt sich aber das Sound Device nicht ändern, ohne dass die ganzen Programme, die die Hardware direkt benutzen (also Player) neugestartet werden müssen. Das lässt sich aber wenn man die Hardware direkt über die Systemsteuerung ändert auch nicht vermeiden. Sowas ist in Windows leider nicht vorgesehen 🙁

Download!

C
2 Beiträge seit 2006
vor 16 Jahren

Hi KRambo!

Dafür würde ich mich auch interessieren. Wollte sowas in der Art auch mal anfangen, habe dann aber leider nicht den Einstieg gefunden.

Viel Erfolg!

Viele Grüße,
Cyco

M
253 Beiträge seit 2006
vor 16 Jahren

Original von KRambo

werde die nächsten Tage die erste Version freigeben, die dann hoffentlich intensiv getestet wird.

Sowas in der Art habe ich eh bereits gesucht :>

Freu mich drauf.

mfg

mitti

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Hey Leute, also momentan kann ich nur versichern dass das Proggie unter Xp läuft, habs unter Xp64 entwickelt und da gehts auch. Unter Vista bin ich mir ned sicher, weil ich ned weiß ob es da die API's noch gibt. Anscheinend hat Vista ne neue Sound API.

Unter Win2k sollte es rein theoretisch auch funktionieren, nur hab ich keins da zum testen. Werde morgen mal die Version so reinstellen wie sie oben abgebildet ist.

Einige Ideen hab ich da noch: eine Möglichkeit wär wie gesagt so nen Mixer einbauen, mit dem man alle verfügbaren Lautstärken einstellen kann. Ne andere Idee is dass man so ne Art Soundprofile anlegen und diese per Klick aktivieren kann. Was ich aber noch sicher einbauen werde is dass das Programm im Tray auftaucht und man per Rechtsklickmenü die Ausgabe- und Eingabegeräte wählen kann...

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

So hier endlich der Download, musste inzwischen mein OS neu aufsetzen und sortiere grad noch die Daten 🙂 habs übrigens nun auch unter Vista getestet und es ist NICHT lauffähig. Scheinbar is da wieder einiges anders, werd aber für Vista entweder ne eigene Version machen oder ne Kombi-Version für alles.

Unter Win2k kann ich leider nicht testen, denke es müsste eigentlich laufen. Wenn mir das jemand testen könnte wäre ich sehr dankbar 😉

.NET Framework 2 wird benötigt.

€: jetzt aber

M
253 Beiträge seit 2006
vor 16 Jahren

Bei mir, Win Xp, läufts net!

Beim starten


Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt


\************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
   bei SoundDev.MainForm.MainForm_Load(Object sender, EventArgs e)
   bei System.Windows.Forms.Form.OnLoad(EventArgs e)
   bei System.Windows.Forms.Form.OnCreateControl()
   bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   bei System.Windows.Forms.Control.CreateControl()
   bei System.Windows.Forms.Control.WmShowWindow(Message& m)
   bei System.Windows.Forms.Control.WndProc(Message& m)
   bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
   bei System.Windows.Forms.Form.WmShowWindow(Message& m)
   bei System.Windows.Forms.Form.WndProc(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

mfg

EDIT: Ok, nach der Execption startet das Programm

409 Beiträge seit 2006
vor 16 Jahren

Also bei mir funktioniert's einwandfrei!

👍

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Hm seltsam werd zuhause mal gucken woran das mit der Exception liegen kann...in die nächste Version kommt mal das mit dem Trayicon, damit das leichter von der Hand geht.

M
253 Beiträge seit 2006
vor 16 Jahren

System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

🙂

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Immerhin schon 3 Downloads 😁 wie gesagt das mit der Exception werde ich heute Abend prüfen, schon seltsam warum das bei dir auftritt und bei mir nicht.

Edit: gibt paar Möglichkeiten warum die Exception auftritt. 2 Möglichkeiten die am ehesten zutreffen: das Programm muss auf die Windows Registrierung per Schreibzugriff zugreifen können. Entweder hast du keine Berechtigung oder der Schlüssel existiert bei dir gar nicht, was er aber sollte.

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Neue Version, wo man sehen können sollte woran das Problem bei dir liegt. Hab auch ne allgemein bessere Fehlerbehandlung eingebaut 🙂

M
253 Beiträge seit 2006
vor 16 Jahren

Keine Änderung, du fängst nur die Execption ab :>

mfg

mitti

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Also irgendwas muss bei dir anders sein wie bei mir, im Code selber is kein Fehler zu finden und hab nun versucht alle möglichen Fehlerquellen auszuschließen indem ich den Code geändert habe.

J
222 Beiträge seit 2006
vor 16 Jahren

bei mir funktionierts auch ( win XP Prof.)
wünschenswert wäre wenn es eine tray application wäre was hilft es mir wenn ich nicht schnell drauf zugreifen kann man sich sicher herrvoragend für die taskbar

lg Jabi

242 Beiträge seit 2006
vor 16 Jahren

bei mir kommt der Fehler, wegen der nicht vorhandenen Objetinstanz auch...

mfG b3nJ🙂

P
56 Beiträge seit 2006
vor 16 Jahren

Nice.

Ich werds jetzt auch benutzen, da meine Firewire-Soundkarte sich in Windows als 5 verschiedene Soundkarten anmeldet. Eigentlich bräuchte Windows mal sowas wie Jack unter Linux.

5 Beiträge seit 2005
vor 16 Jahren

Interessante Sache,

ich habe etwas ähnliches vor einiger Zeit für Vista gebaut. Musste aber den API Teil mangels C# Header (Faulheit / Unfähigkeit die alle zu übersetzten) für die ganzen neuen Interfaces in einer C++ Lib auslagern.

http://blog.orbmu2k.de/tools/vista-speaker-manager/

Das man das SoundDevice dazu noch auswählen könnte wäre natürlich nicht verkehrt 😉

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Sieht ja geil aus dein Proggie. Da kann meins bei weitem nicht mithalten, hab mich mit dem WPF auch noch nicht auseinandergesetzt weil ich immer dachte das brauch ich nicht. Werds mir wohl mal anschauen müssen 🙂 werd mich mal informieren wie man das ganze unter Vista lösen kann da mein Haupt-OS jetzt Vista is. Zum testen hab ich noch nen Notebook mit Xp, da tritt die Exception aber leider auch nicht auf 🙁

P
56 Beiträge seit 2006
vor 16 Jahren

Hallo. Erste Testreihe erfolgreich. Wenn du weitermachst (Tu das bitte!), solltest du
a) Auf InfoIcon minimieren einbauen
b) Global Hotkeys einstellen lassen, auf die dein Programm dann reagiert
c) Auf Systemnachrichten reagieren können (mir fällt die richtige Bezeichnng nicht ein; auf jeden Fall meine ich damit die Systemereignisschleife jedes Programms)

b)+c) sind für die Steuerung per Girder o.ä. (Fernbedienung)
Sonst immernoch großes Lob.

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Danke für die Rückmeldung, scheint bei manchen noch Probs zu geben, werd erstmal das versuchen zu lösen.

a) wird noch eingebaut
b) wär auch ne Idee
c) du meinst Global Hooks? Die Idee kam mir auch schon aber welche Nachrichten soll ich da abfangen?

d) leider hab ich keine Fernbedienung womit ich testen könnte

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

So hab heute einiges dran geändert. Zum ersten ist nun der Fehler weg, hab den Code zum großen Teil neu geschrieben. Weiters hab ich Teile vom Trayicon schon eingefügt, bin aber noch am testen. Hab davon auch einige Screenshots gemacht. Hoffe es gefällt euch 🙂

Wird noch ein wenig dauern, denke bis Donnerstag oder Freitag, dann gibts die Version zum Download. Wie gesagt möchte selber noch gründlich testen damit nicht wieder solche Fehler drin sind 😉 was demnächst noch kommen wird ist das mit den Hotkeys, finde das ne super Idee. Den kann man dann natürlich frei belegen.

P
56 Beiträge seit 2006
vor 16 Jahren

zu meinem c)

ich versuche das mal genauer zu erklären. Es gibt ja z.B. bei WInamp die Möglichkeit das Programm von außen zu steuern. Dazu sendet man Codes wie 40047 an Winamp, um das aktuell abgespielte Lied anzuhalten.

Hier habe ich mal Beispielcode. Mit meinem Fernbedienungsprogramm kann ich den LParameter und den WParameter von System.Windows.Forms.Message füllen. Den könntest du dann ja auslesen.


    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }

        protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
            if (m.WParam == new System.IntPtr(44444))
            {
                MessageBox.Show("Activated");
            }
        }

        public override bool PreProcessMessage(ref Message msg)
        {
            return base.PreProcessMessage(ref msg);
        }
    }

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Jetz hab ichs verstanden, danke. Erstmal is mir wichtig dass das Programm fehlerfrei funktioniert, dann kommen erst die Features. Werd mal schauen was ich machen kann 🙂

318 Beiträge seit 2006
vor 16 Jahren

Hab das Tool getestet. Gefällt mir und läuft. Hatte schonmal ein anderes für den Zweck, aber deins ist hübscher 🙂

Lustigerweise ist mir aufgefallen, dass du den selben Skin hast wie ich und auch ein Logitech USB-Headset g

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Danke sowas hört man gerne. Werd mich bemühen es weiter zu entwickeln 🙂

Der Skin is auch offiziell erhältlich, läuft aber wie gesagt nur am Notebook weil mein Homerechner schon auf Vista64 läuft und da geht das Proggie nicht mehr. Muss mich da erstmal durchkämpfen um zu gucken wie man da das Problem lösen kann, dann gibts auch ne Vista-Version (hoffentlich). Und das Headset hab ich nur angeschlossen um die Screens zu machen, das liegt ansonsten hier nur rum. Hab noch ein Sennheiser rumfliegen, das is bissl besser 😁

Edit: hab noch nen Bug im Programm entdeckt. Weiters weiß ich inzwischen ne Möglichkeit die Soundkarten unter Vista auszulesen, die API's von Xp existieren zwar immer noch aber (zumindest bei mir) wird da Müll ausgelesen. Muss mich demnächst durch die Dokumentationen durchgraben ob ich da was finde.

Bezüglich neuer Version weiß ich noch nicht ob ich das bis morgen schaffe, ich sag einfach mal "when it's done". Sollte sich aber nur noch um Tage handeln

P
56 Beiträge seit 2006
vor 16 Jahren

Gehts noch weiter?

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Wie ich dir schon per Email mitgeteilt habe, hatte ich die Entwicklung vorläufig wegen Vista gestoppt, weil ich einen Weg finden wollte, dass das Tool auch unter Vista lauffähig ist. Das ist aber leider nicht der Fall, ich habe bis jetzt noch keinen Weg gefunden und denke dabei wirds leider auch bleiben.

Bin inzwischen wieder von Vista zurück auf XP gewechselt und kann und werde deshalb das Programm wie vorgesehen weiterentwickeln. Sorry dass man so lange nix mehr von mir gehört hat 😉

C
1 Beiträge seit 2005
vor 16 Jahren

schade das das für Vista nicht geht
hätte so ein tool gut gebrauchen können weil das ewige deaktiveren und wieder aktivieren ist ganz schön nervig unter vista

aber trotzdem gutes tool wie ich noch xp hatte war es eine große hilfe

viel glück noch bei der weiterentwicklung 🙂

mfg

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Vielleicht hab ich nun doch einen Weg gefunden...zumindest weiß ich schonmal wie man die Devices unter Vista aktivieren und deaktivieren kann 😁 nur aktiv setzen fehlt noch

Vielleicht funktioniersts, wenn ich erst das neue Device aktiviere und dann das alte deaktiviere, damit sollte Windows das aktive automatisch neu setzen. Obs funktioniert weiß ich aber nicht, sollte aber eigentlich schon

P
56 Beiträge seit 2006
vor 16 Jahren

fertig????

K
KRambo Themenstarter:in
355 Beiträge seit 2004
vor 16 Jahren

Ne hatte beruflich ziemlichen Stress und bis gestern hats die Telekom nicht geschafft endlich INet in meine neue Wohnung zu ziehen. Sorry für die Verzögerung 🙂

C
4 Beiträge seit 2006
vor 16 Jahren

coOL...genau das hab ich gesucht...
wie ist der stand der dinge?

Experience is every line of source code