私は別のアプリケーションを起動し、com経由でそれと通信するC++コンソールアプリケーションを持っています。私はspawnedウィンドウのhWndを持っていて、COMアプリケーションがもはや開いていない場合、コンソールアプリケーションが自分自身を殺すことを望みます。これをどうやってやることができますか?hWndが存在しない場合に自己をキル
0
A
答えて
3
すでにアプリケーション間で通信しているので、ウィンドウは、コンソールアプリケーションへの上に「私は死んだ」というメッセージを送り、閉じているとき、あなたは、信号を設定する必要があります。あなたのコンソールアプリケーションはその後、適切に閉じることができます。
あなたはhWndををチェックして、これを行うにしたい場合は、単にのhWndがもはや有効であれば、あなたが知っているようになる「IsWindow()」関数を使用することができます。ポーリングコンストラクトを使用してこれを行う必要があります。他のアプリケーションであった場合
別のオプション、これより有用ではないあなたは、フックをインストールすると、ウィンドウが破壊されるのを見ることです。これを行うには、Windowsフックを見て、CBTフックが適切であれば、簡単に破壊されているウィンドウを見ることができます。
0
コールGetWindowThreadProcessId()、その後、OpenProcess()。これで、プロセスハンドルが通知されたかどうかをテストできるようになりました。
関連する問題
- 1. 自己結合テーブルに存在しないタプル
- 2. ファイルが存在しない場合は、存在しない場合
- 3. ヒストリテーブルが存在しない場合の自動マイグレーション
- 4. レコードが存在しない場合は、
- 5. DynamoDB createTableが存在しない場合
- 6. result.responseText.matchが存在しない場合
- 7. sqlPreparedStatement:INSERT INTOが存在しない場合
- 8. LEFT JOINのデータセットが存在する場合と存在しない場合
- 9. Cが存在しない場合、自動的にフォルダを作成する
- 10. 存在しない場合はINSERT、存在する場合は削除
- 11. PHP MYSQL UPDATE(存在する場合)またはINSERT(存在しない場合)?
- 12. VideoViewが等しい場合null(ビデオパスが存在しない場合)
- 13. 存在しない場合のSQLクエリ
- 14. C#sqlcommand存在しない場合コードエラー
- 15. ピボット存在しない場合
- 16. 存在しない場合はJPAは
- 17. Neo4j Cypher MATCH(存在しない場合)
- 18. キューが存在しない場合にメッセージが失われる
- 19. ファイルが存在しない場合、バーボタンを無効にする
- 20. PHPUnitが存在しない場合に例外をスローする
- 21. 入力が存在しない場合にタイムラベルを作成
- 22. ファイルが存在しない場合に.htacessを実行する
- 23. Wordpress - ページが存在しない場合にページをリダイレクトする
- 24. Powershellが存在しない場合にフォルダを作成する
- 25. dockerコンテナが存在しない場合にbashコマンドを実行
- 26. ファイルがディレクトリに存在しない場合は行をスキップ
- 27. レジストリエントリが存在しない場合にフォルダを削除する
- 28. ユーザー名が存在しない場合ユーザーをページにリダイレクト
- 29. PHPのユーザー名が既に存在していない場合
- 30. SQL更新が存在する場合は、存在しない場合は挿入してください。
申し訳ありませんが、これは起こるのを待っている競合状態です。 HWNDは単純な番号であり、再利用されます。それが世論調査の間に起これば、あなたは失う。 – MSalters