我目前正在开发一款与C#中的益智游戏直接交互的应用程序。它可以通过屏幕抓取游戏状态来进行游戏,并解决下一步该怎么走的问题。
该应用程序通过搜索进程并获取其矩形来获取游戏的宽度和高度,如下所示。
我在想的是,是否有可能识别出同一进程是否正在输出声音,并且如果有声音输出,则以某种方式识别该声音。声音用于表示多种事件,因此如果我能够直接从进程中获取声音,我可以改善应用程序处理一些游戏场景的方式。
我已经了解到可以利用特定声卡上的“听到的声音”输入,但这意味着完全独立的应用程序播放声音时会产生干扰,对吗?我真的希望有一个针对进程的特定解决方案。
感谢您的帮助。
该应用程序通过搜索进程并获取其矩形来获取游戏的宽度和高度,如下所示。
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;
我在想的是,是否有可能识别出同一进程是否正在输出声音,并且如果有声音输出,则以某种方式识别该声音。声音用于表示多种事件,因此如果我能够直接从进程中获取声音,我可以改善应用程序处理一些游戏场景的方式。
我已经了解到可以利用特定声卡上的“听到的声音”输入,但这意味着完全独立的应用程序播放声音时会产生干扰,对吗?我真的希望有一个针对进程的特定解决方案。
感谢您的帮助。