キー操作
VB 2005 ⑨ □ キーセンス ・キーボードイベントへの応答 ・低レベルのキーボードハンドラの作成(KeyPress、KeyDown、Keyp) ・KeyPress イベント ・KeyDown イベントと KeyUp イベント ・Shift、Ctrl、Alt のキー状態の検出 ・フォームレベルのキーボードハンドラの作成 □ 遠隔キー入力(SendKeys ステートメント) ・遠隔キー入力 今回の課題項目□ キーセンス(KeyPress イベント、KeyDown イベント、KeyUp イベント)
□ 遠隔キー入力(My.Computer.Keyboard オブジェクトの SendKeys メソッド) 今回の重点項目
■ キーボードイベントへの応答 ■ ユーザーとプログラムのインターフェイスには、主にマウスとキーボードが利用されて居る。マウス操 作やキー操作に依り、イベントが発生し、様々な処理が出来る様に成る。 此等の総ての動作は、オペレーティングシステムの機能に依り自動的にサポートされて居るが、動作の 変更や拡張を必要とする場合が有る。其の様な場合には、キーイベントを使用して、動作の変更や拡張 を行う事が出来る。猶、キーイベントで、標準キーボードの殆どのキーを処理するコードを記述する事 が出来る。 ■ 低レベルのキーボードハンドラの作成 ■ キーイベントに応答する様にアプリケーションをプログラムする事を、キーボードハンドラの作成と謂 う。キーボードハンドラは、コントロールレベルとフォームレベルの2つのレベルで動作させる事が出 来る。 低レベルのコントロールレベルハンドラを作成すると、コントロールでの応答をプログラミングする事 が出来る。 フォームレベルハンドラでは、フォームを先ずキーイベントに応答する様にプログラミングする事が出 来る。其の後で、フォーカスをフォーム上のコントロールに移し、イベントをもう一度発生させたり、 開始させる事が出来る。 フォームやキーボード入力を受け付けるコントロールは、下記の3種のキーボードイベントを認識する。 ・KeyPress :文字を入力した時にイベントが発生する。 ・KeyDown :キーボード上の孰れかのキーを押した時にイベントが発生する。 ・KeyUp :キーボード上の孰れかのキーを離した時にイベントが発生する。 キーボードイベントを取得する事が出来るのは、キー操作が行われた時にフォーカスを持つオブジェク ト丈で有り、Enabled プロパティ、及び、Visible プロパティが真に設定されて居るオブジェクト丈が フォーカスを得る事が出来る。 猶、フォームは、コントロールが配置されて居ないか、又は、配置されて居る総てのコントロールが無 効、又は、非表示に設定されて居る時に限り、フォーカスを持つ事が出来る。但し、フォームの KeyPreview プロパティを True を設定すると、キーボードメッセージがフォーム上のコントロールに 到達する前に、フォームに依り受け取る事が出来る。 KeyDown イベントと KeyUp イベントは、キーボードに応答する為の最も低いレベルのイベントで有 る。此の2つのイベントを使用すると、KeyPress イベントでは検出出来ないキー、及び、キーの状態 を検出する事が可能と成る。 各キーボードイベントは、互いに影響を与え無い。キーが押されると、KeyDown イベントと KeyPress イベントが発生し、其のキーが離された時にKeyUp イベントが発生する。KeyPress イベントで検出す る事が出来ないキーが押されるとKeyDown イベントが発生し、其の後 KeyUp イベントが発生する。
キ
キ
ー
ー
セ
セ
ン
ン
ス
ス
■ KeyPress イベント ■ KeyPress イベントは、キーボードから文字が入力されると発生する。文字と仕て認識する事の出来な いキーが押された時には、此のイベントは発生し無い。 押されたキーの情報は、引数のKeyPressEventArgs.KeyChar プロパティを通じて、文字(Char 型) と仕て、参照に依りイベントプロシージャに渡される。 此のイベントでは、下記のキーの取得と設定が可能で有る。 ・英字キー(大文字と小文字は区別される) ・数字キー(フルキーとテンキーの両方) ・記号キー(キーボードより入力可能なキー) ・Enter キー ・Ctrl キー(Ctrl キーとの併用:Ctrl+A、Ctrl+B、…、Ctrl+Y、Ctrl+Z 等) ・BackSpace キー(Ctrl+H と同じ) キー e.KeyChar Asc(e.KeyChar)
英字キー "a" ~ "z"、"A" ~ "Z" 97 ~ 122、65 ~ 90(Keys.A ~ Keys.Z) 数字キー "0" ~ "9" 48 ~ 57(Keys.D0 ~ Keys.D9) 記号キー " "、"!" ~ "}"、"~" 32、33 ~ 125、126 Enter キー 13(Keys.Return) Ctrl キー 0 ~ 31 BackSpace キー 8(Keys.Back) 併し、下記のキーの取得や設定は出来ない。 ・Tab キー ・Ins キーと Del キー ・Home キーと End キー ・PageUp キーと PageDown キー ・F1 ~ F12 の各キー ・Alt キー ・方向キー
※ Enter キーは、フォームの AcceptButton プロパティに設定されて居るボタンが無い時、亦、Escape キーは CancelButton プロパティに設定されて居るボタンが無い時に限り、KeyPress イベントが発生する。 ※ 引数のKeyPressEventArgs.KeyChar は参照に依り渡されるので、此の値を変更する事に依り、実際に入力された文 字と異なる文字をオブジェクトに渡す事が出来る。猶、キー入力を取り消すには KeyPressEventArgs.Handled に True を設定する。 KeyPress イベントは、フォーカスが設定されて居るオブジェクトに対して発生する。其の為、フォー ムに対してKeyPress イベントが発生するのは、フォーム上に有効なコントロールが表示されて居ない か、又は、フォームの KeyPreview プロパティが True に設定されて居る場合丈で有る。此の場合 KeyPress イベントは、フォーム上のコントロールよりも先に、フォームに依り認識される。KeyPreview プロパティは、全体に共通のキーボード処理ルーチンを記述する場合に使用する。
注 意 Ctrl キーを押し乍ら@キーを押した時は、ANSI コードの 0 が返される。Visual Basic では
値が0 の KeyChar は長さ 0 の文字列(ヌルストリング)と仕て扱われる為、アプリケーションでは Ctrl キーを押し乍ら@キーを押す操作を使用する時は、注意を要する。 KeyPress イベントは、文字以外のキー入力 では発生しないが、KeyDown イベントと KeyUp イベントは、文字以外のキー入力で も発生する。
■ KeyDown イベントと KeyUp イベント ■ KeyDown イベントは、キーを押した時、亦、KeyUp イベントは、キーを離した時に発生する。此のイ ベントは、キーボードの物理的な状態を示す物で有る。 押されたキーの情報は、KeyEventArgs.KeyCode プロパティを通じて、キーコード(Keys 型)と仕て 参照に依りイベントプロシージャに渡される。 KeyDown イベントと KeyUp イベントは、キーボードに応答する為の最も低いレベルのイベントで有 り、此等のイベントを使用すると、KeyPress イベントでは検出する事の出来ない下記の様なキー、及 び、キーの状態を検出する事が出来る。 ・Shift、Ctrl、Alt キーとの同時押し下げ ・方向キー ・PageUp、PageDown キー ・文字キー上の数字とテンキーの数字の区別 ・キーを押した時と離した時の応答の区別 ・メニューコマンドに割り当てられて居ないファンクションキー ※ KeyDown イベントと KeyUp イベントでは、標準キーボードの殆どのコントロールキーが認識され る。此れには、F1~F16 のファンクションキー、Home、PageUp、Del 等の編集キー、→、←、↑、 ↓等の方向キー、及び、テンキーが含まれる。此等のキーは、キーコード定数か其れに相当するASCII 値の孰れかを使用して識別する事が出来る。 ※ 引数の KeyEventArgs.KeyCode は参照に依り渡されるので、此の値を変更する事に依り、実際に入 力された文字と異なる文字をオブジェクトに渡す事が出来る。猶、キー入力を取り消すには KeyEventArgs.SuppressKeyPress に True を設定する。但し、テキストボックスでは、KeyUp イ ベントでは、入力した文字が表示されるので、KeyDown イベントで処理する必要が有る。 ※ KeyDown イベントと KeyUp イベントでは、キーコードを受け取る為、大文字と小文字は同じキー 入力と仕て認識される。即ち、同じキーに割り当てられて居る文字(例えばA-a-ち)は、同じキ ーと判断され、同じキーコードを返す。亦、同じ文字でも異なるキー(例えば、文字キーの1とテ ンキーの1)の場合は、異なるキーコードを返す。 KeyDown イベントと KeyUp イベントは、下記のキー操作では発生し無い。 ・フォーム上に、フォームのAcceptButton プロパティに設定されたボタンコントロールが有る場合の Enter キーの操作。 ・フォーム上に、フォームのCancelButton プロパティに設定されたボタンコントロールが有る場合の Esc キーの操作。 ・Tab キーの操作。
亦、KeyDown イベントと KeyUp イベントでは、通常キーと同時に押し下げを行う併用キー(Shift、 Ctrl、Alt)の状態も検出する事が出来る。
注 意 コントロールの中には、ボタン、ラジオボタン、チェックボックスの様に方向キーイベント
を認識し無い物が有る事に注意を要する。此等のコントロールで、方向キーを押すと他のコントロール にフォーカスが移動する。
■ Shift、Ctrl、Alt のキー状態の検出 ■ マウスイベントとキーボードイベントでは、イベント引数を使用して、Shift、Ctrl、Alt の各キーの孰 れが押されて居るかを調べる事が出来る。 併用キー(Shift、Ctrl、Alt)の情報は、KeyEventArgs.Alt、Control、Shift の各プロパティを通じて ブール値(Boolean 型)と仕て、参照に依りイベントプロシージャに渡される。 KeyEventArgs.Alt、Control、Shift プロパティでは、対応するキーが押されて居れば True、其れ以外 はFalse と成る。亦、此等の組み合わせは、KeyEventArgs.Modifiers プロパティで判断する事も出来 る。下記の2 文は、等価で有る。
If e.Shift = True And e.Control = True Then と
If e.Modifiers = Keys.Shift + Keys.Control Then
※ 併用キー(Shift、Ctrl、Alt)は、修飾子キーとも呼ばれる。併用キーの調査には、Keys 列挙体の Shift、Control、Alt を用いる(例えば、Shift キーでは、Shift、ShiftKey、RShiftKey、LShiftKey の4 種が定義されて居るが、併用キーと仕ての Shift キーの押し下げ状態を調査する為の正しい値は Shift で有る)。
イベント引数に此等のプロパティが存在しない場合(例えば、Click イベントの EventArgs)、併用キー の押し下げ状態は、Control クラスの ModifierKeys プロパティで調べる。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles Button1.Click
If Control.ModifierKeys = Keys.Shift Then CType( sender, Control ).BackColor = Color.Red End If
End Sub
猶、併用キーの状態は、キーボードの現在の状態(現在何のキーが押されて居るか等)にアクセスする 為のプロパティや、アクティブなウィンドウにキーストロークを送る為のメソッドが用意されて居る My.Computer.Keyboard オブジェクトを使用する事も出来る。
KeyDown イベントと KeyUp イベントでは、引数の KeyEventArgs.Shift を使用して、大文字と小 文字を区別する事が出来る。
Private Sub TextBox1_KeyDown( ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.KeyEventArgs ) _
Handles TextBox1.KeyDown
If (e.KeyCode = Keys.A) And (e.Shift = True) Then MsgBox "大文字の A キーが押されました。" End If
■ フォームレベルのキーボードハンドラの作成 ■
KeyDown イベントと KeyUp イベントは、特定のオブジェクトに割り当てられて居る。同一フォーム 上の総てのオブジェクトに適用されるキーボードハンドラを作成するには、フォームのKeyPreview プ ロパティをTrue に設定する。
フォームのKeyPreview プロパティを True に設定すると、其のフォーム上のコントロールが KeyPress、 KeyUp、KeyDown の各イベントを認識する前に、フォームが此等のイベントを認識する。此れに依り、 特定のキー入力に対して常に同じ応答(処理)を行う様にする事が出来る。
フォームのKeyPreview プロパティが True に設定されて居る時、フォームは、コントロールが認識す る前にキーボードイベントを認識するが、其の後で、各コントロールも其のイベントを認識する。此の 場 合 フ ォ ー ム の キ ー ボ ー ド イ ベ ン ト プ ロ シ ー ジ ャ で 、KeyPress イ ベ ン ト の 場 合 、 引 数 の KeyPressEventArgs.Handled に True を設定するか、又は、KeyDown イベントと KeyUp イベントの 場合、KeyEventArgs.SuppressKeyPress に True を設定すると、コントロールのキーボードイベント が発生し無い様にする事が出来る。 メニューコントロールにショートカットキーが定義されて居る場合は、其のキーが押された時に、其の メニューコントロールのClick イベントが自動的に発生し、キーボードイベントは発生し無い。 同様に、フォーム上に、フォームのAcceptButton プロパティに設定されたボタンコントロールが有る 場合は、Enter キーを押すと、キーイベントでは無く、其のボタンの Click イベントが発生する。 亦、フォーム上に、フォームのCancelButton プロパティに設定されたボタンコントロールが有る場合 は、Esc キーを押すと、キーイベントでは無く、其のコマンドボタンの Click イベントが発生する。 亦、Tab キーは、コントロールからコントロールへとフォーカスを移動する。フォームの総てのコント ロールが無効で有るか、又は、TabStop プロパティが偽に設定され無い限り、Tab キーのキーイベント は発生し無い。 キーを押して直ぐに離すと、3つのイベントが、下記の順番で発生する。
KeyDown → KeyPress → KeyUp
併し、キーを暫く押し続けると、下記の様な順番で、イベントが発生する。
KeyDown → KeyPress → KeyDown → KeyPress → … → KeyUp
即ち、キーを押し続けると、KeyDown イベントと KeyPress イベントが繰り返してトリガーされ KeyUp イベントが発生するのは、最後にキーを離す時の1回丈で有る。 此のKeyDown イベントと KeyPress イベントの繰り返しの間隔は、キーボードのプロパティ(コ ントロールパネル→キーボードで設定可能)で設定されたキーボードのリピート率に依存する。 キーリピートの間隔は意外に短く、少し長くキーを押した場合、KeyDown イベントプロシージャ やKeyPress イベントプロシージャに記述したコードは、繰り返し実行される事を考慮して、コー ディングを行う必要が有る。
■ 遠隔キー入力 ■ My.Computer.Keyboard オブジェクトの SendKeys メソッドを使用すると、キーストロークをアクティ ブウィンドウに渡す事が出来る為、恰もキーボードから入力した時と同様の効果を得る事が出来る。 SendKeys ステートメントの書式は、下記の通りで有る。 My.Computer.Keyboard.SendKeys( 転送文字列 [, 制御処理] ) ・転送文字列は、転送するキーストロークを表す文字列を指定する(制御キーの転送も可)。 ・制御処理は、ブール型の値で、True を指定すると、処理が終了する迄、実行を一時中断し、False を指 定すると、処理の終了を待たずに次の行に制御を移す(省略時は、True が設定される)。 Dim ID As Integer
ID = Shell( "CALC.EXE", AppWinStyle.NormalFocus ) AppActivate( ID ) My.Computer.Keyboard.SendKeys( "10", True ) My.Computer.Keyboard.SendKeys( "*", True ) My.Computer.Keyboard.SendKeys( "36", True ) My.Computer.Keyboard.SendKeys( "=", True ) キーを押しても表示されない文字(Eneter や Tab 等)を指定する際に使うコードを、次の表に示す。 キー コード BackSpace {BACKSPACE} 又は {BS} Break {BREAK} CapsLock {CAPSLOCK} Clear {CLEAR}
Delete {DELETE} 又は {DEL}
↓ {DOWN}
End {END}
Enter (テンキー) {ENTER}
Enter ~
Esc {ESCAPE} 又は {ESC}
Help {HELP} Home {HOME} Ins {INSERT} ← {LEFT} NumLock {NUMLOCK} PageDown {PGDN} PageUp {PGUP} Return {RETURN} → {RIGHT} ScrollLock {SCROLLLOCK} Tab {TAB} ↑ {UP} F1 ~ F15 {F1} ~ {F15}
Control.KeyPress イベントに依るキー入力の検証
コントロールにフォーカスが有る時にキーが押されると発生するイベント
Private Sub Procedure_Name( _ ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs _ ) Handles Object.KeyPress
コントロールにフォーカスが有る時、ユーザーが、ANSI 文字キーを押して離した時に発生 する。 KeyPress イベントは、フォーカスが設定されて居るオブジェクトに対して発生する。フォームに対し てKeyPress イベントが発生するのは、フォーム上に有効なコントロールが表示されて居ないか、又は KeyPreview プロパティが True に設定されて居る場合丈で有る。 亦、KeyPress イベントが発生するのは、出力可能な総てのキーボード上の文字(アルファベット、数 字、記号、スペース等)、2 バイト文字、Ctrl キーとアルファベットか特殊キー(@、[、¥、]、&、=) の孰れかとの組み合わせ、Enter キー、Backspace キーが入力された時で有る。 KeyPress イベントプロシージャは、テキストボックスコントロールやコンボボックスコントロールに 対するユーザーの入力をチェックする時に便利で有る。入力された文字を1つ宛チェックしたり、入力 と同時に書式を設定する時等に使用する。 引数KeyPressEventArgs の KeyChar プロパティは参照に依り渡されるので、此の値を変更する事に 依り、実際に入力された文字と異なる文字をオブジェクトに渡す事が出来る。KeyChar プロパティの 値が変わると、表示される文字も変化する。猶、引数 KeyPressEventArgs の Handled プロパティを True に設定すると、キー操作が取り消され、オブジェクトは文字を受け取らない。 KeyChar プロパティの値は、文字で有り、キーコードと修飾子を組み合わせて生成した整数値で構成 されるKeys 列挙体のメンバ(定数)と比較するには、下記の様にする。
If e.KeyChar = Microsoft.VisualBasic.ChrW( Keys.Return ) Then
KeyPress イベントでは、KeyDown イベントや KeyUp イベントとは異なり、キーボードの物理的な状 態では無く、入力された文字が返される為、ファンクションキー、編集キー、移動キー、及び、此等の キーと併用キー(Shift、Ctrl、Alt)との組み合わせ等、KeyPress イベントでは認識する事が出来ない キー操作を処理する必要が有る場合は、KeyDown イベントや KeyUp イベントを使用する。
KeyPress イベントでは、大文字と小文字は異なるキーコード(文字)と仕て認識される。此れに対し KeyDown イベント、及び、KeyUp イベントでは、引数 KeyEventArgs の KeyCode と Shift の2つの プロパティを使用して大文字と小文字を区別する。KeyCode プロパティは、物理的なキー位置を示し、 A と a では同じ値に成る。一方、Shift プロパティは、Shift キーが同時に押されたか何うかを示すので KeyCode プロパティと組み合わせる事に依り A と a を区別する事が出来る。 フォームのKeyPreview プロパティが真に設定されて居る場合、KeyPress イベントは、フォーム上の コントロールよりも先に、フォームに依り認識される。KeyPreview プロパティは、全体に共通のキー ボード処理ルーチンを記述する場合に使用する。 機 能 書 式 解 説
Control.KeyDown イベントと Control.KeyUp イベントに依るキー入力の検証
コントロールにフォーカスが有る時にキーが押されると発生するイベント(KeyDown) コントロールにフォーカスが有る時にキーが離されると発生するイベント(KeyUp) Private Sub Procedure_Name( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms. KeyEventArgs _ ) Handles Object.KeyDown
Private Sub Procedure_Name( _ ByVal sender As System.Object, _
ByVal e As System.Windows.Forms. KeyEventArgs _ ) Handles Object.KeyUp
コントロールにフォーカスが有る時、ユーザーが、キーボードのキーを押した時、又は、離 した時に発生する。 フォーカスが設定されて居るオブジェクトでは、KeyDown イベント、及び、KeyUp イベントに依り総 てのキー操作を検出する事が出来る。フォームに対してKeyDown イベントや KeyUp イベントが発生 するのは、フォーム上に有効なコントロールが表示されて居ないか、又は、KeyPreview プロパティが True に設定されて居る場合丈で有る。 KeyDown イベント、及び、KeyUp イベントは、通常、次の様な目的で用いられる。 ・ファンクションキーやPageUp、PageDown キー等の特殊キーの検出 ・方向キー(←、→、↑、↓)の検出 ・標準の併用キー(Shift、Ctrl、Alt)と各キーの組み合わせの検出 ・テンキーと標準の数字キーとの区別 ・キーを押した時と離した時の応答の区別 KeyDown イベント、又は、KeyUp イベントは、其の時フォーカスが設定されて居るオブジェクトに対 して発生する。操作されたキーの文字を調べる場合は、KeyPress イベントを使用する。 KeyDown イベントと KeyUp イベントを使用すると、キーが押された時と離された時の両方で異なる 処理を記述する事が可能と成る。 KeyDown イベントと KeyUp イベントは、下記のキー操作では発生し無い。 ・フォーム上に、フォームのAcceptButton プロパティに設定されたボタンコントロールが有る場合の Enter キーの操作。 ・フォーム上に、フォームのCancelButton プロパティに設定されたボタンコントロールが有る場合の Esc キーの操作。 ・Tab キーの操作。 KeyCode プロパティの値は、キーコードで有り、キーコードと修飾子を組み合わせて生成した整数値で 構成されるKeys 列挙体のメンバ(定数)と比較するには、下記の様にする。
If e.KeyCode = Keys.Return Then
KeyDown イベント、及び、KeyUp イベントでは、引数 KeyEventArgs の KeyCode プロパティと Shift プロパティを使用して大文字と小文字を区別する事が出来る。KeyCode プロパティは、物理的なキー位 置を示し、A と a では同じ値に成る。一方、Shift プロパティは、Shift キーが同時に押されたか何うか を示すので、KeyCode プロパティと組み合わせる事に依り A と a を区別する事が出来る。
機 能
解 説 書 式
Form.KeyPreview プロパティに依るフォームでのキー入力の検証 フォームのキーボードイベントの有効性を設定するプロパティ object.KeyPreview [= 値] キーイベントがフォーカスを持つコントロールに渡される前に、フォームが其のイベントを 受け取るか何うかを示す値を取得・設定する。 オブジェクトには、対象と成るフォームを指定する。 値には、イベントを受け取る順番をブール式で指定する。 値をTrue に設定した場合は、先ずフォームがキーボードイベント(KeyPress、KeyDown、KeyUp の 各イベント)を受け取り、其の後でアクティブなコントロールがキーボードイベントを受け取る。亦 False に設定した場合は、フォームはキーボードイベントを受け取らず、アクティブなコントロールが キーボードイベントを受け取る。猶、値を省略した場合はFalse を指定したと看做される。 此のプロパティは、ユーザーからのキー入力に対する処理を個々のコントロールで行うのでは無く、フ ォームで一括して処理する様なアプリケーションを作成する時に使用する。 例えば、ファンクションキーを使うアプリケーションでは、キー入力に関するイベントを個々のコント ロールに対するイベントと仕て受け取るよりも、フォームで処理する方が効率的で有る。 フォームが表示されて居らず、其の中のコントロールが有効ならば、其のフォームが自動的に総てのキ ーボードイベントを受け取る。 キーボードイベントの処理をフォームレベル丈で行い、コントロールにキーボードイベントを送らない 様にするには、フォームの KeyPress イベントで引数 KeyPressEventArgs の Handled プロパティを True に設定するか、フォームの KeyDown イベントで引数 KeyEventArgs の SuppressKeyPress プロ パティをTrue に設定する。 ※ フォームがキーボードイベントを受け取る前に、其のキーボードイベントを受け取るコントロール が有る。例えば、フォーカスがボタンコントロールに有る時の Enter キー、及び、フォーカスがリ ストボックスコントロールに有る時の方向キー等が有る。 機 能 書 式 解 説 キーのリピート率と遅延率 キーボードの遅延率とは、オートリピート開始迄の時間を表す物で、ユーザーがキーを押してか らWindows がキーのリピートを開始する迄の時間を謂う。亦、リピート率とは、リピートの間 隔を表す物で、ユーザーがキーを押さえてから発生するキーイベントの頻度を謂う。 ゲーム等のリアルタイム入力が必要とされるアプリケーションに於いては、遅延が殆ど無く、リ ピートが非常に高速に行われる事が望ましいが、Visual Basic には、此れを直接制御する機能が 無い。
併し、Windows API(Application Programming Interface)を利用すれば、遅延率とリピート 率を実行時に変更する事が出来る。Windows API の SystemParameterInfo は、Windows の各 種パラメータを取得し、設定する事の出来る関数で有る。此の関数を利用すれば、遅延率やリピ ート率を取得して設定する事も可能で有る。但し、プログラム終了時には、必ず元の設定に戻し て置く事が推奨される。
■ 文字コード ■ 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 DE 16 32