プロンプトウィンドウでは、Ctrl+Vによる貼り付けの処理を、WM_CHARメッセージで文字コード (WPARAM)が&h16のときに行うようになっています。なぜこれでできるのか、さっぱり訳がわかりませんでした。山本さんに聞いてもそれを書いたのは昔のことで覚えていないと言われる始末です。

ところが、学校から借りていたC#によるプログラミングWindows上を読んでいると疑問が氷解しました。

.NET FrameworkにおいてWM_CHARに相当するのはControl.OnKeyPressメソッド、Control.KeyPressイベントですが、そこにCtrl+AからCtrl+Zの入力は0x0001から0x001Aの制御文字の入力になると書かれてあるのです。そう、プロンプトウィンドウが行っていたのはこれだったのです。ちなみに、コマンドプロンプトで^H (Ctrl+H)を打つとバックスペースになりますし、^Mで改行になりますね。コマンドプロンプトでCtrl+Vが貼り付けに使えないのも妙に納得しました。

となると、プロンプトウィンドウもCtrl+Vは貼り付けではなく、制御文字の入力になったほうがいいような気がしてきます。また1つ考えることが増えたのでした。


スポンサード リンク

この記事のカテゴリ

  • ⇒ プロンプトウィンドウ貼り付けの謎
  • ⇒ プロンプトウィンドウ貼り付けの謎