如何从DLL中获取HWND?

zoo*_*opa 5 windows dll winapi hwnd directsound

我有一个DLL,我想使用Direct Sound播放声音.为了播放声音,我需要可执行文件的HWND.我没有加载DLL的可执行文件的HWND.如何在DLL中获取它而不将其从可执行文件中传入?

Ree*_*sey 5

您可以使用GetCurrentProcessId来获取当前进程ID.

然后,您可以调用EnumWindows,并使用GetWindowThreadProcessId检查每个窗口,以查找与您的进程关联的窗口.

但是,更简单的选择可能是生成自己的窗口.您可以创建一个不可见的1x1像素窗口,并将其与Direct Sound一起使用.

即使您的调用进程没有可用的窗口(或定期删除窗口句柄),这也具有工作的优点.