iskeydown( n1 ) 関数(Ver8.22対応版)
目次関数− iskeydown( n1 ) 関数
 指定されたキーの状態を取得する関数です。
 n1にキーコードを入れて呼び出すと、そのキーが押されている場合は 1、そうでない場合は 0 を返します。
 主なキーコードは以下の通りです。このキーコードは、inputcharが返す値とは違う値なので注意してください。

Shift   0x10

Ctrl   0x11

Alt   0x12

  0x25

  0x26

  0x27

  0x28

0〜9   0x30〜0x39

A〜Z   0x41〜0x5A

 上記にないキーコードは、自分で調べてください。→調べるマクロ
 実はこの関数は、WindowsのAPIであるGetKeyState()を呼び出しているだけです。開発者の方は、APIのヘルプの仮想キーコードの一覧を見るといいです。

 この関数を利用すれば、キー割り当てで、たくさんのキーに同じマクロを割り当ててもマクロファイル内で分岐する処理が可能になります。
 たとえば、Ctrl+上,下,左,右のキーに全て「マクロ1」を割り当てます。そして、「マクロ1」にはtest.macを登録します。そして、test.mac内部は、
if( iskeydown(0x25) ) { 「←」の処理 }
if( iskeydown(0x26) ) { 「↑」の処理 }
if( iskeydown(0x27) ) { 「→」の処理 }
if( iskeydown(0x28) ) { 「↓」の処理 }
 というふうにすれば、Ctrl + 矢印キー が押されたときの処理は、すべてtest.macが管理できることになります。

 注意:マクロ起動直後のキー状態が取得できるのは、マクロ実行開始から1秒以内です。
 また、1秒以内であっても以下の関数or文を呼んだ後では起動直後のキー状態は取得できません。
 keypressed, ddewaitadvice, localgrep, runsync, menu系文

 第2パラメータで、取得する方法を指定できます。(V6.00以降)
 第2パラメータに 0 を指定すると、従来通りの動作です。1 を指定すると、キーのトグル状態を取得できます。
 CapsLockの状態を取得するには、以下のようにします。

if( iskeydown( 0x14, 1 ) ) { 「CapsLock」が有効のときの処理 }

参照: inputchar  keypressed


戻る