問題タブ [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.

0 投票する
1 に答える
1433 参照

internet-explorer - WatiN、Internet Explorer の起動、および IWebBrowser2 ウィンドウ ハンドル

Internet Explorer の起動と接続を処理する WatiN の次のコードを調べていました。

WatiN が行うことは、Internet Explorer を起動し、それが .MainWindowHandle (Internet Explorer 内のコンテンツを表示する「ウィンドウ」のハンドル) になるまで待機することです。このウィンドウ ハンドルを取得すると、ユーザーのデスクトップで実行中のすべての IWebBrowser2 ウィンドウのリストを取得し、プロセスの .MainWindowHandle を、. IWebBrowser2 コレクション。

このアプローチの最も重大な問題は、IWebBrowser2.HWND プロパティ (.MainWindowHandle と比較する必要がある) が、アクセスしようとすると (少なくともテストを実行しているマシン)。また、そのような操作のオーバーヘッドがあります。

これは、私が Windows プログラミングに精通している可能性がある人への私の質問です。HWND はとにかく一致するので、必要な IWebBrowser2 をすぐに取得するために .MainWindowHandle 値を使用しないのはなぜですか (上記のコメントアウトされたコードを参照)。 ) 次のメソッドを使用します (WatiN 自体が ShellWindow2.cs 内で使用するコードに触発されています)。

(補足として、私の別の投稿で説明されているプロキシ オブジェクトを作成して、ウィンドウ ハンドルをキャッシュし、IWebBrowser2.HWND への要求を回避することもできます)。

これは私にとってはうまくいきます。HWND 間の競合や不一致は見られません。これについて WatiN フォーラムで質問したくなりましたが、明らかな何かが不足している場合に備えて、まず Programmers' Central で質問することにしました。

よろしくお願いします。どんなヒントでも大歓迎です。

乾杯、ドミニク

0 投票する
2 に答える
7086 参照

c# - Process.MainWindowHandle からの C# HwndSource

ウィンドウのメッセージに「フック」して、最小化/最大化を検出しようとしています。私は周りを見回しましたが、これを行うための唯一/​​最良の解決策は、ウィンドウのメッセージにフックし、WM_WINDOWPOSCHANGED メッセージをチェックしてから、そのステータスをチェックすることだと思います。

問題が発生しました。

「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。「source.AddHook...」のエラー。ブレークポイントを設定すると、ソース変数が null であることも明らかになります。つまり、最初の行で HwndSource を取得できません。

「WindowInteropHelper」を使用することで可能であることは知っていますが、それは実際のウィンドウを Windows.Window として利用できる場合ですが、私の状況ではそうではありません。

回避策/解決策があれば、よろしくお願いします、
René Sackers

PSコードが実行されたときにメモ帳が実行されていることを100%確信しており、それを見つけることができ、それがメインウィンドウハンドルです。

0 投票する
2 に答える
624 参照

winforms - GDI+ Graphics オブジェクトがウィンドウのサイズ変更に反映されない

次の問題があります。ネイティブ GDI+ を使用して Windows フォームのパネル サーフェスに描画しています (描画アルゴリズムはネイティブ DLL 内にあり、P/Invoke によって呼び出されます)。すべて問題ありませんが、パネルのサイズが変更されるまでは. 縮小されている場合は、適切にレンダリングされています。ただし、拡大すると、元のサイズに対応するパネルの領域の部分のみが GDI+ によって再描画されます。

なぜそうなのですか?Panel のサイズが変更されるたびに、本当に新しい Graphics オブジェクトを作成する必要がありますか?

0 投票する
2 に答える
4709 参照

c++ - C ++ / Win32は私のプロセスに属するウィンドウを列挙して閉じます

Web ブラウザー (Internet Explorer) が組み込まれた Windows アプリがあります。アプリは、IPC を使用して別のプロセスから閉じることができます。組み込みの Web ブラウザーがポップアップ ダイアログ ウィンドウを表示している場合 (コンテンツの保存中など) を除いて、問題なく動作します。その場合、IPC を介して外部要求から閉じようとすると、アプリがクラッシュします。(内部的には、WM_CLOSE メッセージを自分自身にポストするだけです。)

それを踏まえて、プロセスに属するすべてのウィンドウを列挙し、プロセス自体を閉じる前に最初にそれらを閉じる方法を考え出すことにしました。問題は、私のプロセスに属するすべてのウィンドウを、それらを閉じる目的でどのように列挙するのですか?

0 投票する
0 に答える
381 参照

