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:
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:
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!
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
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
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...
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
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
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.
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
🙂
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.
Neue Version, wo man sehen können sollte woran das Problem bei dir liegt. Hab auch ne allgemein bessere Fehlerbehandlung eingebaut 🙂
Keine Änderung, du fängst nur die Execption ab :>
mfg
mitti
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.
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
bei mir kommt der Fehler, wegen der nicht vorhandenen Objetinstanz auch...
mfG b3nJ🙂
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.
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 😉
SQLite Administrator 0.8.2.0 (out now!
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 🙁
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.
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
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.
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);
}
}
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 🙂
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
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
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 😉
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
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
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 🙂
coOL...genau das hab ich gesucht...
wie ist der stand der dinge?
Experience is every line of source code