18

Windowsでフォーカススティーリングのソリューションをグーグルですばやく検索すると、2つの主要な結果カテゴリが明らかになります。

  • ForegroundLockTimeoutレジストリエントリ(または前述のレ​​ジストリエントリを変更するだけだと私が信じているTweakUI)を含む不完全な解決策を提案する人々は、あまり効果的ではありません。
  • それについて不平を言うWindowsユーザーの絶え間ない大群

これは、2つの一般的なシナリオで特に厄介です。

  • フルスクリーンアプリがフォーカスされているときに、何かがプログラムをトリガーしてバックグラウンドでダイアログウィンドウをポップアップし、フルスクリーンアプリを最小化します。

  • 入力中にウィンドウがフォーカスを奪い、すべてのキーストロークを盗みます。スペースキーを押したり、Enterキーを押したり、キーボードショートカット([はい]の場合はYなど)をトリガーしたりすると、まったく望ましくない結果が生じる可能性があります。

これらのシナリオのいずれかまたは両方でこの問題を解決するために適用できるクリエイティブなソリューションは何ですか?

4

1 に答える 1

2

どうすれば解決できるかについて1つの提案がありますが、知識が不足しているため、完全に実装することはできません。

ウィンドウ間のフォーカスの変更は、おそらく shell32 または user32 にある Windows API 関数を呼び出す問題のあるプログラムによって引き起こされる必要があります。Adobe Photoshop などの一部のプログラムは、呼び出しを複数回 (少なくとも 2 回) 行い、起動時にユーザーにそれ自体を強制します。アイデアは、(可能であれば) この API 関数にフックし、呼び出しの発信元を確認することです。それがexplorer.exeからのものでない場合(つまり、Alt+Tabbing またはタスクバーのアイコンをクリック)、呼び出しはフックによってブロックされます。

于 2011-10-12T16:33:43.953 に答える