Alt + Tab 入力を処理するプログラムは、タスク スイッチャーと呼ばれると言われています。しかし、ストックから提供されるタスクスイッチャーには満足できません。
誰かが正しい方向にプッシュしてくれるので、自分で書いて古いものを新しいものに置き換える方法がわかりますか?
プログラミングの経験がないわけではありません。この特別な経験をどこから始めればよいかわかりません。:D
ありがとうございました!
Windows で代替スイッチャーを作成するには、3 つの重要な要素があります (これらは Windows 7 でテストされています)。
Alt+Tab をキャプチャ: これにはSetWindowsHookEx
、低レベルのキーボード フック( WH_KEYBOARD_LL
) を使用します。
切り替えることができるウィンドウを列挙します。これに関する 2 つのオプションは、EnumWindows
または UI オートメーション フレームワーク (マネージ コードで を使用できますSystem.Windows.Automation
) です。
切り替えを実行します。SwitchToThisWindow
またはを使用できますSetForegroundWindow
が、どちらの場合もuiAccess=true
マニフェストで設定する必要があります。これにはさらに、実行可能ファイルに署名して Program Files にインストールする必要があります。他のそのような悪ふざけを呼び出したり、実行したりする必要はありません。AttachThreadInput
詳細については、このブログ投稿を参照してください。
このリンクであなたの質問に答えました: 最後にアクティブ化されたプログラムに集中する方法は? そのコードの代わりにこのコードを使用すると、開いているウィンドウのリストを取得できます。
string name = GetWindowTextRaw((IntPtr)hwnd);
if (name.Length > 0)
{
windowArray.Add(hwnd);
}
これで、次のコードを使用してウィンドウを切り替えることができます。
SetForegroundWindow((IntPtr)windowArray.sth);