Direct Soundを使用してサウンドを再生するDLLがあります。サウンドを再生するには、実行可能ファイルのHWNDが必要です。 DLLをロードする実行可能ファイルのHWNDがありません。実行可能ファイルからDLLを渡すことなく、DLLの中でどのように取得するのですか?DLL内部からHWNDを取得するにはどうすればよいですか?
答えて
GetCurrentProcessIdを使用して、現在のプロセスIDを取得できます。
EnumWindowsを呼び出し、各ウィンドウをGetWindowThreadProcessIdでチェックして、プロセスに関連するウィンドウを見つけることができます。
しかし、簡単なオプションは、独自のウィンドウを生成するだけかもしれません。表示されない1x1ピクセルウィンドウを作成し、Direct Soundで使用することができます。
これは、呼び出し元プロセスが使用可能なウィンドウを持たない場合(またはウィンドウハンドルを定期的に削除する場合)にも機能するという利点があります。
私はあなたとshf301のような小さなウィンドウを作成しようとします。 – zooropa
テストアプリケーションで小さなウィンドウを作成しました。 – zooropa
ウィンドウを作成することはもちろん可能ですが、あなたの最初の選択は本当にすべきではありません。ウィンドウは多少の空腹感があり、独自のニーズがあり、一般的には独自のメッセージループ(暗黙的にまたは明示的に)小さなDLLのために考慮する必要があります。 DLL関数を介してHWND参照をDLLに渡すか、実行可能な制御可能なプロセスから検証可能なHWNDを取得するのが普通です。このプロセスはもちろん監視する必要があります。 – specializt
メインスレッドのGetGUIThreadInfo
を呼び出します。これはあなたにHWNDの束をもたらします。最上位レベルのHWNDが必要な場合は、有効な値をすべて選択し(すべての値が入力されるわけではありません)、その上位レベルの祖先をGetAncestor(GA_ROOT)
で探します。
- 1. DLL内からアプリケーション名を取得するにはどうすればよいですか?
- 2. ジェネリックの内部からクラスの型を取得するにはどうすればよいですか?
- 3. ウェブページから内部リンクを取得するにはどうすればよいですか?
- 4. actionListenerの内部から文字列を取得するにはどうすればよいですか?
- 5. ActionExecutingフィルタの内部からルート値を取得するにはどうすればよいですか?
- 6. フック内でHWNDからHMENUを取得
- 7. VBAでDLLから整数値を取得するにはどうすればよいですか?
- 8. * .dll(*。exe、*。msi)ファイルからシグネチャリストをプログラムで取得するにはどうすればよいですか?
- 9. jenkinsfileの内部からパイプラインの名前を取得するにはどうすればいいですか
- 10. PHPでは、DOMNodeから外部XMLを取得するにはどうすればよいですか?
- 11. JavaScriptを子とする内部コンテンツフォームのラベルを取得するにはどうすればよいですか?
- 12. 外部DLLからWPF MVVMビューをWPFアプリケーションにロードするにはどうすればよいですか?
- 13. 内部結合で異なる値を取得するにはどうすればよいですか?
- 14. RadButtonのOnClientClickingハンドラの内部でJavaScriptエラーメッセージを取得するにはどうすればよいですか?
- 15. Javaでリフレクションして内部クラスインスタンスを取得するにはどうすればよいですか?
- 16. div要素の内部でテキストを取得するにはどうすればよいですか?
- 17. このxpath式で内部HTMLコンテンツを取得するにはどうすればよいですか?
- 18. 内部結合後に値を取得するにはどうすればよいですか?
- 19. ASP.NET MVCの部分ビューからユーザー(IPrincipal)を取得するにはどうすればよいですか?
- 20. 外部URLからJSONデータを取得するにはどうすればよいですか?
- 21. 次のURLからデータの一部を取得するにはどうすればよいですか?
- 22. 外部のウェブサイトからクッキーを取得するにはどうすればよいですか?
- 23. サーバ名からファイルパスの特定の部分を取得するにはどうすればよいですか?
- 24. 外部URLを取得するにはどうすればいいですか
- 25. IronPythonは内部クラスをC#dllから取得します
- 26. 外部アプリケーションのリストビューのHWNDを取得するにはどうすればよいですか? Windows APIでC++を使用している
- 27. データベースを内部メモリから外部メモリに移動するにはどうすればよいですか?
- 28. 左内部結合の最新バージョンのモジュールを取得するにはどうすればよいですか?
- 29. NSViewサブクラスの内部/クライアントサイズを取得するにはどうすればよいですか?
- 30. グループ内の一部のテキストのshadow.offsetX値を取得するにはどうすればよいですか?
実行可能ファイルの 'HWND'? "HWND"は "Handle to Window"の略です...あなたは 'HMODULE'を意味しましたか? – Mehrdad
@Mehrdad:彼はプロセスの中でウィンドウのHWNDが必要だと思う... Direct Soundは初期化のためにHWNDが必要です。 –
@Reed:ああ、そうだよ。 – Mehrdad