問題タブ [handle]
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.
wpf - WPF ウィンドウへのハンドルを見つける
Windows フォームにはプロパティ win1.Handle がありましたが、思い出すと、メイン ウィンドウ ハンドルのハンドルを返しますか?
WPF ウィンドウのハンドルを取得する同等の方法はありますか?
次のコードをオンラインで見つけました。
しかし、私のアプリケーションには複数のウィンドウがあるため、それは役に立たないと思います。
ありがとう!!
c++ - ハンドルからイベントの名前を取得する方法
WaitForMultipleObjects()を使用して待機しているWin32イベントハンドルの配列があります。これにより、トリガーされたイベントの配列内のインデックスが返されますが、私が知る必要があるのはイベントの名前です。私はMSDNを調べてきましたが、これを行うために何も表示されません。
基本的に、定義された期間、RegNotifyChangeKeyValue()を使用してイベントを通じてレジストリを監視するクラスがありますが、他のクラスが開始する前に、キーと値に関心があります。次に、別のスレッドを待って、変更されたキーの名前を報告します。イベント名はイベントのキーであり、実行時にこれらがいくつあるか、または何と呼ばれるかはわかりません。パフォーマンスがあまり高くないため、キーごとに1つのスレッドを作成したくありません。
イベント名を取得する方法や、これを行うためのより良い方法を知っている人はいますか?
c++ - ログオンに失敗した場合はLogonUserハンドルを閉じますか?
LogonUser関数http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspxは、ユーザーのなりすましに使用できるハンドルを返します。使用が終了したら、CloseHandleを呼び出して閉じます。それ。私の質問は、ログオンの試行が失敗した場合(つまり、ユーザー名またはパスワードが間違っている場合)にハンドルを閉じる必要がありますか?
java - Java ファイル ハンドルの解放
Gridgain パッケージ上で実行されている Java で書かれたかなり大規模で複雑なアプリケーションがあります。私が抱えている問題は、すべてのリクエストが開始される前に、このアプリケーションが約 1 日間リクエストを処理し続け、タイプ java.nio.channels.ClosedByInterruptException の例外が発生することです。
私の推測では、アプリケーションがファイル ハンドルを解放しておらず、1 日連続して使用した後、ファイル ハンドルがなくなり、リクエストの処理を続行できなくなります (各リクエストには、各グリッド ノードから複数のファイルを読み取る必要があります)。ファイル IO 操作のほとんどを、このようなクラスでラップしました。
問題は、この設計がファイル ハンドルを明示的に解放しないことだと思います。私の提案する解決策は、このようなファイナライズ メソッドを追加することです。
これは明示的にこれを行います。(最終的に)問題は、これが何らかの影響を与える可能性があるかどうかです。java.io.BufferedReader などのクラスには、この種の問題に対処するメカニズムが既に備わっているのでしょうか?
編集:また、これが実際に問題であるかどうかを確認する方法も非常に高く評価されています...つまり、実行中のJVMにクエリを実行し、そのファイルハンドルの割り当てについて尋ねる方法はありますか?
window - CDialog派生クラスからウィンドウハンドルを取得するにはどうすればよいですか?
CDialog派生クラス(CWnd :: m_hWndメンバーなど)からウィンドウハンドルを取得する方法はありますか?
ありがとう
windows - ハンドルが閉じられるとすぐに自分自身を削除するファイルの種類は何ですか?
ファイルを作成してデータを書き込む Windows アプリケーションがあるとします。アプリケーションがファイルを排他的に開いたため、他のプロセスはファイル内のデータを読み取ることができません。
プロセスが強制終了されると、ファイルは削除されます。
プロセスが中断され、ファイルへのハンドルが (Process Explorer を使用して) 閉じられると、ファイルは削除されます。
これは Windows の機能である必要があります。これは、プロセスが強制終了または中断されたためにプロセス内のコードが実行されないためです。
どうすればいいの?この動作を示すファイルの種類は何ですか?
c# - 子コントロールの下でmousemoveイベントをキャプチャする方法
マウスカーソルが一連の座標(たとえば正方形)の間にある場合に発生する特定のフォームでのmouseclickイベントを処理しようとしています。
私は、空のフォームがあれば、単にmousemoveイベントに結び付けて、離れることができることを理解しています。しかし実際には、最大10の異なる重複するコントロールが存在する可能性があり、私のテストアプリでは、カーソルが実際のフォーム自体にある場合にのみmousemoveイベントが発生し、子コントロール上にある場合には発生しません。
設計時に子コントロールの数が不明な場合に、このイベントを処理する方法を知っている人はいますか?
簡単に使えるワンライナーはありますか?
c# - タイトルのないウィンドウのハンドルを取得.. (C#)
タイトルのないウィンドウのハンドルを取得するにはどうすればよいでしょうか? デスクトップ上のすべてのウィンドウを列挙し、タイトルを持たないウィンドウ (私の場合は 1 つしかありません) をフィルター処理し、そのハンドルを取得する方法はありますか.. または、ウィンドウのような他の属性を指定することによって特定のボタンやリストボックスなど...
c++ - ブースト::スレッドは小さなイベントハンドルリークを引き起こしますか?
このデータベース プロジェクトをデバッグしています。より高いレベルのアプリケーションの SQLite へのアクセスをラップします。非同期で実行するように設計されています。つまり、ExecuteRequestAsync() や IsRequestReady() などのメソッドがあります。ExecuteRequestAsync が呼び出されると、boost::thread を生成してジョブを実行し、すぐに関数を返します。上位レベルのアプリケーションは、実行中のリクエストの結果が不要になったと判断した場合、DumpRequest() を呼び出してキャンセルすることができます。データベース リクエストを適切にキャンセルすることは難しいため、DumpRequest の実装では、「完了したリクエスト」を待機してそれらを削除する「クリーンアップ モニタ スレッド」を維持するだけです。すべての boost::threads は、次のように boost::shared_ptr を通じて管理されます。
不要になった場合 (キャンセルする場合):
リクエストの実行とダンプのメカニズムをテストするために、この単体テスト プロジェクトを作成しました。リクエストを実行し、実行中のリクエストをランダムにキャンセルし、数千回のパスを繰り返します。メカニズムは大丈夫であることが判明しました。すべてが期待どおりに機能しました。
ただし、sysinternal の Process Explorer で単体テスト プロジェクトを観察すると、ハンドル リークの問題があることがわかりました。500 程度のパスごとに、ハンドル カウントが 1 ずつ増加し、元に戻ることはありません。増えているのは「イベント」タイプのハンドルです。ファイル ハンドルとスレッド ハンドルは増加していません (もちろん、スレッドが生成されるとハンドルの数は増加しますが、100 パスごとに Sleep(10000) 呼び出しが行われ、それらがクリーンアップされるのを待ってハンドル数を監視できます)。
私は自分でイベント ハンドルを管理していません。これらは、スレッドの作成時に boost::thread によって作成されます。スレッドを正常に閉じることを保証するだけで、イベントが何に使用されるのかわかりません。
誰かが同様の問題を経験したかどうか疑問に思っていますか?この漏れの原因は何でしょうか? Process Explorer のこの数値は、ハンドル リークと呼べるほど信頼できますか? 追跡して修正する方法はありますか?
Visual C++ を使用して、Windows Vista で静的にリンクされたブースト 1.40 を使用しています。
c++ - トラック ハンドルの作成/削除
私はかなり複雑なグラフィック表示を持つ大規模な古いプログラムを持っています (すべて標準の API 呼び出しを介して)。プログラムは正常に動作しているように見えますが、最近、このプログラムの実行中に Windows タスク マネージャーの「ハンドル」フィールドを調べたところ、ハンドルの数が徐々に、容赦なく増加していることに気付きました。
この不正なハンドルの作成を追跡するために使用できるソフトウェアまたは戦略はありますか?
プログラムが多数のハンドルを作成することを期待しますが、これも限界に達すると予想します。したがって、私が本当に知りたいのは、コードのどの部分が最新のハンドルを作成していたかです。
編集:「Process Explorer」で調査した結果、忍び寄っているのは「GDIハンドル」ではなく「ハンドル」であることがわかりました。つまり、複雑なグラフィックスとは何の関係もないことを意味していると思います。