Ctrl-C を受けとりたい(キー入力でループ脱出の続き ) [PowerShell]
昨年12月26日に書いた話(キー入力でループ脱出)の続きがあるのを忘れていました。
「また Ctrl-c, Ctrl-s などは対象にできません。素直にここまで情報が届くキーのみが使えます。(ReadKeyで AllowCtrlC を指定すれば Ctrl-c は使えるのかな?)」
と書いていたのですが、
としただけではCtrl-cはここまでやってきてくれません。
事前に
と指定しておく必要があります。
二重の関門ですね。。。
.Net Framework の Console クラス について知らないと書けないところになります。
Ctrl-s は無理なのかな。
「また Ctrl-c, Ctrl-s などは対象にできません。素直にここまで情報が届くキーのみが使えます。(ReadKeyで AllowCtrlC を指定すれば Ctrl-c は使えるのかな?)」
と書いていたのですが、
$keyinput = $rawui.Readkey("NoEcho,IncludeKeyUp,IncludeKeyDown,AllowCtrlC")
としただけではCtrl-cはここまでやってきてくれません。
事前に
[Console]::TreatControlCAsInput = $true
と指定しておく必要があります。
二重の関門ですね。。。
.Net Framework の Console クラス について知らないと書けないところになります。
Ctrl-s は無理なのかな。