wpf - ATL COM dll に WPF コントロールの HWND を与える方法

Windows Media Foundation への呼び出しをカプセル化する VideoPlayer クラスを公開する C++ ATL COM DLL (phew) があります。

コントロールにビデオを表示したい WPF アプリケーションからこの DLL を使用します。

私の DLL には、MF に 2 つの HWND を必要とする Initialize という名前のメソッドがあります。

この関数をどのように宣言すればよいですか? WPF アプリケーションで何を与える必要がありますか?

今のところ、私は持っています:

VideoPlayer.h

VideoPlayer.cpp

WPF アプリケーション:

Initialize 関数で正しい値を受け取りましたが、HWND への変換に失敗しました...

何か案は?

前もって感謝します

マイク

0 投票する
1 に答える
1283 参照

vb.net - 別のアプリケーションからラベル内のテキストを読み取る

私のPCでアプリケーションが動作しています。そのアプリケーションのすべての詳細を取得できます (ハンドル、メインウィンドウハンドルなど)。

そのアプリケーションにはたくさんのラベルがあり、そのラベルと msgbox の文字列を自分のアプリケーションで読みたいと思っています。

0 投票する
1 に答える
119 参照

c++ - 新しいアプリケーションを開き、MSVC++ でマウス イベントを渡す

プログラムで新しいウィンドウを開き、別のアプリケーション (フラッシュ プロジェクター) を起動し、マウス イベントを親から子に渡したいアプリケーション (C++ コンソール アプリ) があります。

2 つのアプリケーションを個別に起動し、SendInput を使用してグローバルなマウス位置を制御しようとしましたが、これは少し粗雑です。受信ウィンドウの位置が重要になります!

理想的には、新しいウィンドウを作成して、HWND を使用し、Windows メッセージをそこに直接送信します。

出来ますか?

ありがとう

サイモン

0 投票する
2 に答える
10667 参照

c# - C# 隠しウィンドウを表示

Excelのアドインを開発しています。ある時点で、非同期イベントを受け取ることができます。これらのイベントで非表示になっている場合は、Excel ウィンドウを表示できるようにする必要があります。

プロパティを保存できHwndます。これは、Excel ウィンドウを識別するための不変の int/reference である必要があると考えています。

誰かがこの Hwnd について詳しく説明できますか? それを使用してC#から非表示のウィンドウを表示する方法を説明してください。

よろしくお願いします;)

更新:まもなく、それは私の問題を分類したコードの一部でした:

0 投票する
1 に答える
1614 参照

delphi - Windows API で使用するためにフォーム ハンドルを DLL に渡す方法は?

まず第一に、私は DLL にあまり慣れていません。私は以前にそれらを行ったことがありますが、ほとんど知識がなく、常に問題を抱えています。

私が構築しているこの DLL では、Windows フォーム ハンドル (HWND) を DLL 関数に渡す必要があり、DLL はそのハンドルを使用して Windows API 関数を呼び出す必要があります。関数 ( から始まる) を呼び出そうとすると、関数Win7InitTaskbarの呼び出しに失敗したかのように、アクセス違反が発生し続けます。それは、それがクラッシュするパラメータであるに違いないと結論付けましたHWND...私は思う...

DLL 関数の実装:

使用しているかどうかにかかわらず、この問題がありましたShareMem(これも使用したくありません)。HWNDパラメーターを使用して関数を公開しても安全ですか? LongWord も試してみましたが、まだうまくいきません。アプリ内で直接使用する場合、内部関数InitializeTaskbarAPIは実際にはDLLの外部で完全に機能します。しかし、この場合、これらを共有 DLL に入れたいと思います。

UInt64また、 DLLに渡しても安全ですか? ソースを入手した時点で、関数の 1 つがこのパラメーターの型で既に公開されていました。

0 投票する
1 に答える
496 参照

c++ - DirectX フレームワークがスワップチェーンとデバイスの作成に失敗する

DirectX10 フレーム ワーク コードに大きな問題があります。

コードD3D10CreateDeviceAndSwapChain()は引数の関数で停止し、ID3D10Device次を出力します。

pD3DDevice CXX0017: エラー: シンボル "" が見つかりません

エラーハンドラなどpSwapChain、ほとんどすべてでこれを取得しています。pDepthStencilView

私のコードは次のように構成されています:dxGeometry -> dxD3D -> dxSystem -> winMain

これが私のコードです:dxD3D.hdxSystem.h

助けてくれてありがとう、これは過去 2 日間の問題でした。ほぼすべてを試しましたが、解決策が見つかりません。