アクティブウィンドウをホットキーで切り替える方法

【アプリ開発】ウィンドウマネージャ

先回ちょっとだけお話したウィンドウマネージャをC#で作っていきたいと思います。ディスプレイが大きくなっても一画面で表示したいときや、キーボードだけでアクティブを移動したいときに使えたらと思います。仕事から帰って制作して4日間くらいでした。

やりたいこと

  • 直前に触っていたウィンドウを登録
  • 登録したウィンドウをホットキーで切り替えてアクティブ化

これを具体的な要件に落としてみると、次のことができればいい気がします。

要件

  • 指定のウィンドウをアクティブ化
  • 直前に触っていたウィンドウの情報を取得
  • アプリがアクティブになっていないときでもホットキー処理

要件について対応検討

直前に触っていたウィンドウの情報を取得

ここのブログを参考に、もとからあった処理を追加してなんとかそれっぽい動きをつくれました。

アプリがアクティブになっていないときでもホットキー処理

今回実装したいホットキーはグローバルホットキーと言うそうです。

これをそのまま流用したら難なくクリアしました。

指定のウィンドウをアクティブ化

これも、VisualBasicのコード呼び出しで難なくクリアしました。

一応できました

例外処理も入れたので、変に落ちなくなりました。