views:

58

answers:

1

Hi guys,

I'm currently developing an application that interacts directly with a puzzle game in C#. It's able to play by screen scraping the state of the game and then solving for the next move it should make.

The application grabs the width and height of the game by searching out the process and grabbing its rectangle, as below.

var p = Process.GetProcessesByName("game")[0];
var r = new User32.Rect();

// Bring the window to the foreground in order to get its coordinates.
User32.SetForegroundWindow(p.MainWindowHandle);
User32.GetWindowRect(p.MainWindowHandle, ref r);

// Get the width and height of the window.
int width = r.right - r.left;
int height = r.bottom - r.top;

What I was wondering is whether it was possible to recognize whether that same process is outputting sound or not and then somehow identify that sound if it is. Sound is used to signify several events, so if I was able to grab sound from the process directly, I could improve the way my application handles a handful of in-game scenarios.

I've read about being able to tap into a "what you hear" input on particular sound cards, but that would mean if a completely independent application played sound, it would interfere, right? I'm really hoping there's a solution that's process-specific.

Thanks in advance for your help.