乗っ取り
一応、晴れではあったけれど、風が強めで、気温は低くなった。
Alt+Tabは、現在開いているソフトウェアの表示切替をする時に使うホットキー。
これを「乗っ取る」ことが出来ないか、と色々と探してみたけれど、見つけきれなかった。
Alt-Tab Terminatorや、過去、タスクスイッチャーで、Alt+Tabを置き換えしているソフトウェアがあるし、あったから出来るとは思うんだけれど、一般的なやり方では出来ない?!
Alt+Tabを無効にするやり方は見つかったけれど、それだと乗っ取りは出来ず、本当に無効状態になってしまう。
色々と探した結果、
Trap when Alt+Tab is pressed in a WPF Application
というところで、乗っ取りではないけれど、Alt+Tabに反応して、何らかの動作を実現する方法を見つけることが出来た。
C#のものを、VB.NETに翻訳して使ってみた。
これをやると確かに、Alt+Tabに反応して、自作のプログラムを反応させることが出来る。
ただ、Windows 10の場合は、Alt+Tabをすると、ウインドウのプレビューが表示され、やりたい動作が阻害されてしまう。
他に方法はないかと探していたら、以前のAlt+Tabの表示に戻したらどうなるだろう?と思ってやってみた。
Windowsスマートチューニング(358) Win 10編: 以前のタスクスイッチャーに戻す | マイナビニュース
おお!自作プログラムが前面に出るようになった!
上記のTrapの
If isAltKeyDown AndAlso hookStruct.KeyCode = tabKey Then
'Do stuff when Alt+Tab is pressed
Form名.Activate()
Form名.SleepM(150)
Form名.BringToFront()
Else
ところをこういう感じにした。上記は、VB.NETだけれど。
SleepMというのは、独自の関数で、
Public Sub SleepM(ByVal mSec As Long)
Dim i As Long
For i = 0 To mSec - 1 Step 100
Sleep(100)
System.Windows.Forms.Application.DoEvents()
Next i
End Sub
というもの。
ネットにあったものを拝借。
自身のFormをActivateし、少し時間をおいてから、前面表示にする。
(普通に表示されるより、ワンテンポ遅れてしまうけれど、仕方ない。)
Alt+Tabをする時の動作を俊敏にすると、自作プログラムが前面に出てくれるようになる。
Alt+Tabを長めにすれば、Windows本来のタスクスイッチャーを機能させることが出来る。
余談だけれど、このアイコン表示のタスクスイッチャー、懐かしい!(笑)
とりあえず、これで、妥協的な動きをさせることが出来るようになったのでよしとしよう。
引き続き調べて、もっといいやり方があれば書いてみたい。
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- とうとう来てしまった(2024.12.04)
- 定例のアップデート(2024.11.28)
- 今日はどうだったか(2024.11.22)
- 何かが降ってきた(2024.11.21)
- 画面内の文字をテキスト化(2024.11.19)
コメント