Windows APIにはGetForegroundWindow
というメソッドがあります。 しかし、デスクトップをクリックすると、フォアグラウンドウィンドウと見なされます。 以前のフォアグラウンドウィンドウが重なっていないことがわかっています。 実際のフォアグラウンドウィンドウハンドルを取得する方法は?ユーザーは(メニューなどを使用して、周りのTab'ing)「働く」ことかもしれないどこWindowsでフォアグラウンドウィンドウを取得する方法は?
答えて
あなたはあなたのソリューションを大きく強化していると思います。アプリケーションウィンドウが更新を受け取ったときにフォアグラウンドウィンドウでない場合は、ウィンドウをフラッシュします。点滅のポイントは、ユーザーの注意を捉えることであり、プログラムで注意を喚起しているかどうかを判断する方法はありません。
あなたが本当に知りたいと思うように思えます。「私のウィンドウのうち、現在変更されている部分がユーザーに表示されていますか?これは非常に複雑な質問ですが、正しく答えても、ユーザーが変更に気づくかどうかを知る方法はありません。
私は別のアプリケーション(Googleトーク)をテストしたので、実装したいと思います。 –
@Jader:あなたがこれを行うことに決めたとしても、 "前景"のウィンドウを見つけることは方法ではありません - あなたの質問に対するコメントでPeterが指摘したように、複数のものがあるかもしれません(そして、とにかくあなたの*窓を隠す)。ユーザーがあなたのウィンドウを見ることができるかどうかを知りたければ、クリッピング領域(**あなたの**ウィンドウ)を調べることが道のりだと思われますが、それは別の質問のトピックです。 – Shog9
「デスクトップ」(本物のデスクトップ・ウィンドウの上部にある探検デスクトップListViewコントロール)とタスクバーの両方が本当のウィンドウです
の場合あなたはそれを自分で見つける必要があり、悪い「本物の」最前面ウィンドウを見つけたい、あなたの最善の策は、zオーダーの最上部にある窓のために起こっている、多分何か:
... enumfunc(hwnd,...)
{
if (GetClassName(hwnd)!= "Shell_TrayWnd")
{
if (IsWindowEnabled(hwnd) && IsWindowVisible(hwnd) && GetWindow(hwnd,GW_OWNER)==NULL)
{
DoSomethingWithRealForegroundWindow(hwnd)
return FALSE
}
}
}
EnumWindows(enumfunc,0)
TaskSwitchXPが開いていますソースalt-tabの置き換え、おそらくあなたが使用できるより良いアルゴリズムを持っています...
- 1. Windows 8 Metroスタイルアプリでカメラのフィードを取得する方法は?
- 2. Windows Mobile 6でハードウェアキープレスイベントを取得する方法は?
- 3. WordアプリケーションのHwnd /プロセスIDを取得してフォアグラウンドウィンドウとして設定する方法
- 4. Windows-mobileからMACアドレスを取得する方法は?
- 5. Windowsセッションのリストを取得する方法は?
- 6. Windowsのフォントフォルダへのパスを取得する方法は?
- 7. WindowsバッチファイルでUTC時間を取得する方法
- 8. WPFでWindowsユーザー名を取得する方法
- 9. Windowsの電話7でスワイプを取得する方法
- 10. WindowsでPer-Interface統計を取得する方法
- 11. Windows 7でドメイン名を取得する方法
- 12. Windowsで現在のユーザーのホームディレクトリを取得する方法
- 13. ソケットからIPアドレスを取得する方法Windowsで
- 14. WindowsサービスプログラムでSERVICE_CONTROL_SHUTDOWNコードを取得する方法
- 15. Windows XPでx.509証明書を取得する方法
- 16. Windows上でヒープサイズを取得する方法プラットフォーム
- 17. Windows Phone7で連絡先情報を取得する方法
- 18. Windows 8ライブIDの取得方法
- 19. asp.netでWindows認証を使用してユーザー名を取得する方法は?
- 20. C++を使用してWindowsでハードウェア情報を取得する方法は?
- 21. Windows Azure - キャッシュ - すべてのキャッシュアイテムを取得する方法
- 22. Windows XPでCPU使用率メトリックを取得する方法は?
- 23. Windows Workflow 3.5での例外処理時にスタックトレースを取得する方法は?
- 24. Windows上でNode.js内のファイルのcase-exactパスを取得する方法は?
- 25. Windows Phone 7 - Podcastまたはメディアのリストをプログラムで取得する方法
- 26. C#WindowsアプリケーションHTMLソースコードフォームを取得する方法WebView
- 27. Windows phone:現在のアプリケーションIDを取得する方法
- 28. WindowsフォームクライアントからHTTPリクエストから値を取得する方法
- 29. Windows 7のテーマ名を取得する方法
- 30. シングルインスタンスのWindowsフォームアプリケーションとその参照を取得する方法?
デスクトップ上に2つの目に見えるウィンドウがあるとします。デスクトップをクリックした後、どれが「真の」フォアグラウンドウィンドウですか? –
あなたが達成しようとしていることを知ることは役に立ちます。あなたの質問は、書かれているように意味がありません。 –
これは確かに正常な動作ではなく、私のマシンでこれを見たことはありません。デスクトップをエミュレートしようとする「アドオン」に注意してください。 –