問題タブ [hwnd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 別のアプリケーションのテキスト ボックスにテキストを挿入する
C# または C++ を使用して、別のアプリケーションのテキスト ボックスにテキストを挿入するにはどうすればよいですか? 私はずっと前にこれを行い、アプリケーション HWND の使用について何か覚えているようでした。しかし、アプリケーションのインスタンスごとにその変更が行われるため、完全なストーリーを覚えていない気がします。どういうわけか、実行中のアプリのリストを取得し、必要なものを抽出し、そこから HWND を取得してから...うーん....それから何をしますか? :)
visual-studio - Visual Studio 2010は、相互運用機能のコールバックをハイジャックしたり、実際のウィンドウハンドルを非表示にしたりします
一部のカスタムハードウェアとインターフェイスするために、ベンダーが提供する非管理対象DLLを使用しています。残念ながら、ベンダーコードを投稿することはできませんが、以下のサニタイズされたコードが問題の原因に関する十分な情報を提供することを願っています。
ベンダーSDKでは、ハードウェアイベント通知用のコールバック関数を登録する必要があります。これが正常に行われることを確認するためのベンダーのユーティリティがあります。ハードウェアはカスタムWIN32メッセージをウィンドウに送信し、SDKはそれ自体をメッセージループに接続し、これらのカスタムメッセージのいずれかを受信するたびにコールバック関数を呼び出します。
アプリを直接実行すると、すべてが機能します。アプリがVisualStudio内で実行されると、登録は成功しますが、イベントは発生しません。これは、デバッグの有無にかかわらず実行する場合に当てはまります(F5 / Crlt + F5)。また、プロジェクトのプロパティでVisual Studio Hostingプロセスを無効にしてみましたが、違いはありませんでした。
C#クラスライブラリで、ベンダーSDKを次のコードでラップしました。
次に、WPFアプリで、次のようにこのラッパーを使用します。
ベンダーSDKは、私のマネージドラップと同じ問題があるC++のアンマネージドの例を提供しました。アプリはVisualStudioの外部では正常に動作しますが、VisualStudioの内部から起動されたメッセージは受信されません。
これは、Visual Studioがコールバックの邪魔になるか、管理されていないベンダーのDLLが現在のウィンドウハンドル(HWND)にアクセスしたときに間違った値が返されることが原因であると考えられます。しかし、私はこれを確信していません。
c# - フォームと HWND を相互に再配置するにはどうすればよいですか?
私には、HWND としてSystem.Windows.Form
の役割があります。IntPtr
それぞれに相手を動かしてもらいたい。「Hwnd get/set position c#」と多くのバリエーションを備えた Web 上で何も見つからなかったことに驚いています。おそらく、明らかな結果を見落としているのでしょう。
与えられた例のために、Form "window A" と Hwnd "window B" を考えてみましょう。また、B の位置を A の位置 + 右側に 50 ピクセルにしたいとします。
windows - DLL内からHWNDを取得するにはどうすればよいですか?
ダイレクトサウンドを使用してサウンドを再生したいDLLがあります。サウンドを再生するには、実行可能ファイルのHWNDが必要です。DLLをロードする実行可能ファイルのHWNDがありません。実行可能ファイルから渡さずにDLLでそれを取得するにはどうすればよいですか?
java - JPanel に HWND (ウィンドウ ハンドル) を埋め込む
JPanel に HWND (ウィンドウ ハンドル) を埋め込もうとしています。
実際、HWND を JFrame に埋め込むことはできますが、埋め込まれたウィンドウは常に他のコンポーネントの上にあり、移動できません。JFrame のすべての子コンポーネントを削除しようとすると、HWND はそこにとどまります。HWND は、JFrame の上にペイントされているようで、子の 1 つとしてではありません。
HWND を JPanel に埋め込むには、jna を介して User32 を使用します。
そして、これを使用して JFrame の HWND を取得します。
HWND を JPanel に埋め込んだり、他のコンポーネントに追加したりして、UI に配置できるようにする方法はありますか?
ありがとう
winapi - MFC を使用する親プロセスのメイン HWND ハンドルを見つける方法
親ソフトウェアの下で実行されている DLL ファイルがあります。親ソフトウェアは MFC を使用し、メイン GUI ウィンドウを表示します。私がやりたいことは、独自の小さなモードレス ダイアログ ボックスを作成して、画面にポップアップ表示し、メイン ウィンドウのすぐ隣に座らせることです。これを行うには、親のメイン ウィンドウの HWND が必要だと思うので、RECTangle を見つけて、DLL のウィンドウを必要な場所に移動できます。
可能であれば、親のソースを変更したくありません。どうすればこれを行うことができますか?
おそらく関連する 2 番目の質問は、DLL のダイアログ ボックスを作成するために MFC を使用する必要があるか、プレーンな Windows API を使用する必要があるかということです。より簡単に実行できる方法が必要であり、MSDN で、MFC が機能するために親 MFC アプリケーションからメッセージを送信する必要がある可能性があることを読みました。
wpf - WPF ウィンドウへの GDI レンダリング
私はいくつかの検索を行いましたが、これに関する正確な答えを見つけることができません。私の C# WPF アプリでは、HWND ポインターを取得し、それを C dll に渡します。その C dll は、GDI 呼び出しを使用して、ウィンドウにある種のオーバーレイをレンダリングしようとします。エラーはありませんが、何も表示されません。Windows フォームに切り替えると、dll はそれをうまくレンダリングできます。WindowsFormHost コントロールをホストし、そこから hwnd を使用すると、同じ効果があります。HwndHost コントロールに関する情報を見てきましたが、実際には私が望んでいるようには見えません。おそらく、そのコントロールの知識が豊富な人なら、別のことを教えてくれるでしょう。DirectX レンダリング (WPF など) に使用される hwnd は GDI も使用できないことをどこかで読みました。これは私のシナリオを不可能にしますか? WPF ウィンドウの上にボーダレス フォームをオーバーレイすることで偽造することもできますが、明らかにそれはあまりきれいではありません。
java - JavaコンポーネントIDを取得する方法
JavaアプリケーションでMPlayerを使用しています。そのドキュメントによると、それを埋め込むためのウィンドウIDをMPlayerに伝える必要があります。私はそのようにこれをやっています:
ただし、getPeer()メソッドは非推奨です。回避策があるかどうか知りたいです。
助けてくれてありがとう。
vb6 - VB6: サードパーティ コントロール内の子コントロールの hWnd を取得する
私はvb6サードパーティのUpDownコントロール(ControlXにしましょう)を持っています.UISpyを使用すると、ControlXには2つのコントロールがあり、1つは「ThunderRT6TextBox」で、もう1つは「UpDown20WndClass」です。
ControlX の周りに境界線を引いています。私は ControlX hWnd を使用しており、次のように境界線を描画します。
問題は、境界線が ThunderRT6TextBox の周囲に描画されるが、UpDown20WndClass の周りには描画されないことです (おそらく、ControlX hWnd は内部の ThunderRT6TextBox コントロール hwnd を返します)。
ControlX の内部 UpDown20WndClass コントロール hWnd を取得して、その周りに境界線を描画したいと思います。
これどうやってするの?
前もって感謝します。
c# - ユーザーとして実行されている Windows 7 アプリケーションの MainWindowHandle を取得するにはどうすればよいですか?ローカル システムとして実行されているサービス内から?
Local System ユーザーとして実行するサービスを作成しました。このサービスは、ネイティブ相互運用機能と CreateProcessAsUser() メソッド (ローカル システムではなく、現在ログインしているユーザーとしてアプリケーションを実行するため) を使用して、Silverlight Out-of-browser アプリケーションを起動および監視します。生成されたプロセスのハンドルを取得し、それを Kill() することはできますが、サービスが子アプリケーションのメイン ウィンドウへのハンドルを取得できないことに気付きました。別のユーザーとして実行しています。私はWindows 7で実行しています。
私の最終的な目標は、プロセスが応答を停止したとき (つまり、Process.Responding == false) に適切に応答して、アプリケーションを強制終了して再起動できるようにすることです。ただし、Process.Responding にはプロセスのメイン ウィンドウへのハンドル (正確には Process.MainWindowHandle) が必要ですが、このシナリオでは、Process.MainWindowHandle は常に 0 を返します。
私はここで困惑しています。Win 7 で、あるユーザーが別のユーザーとして実行されているプロセスへのウィンドウ ハンドルを取得する方法はありますか?
あらゆる助けを前もって感謝します。