質問

ダイレクトサウンドを使用してサウンドを再生したいDLLがあります。サウンドを再生するには、実行可能ファイルのhwndが必要です。 DLLをロードする実行可能ファイルのhwndはありません。実行可能ファイルから渡さずにDLLでそれを取得するにはどうすればよいですか?

役に立ちましたか?

解決

使用できます GetCurrentProcessid 現在のプロセスIDを取得します。

その後、EnumWindowsに電話して、各ウィンドウを確認できます getWindowThreadProcessid プロセスに関連付けられたウィンドウを見つける。

ただし、より簡単なオプションは、独自のウィンドウを生成することです。表示されていない1x1ピクセルウィンドウを作成し、直接サウンドで使用できます。

これには、呼び出しプロセスに使用可能なウィンドウがなくても(または定期的にウィンドウハンドルを削除する)、機能するという利点があります。

他のヒント

電話 GetGUIThreadInfo メインスレッドで。これにより、hwndsの束が得られます。トップレベルのhwndが必要な場合は、有効なもの(すべての値が入力されるわけではない)を選択して、そのトップレベルの祖先を見つけてください GetAncestor(GA_ROOT).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top