Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Soundausgabe erkennen ( hook? )

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.06.2008, 10:34 Uhr
Cyjackz



Hallo,

ich habe folgendes Problem und vielleicht kann mir jemand von euch dabei ein bisschen auf die Sprünge helfen:

Ich suche eine Möglichkeit zu erkennen, ob eine Anwendung eine Audioausgabe macht.

Nach stundenlangem suchen im Netz bin ich auf das Stichwort hook gekommen, bzw. mir wurde ein Tipp gegeben. Leider hat mich das auch nicht sehr viel weiter gebracht. Im MDSN steht zwar einiges darüber, aber es klappt nicht ganz so wie ich es mir gedacht habe. Ich habe versucht mittels SetWindowsHookEx die Message MM_WOM_OPEN anzufangen, bzw. zu erkennen, aber irgendwie scheint ich diese Message nicht mit SetWindowsHookEx ( WH_CALLWNDPROC und WH_GETMESSAGE ) zu bekommen.

Wo liegt da der Fehler? Oder kann mir jemand eine alternative Herangehensweise an mein Problem geben?

Achso, ehe ich es vergesse und jemand fragt, warum ich das überhaupt möchte: Ich möchte ein Navigationssystem ( die Sourcen sind natürlich nicht vorhanden ) laufen lassen und sobald, die nette Stimme mir Anweisungen geben möchte wo ich hinfahren soll, wird die Musik leiser gestellt oder ganz gemutet.

Vielen Dank!

Grüße,
Daniel
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.06.2008, 19:01 Uhr
Oliver
S2-Pixelgeneral


Naja ich denke mal, dass das nur aufgerufen wird, wenn das Programm direkt die (sehr hardwarenahe) Waveform-API (oder wie sich das auch immer schimpft) nutzt, was wohl sicher eher unwahrscheinlich ist, von daher müsstest du erstmal rauskriegen, was das Programm genau für ne Lib nutzt, mal ganz davon abgesehen, dass waveOutOpen nur am Anfang aufgerufen werden würde und nicht bei jedem Abspielen von einem Sound.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )

Dieser Post wurde am 08.06.2008 um 19:05 Uhr von Oliver editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.06.2008, 10:06 Uhr
~Cyjackz
Gast


hmm, danke, das wäre schlecht...

also ich brauche auch kein Signal während des Abspielens, mir wüde das start und ende-Signal ja vollkommen reichen.

Es gibt übrigends ein Programm, dass scheinbar jeden Soundstream eines Programmes umlenken kann, ich weiss nur nicht wie das funktionieren kann... Airfoil
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
09.06.2008, 10:23 Uhr
Oliver
S2-Pixelgeneral



Zitat von ~Cyjackz:

also ich brauche auch kein Signal während des Abspielens, mir wüde das start und ende-Signal ja vollkommen reichen.



Ja, aber waveOutOpen wird nur aufgerufen, wenn das Device initialisiert wird, sprich eher am Programmbeginn, nicht am Start/Ende des Sounds.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.06.2008, 11:10 Uhr
~Cyjqackz
Gast


Achso, ... das ist ungünstig...

Hast du zufällig ne Ahnung, wie die das bei Airfoil gemacht haben? Dort kann man einen laufenden Prozess auswählen und der Sound dieses Prozesses wird umgeleitet und übers LAN geschickt. Man sieht dort auch einen Lautstärke-Pegel. Wenn ich sowas hätte, könnte ich dann mittels Pegel erkennen ob etwas gesendet wird.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.06.2008, 11:51 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja das ist denke ich function hooking, der "hackt" sich sozusagen in den speicherbereich des anderen Programmes (ja sowas lässt windows zu ...) und addressiert die function calls für waveOut* um und leitet diese eben auf die eigenen Funktionen um. Stichwort hierzu wär API-Hooking, ist aber nicht ganz so trivial und vielleicht bietet windows für das umleiten von audiostreams bereits was an.

Du kannst natürlich auch ein virtuelles WDM-Device erzeugen (treiber schreiben...) der dir den sound umleitet, dann hast du volle kontrolle und das auf "legalem" wege ohne irgendwelche "bösen" hacks
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: