<<< 前へ   TOP   次へ>>>


キーアサイン定義セクション

#KEY、又は、#KEYSETで始まるセクションです。指定したキーの動作をここで定義します。

ver 3.xxまで存在してきた単純キーはver 4.00で廃止されました


定義の仕方

定義のしかたは以下の通りです。

 #KEY 複合キーまたはイベントキー 複文

 #KEYSET = 文字列定数 複合キーまたはイベントキー 複文
      (文字列定数は60文字以内)

単純キー

ver 3.xxまで使用されていましたが、ver 4.00にて廃止されました。ver 4.00以降では複合キーを使用してください。

旧単純キー新規複合キー
K*SHIFT+OEM1 (JP KBDの場合)
K+SHIFT+PLUS
,COMMA
K-MINUS
K.PERIOD
K/OEM2
=SHIFT+MINUS (JP KBDの場合) / SHIFT+PLUS (US KBDの場合)
:OEM1
;PLUS (JP KBDの場合) / SHIFT+OEM1 (US KBDの場合)
<SHIFT+COMMA
>SHIFT+PERIOD
?SHIFT+OEM2
@OEM3 (JP KBDの場合)
[OEM4
\OEM5, OEM102(JP KBDの場合)
]OEM6
^OEM7 (JP KBDの場合)
_SHIFT+OEM102 (JP KBDの場合) / SHIFT+MINUS (US KBDの場合)
`SHIFT+OEM3
{SHIFT+OEM4
|SHIFT+OEM5
}SHIFT+OEM6
~SHIFT+OEM7 (JP KBDの場合) / SHIFT+OEM3 (US KBDの場合)
 例) #KEY K* { ShowMessage('Wowow','test'); } → #KEY SHIFT+OEM1 { ShowMessage('Wowow','test'); }
   #KEY \ { AboveDir(); } → #KEY OEM5 { AboveDir(); } 又は #KEY OEM102 { AboveDir(); }

複合キー

複合キーはSHIFTキー、CTRLキー、ALTキーとのコンビネーションが使用できるキーのことを指します。

BSバックスペース
TABタブ
CLEARJP & US n/a (ver 4.00で導入 *注意)
ENTERRETURN又はENTERキー
ESCエスケープキー
SPACEスペースキー
PRIORPageUpキー
NEXTPageDownキー
ENDENDキー
HOMEHOMEキー
LEFTカーソルキー左
UPカーソルキー上
RIGHTカーソルキー右
DOWNカーソルキー下
INSINSERTキー
DELDELETEキー
HELPHELPキー
K0~K9メインキーボードの0~9
A~ZA~Z
T0~T9テンキーの0~9
T*テンキーの*
T+テンキーの+
T-テンキーの-
T.テンキーの.
T/テンキーの/
F01~F24ファンクションキー(F13~F24はVer 4.00で導入)
MINUSJP -= / US -_ (ver 4.00で導入)
PLUSJP ;+ / US =+ (ver 4.00で導入)
COMMA,< (ver 4.00で導入)
PERIOD.> (ver 4.00で導入)
APPSAPPS (ver 4.00で導入)
OEM1JP :* / US :; (ver 4.00で導入)
OEM2/? (ver 4.00で導入)
OEM3JP @` / US `~ (ver 4.00で導入)
OEM4[{ (ver 4.00で導入)
OEM5\| (ver 4.00で導入)
OEM6]} (ver 4.00で導入)
OEM7JP ^~ / US '" (ver 4.00で導入)
OEM8JP & US n/a (ver 4.00で導入 *注意)
OEM102JP \_ / US n/a (ver 4.00で導入)
LCLICKマウスの左ボタンクリック
LDBLCLICKマウスの左ボタンダブルクリック
LDOWNマウスの左ボタンのダウン
MCLICKマウスの中ボタンクリック
MDBLCLICKマウスの中ボタンダブルクリック
MDOWNマウスの中ボタンのダウン
RCLICKマウスの右ボタンクリック
RDBLCLICKマウスの右ボタンダブルクリック
RDOWNマウスの右ボタンのダウン
X1CLICKマウスの第4ボタンクリック
X1DBLCLICKマウスの第4ボタンダブルクリック
X1DOWNマウスの第4ボタンのダウン
X2CLICKマウスの第5ボタンクリック
X2DBLCLICKマウスの第5ボタンダブルクリック
X2DOWNマウスの第5ボタンのダウン
WHEELUPWHEELMOUSEで上に回転
WHEELDOWNWHEELMOUSEで下に回転
WHEELLEFTWHEELMOUSEで左移動
WHEELRIGHTWHEELMOUSEで右移動

これらのキーと、SHIFT+ CTRL+ ALT+を組み合わせて使用します。

 例) #KEY T1 { ChDir('A:'); }
   #KEY SHIFT+D { DustBoxEx(); }
   #KEY ALT+CTRL+Q { QuitSASF(0); }

なお、キーの組み合わせによっては、定義はできるが実際には使用できないものがあります。SHIFT+ESCとかCTRL+ESC、ALT+TAB、ALT+SHIFT+TABなどのOSで予約されているものなどがそれにあたります。また作者の環境ではCTRL+SHIFT+(ALT+)F01、SHIFT+T0~T9もだめです。CTRL+SHIFT+S,+W,+Xもだめです。
CLICKおよびLDOWNを使用する場合はSASF.INIの[CONFIG]セクションのUseLClickを1にしてください。
!!!注意!!!
なお、上記設定を行った場合、従来のようにLCLICKにてフォーカスが移動しません!! フォーカスの移動やカーソルの移動もSTLにて記述することになります。
!!!注意!!!
xDOWN、xCLICK、xDBLCLICKの発生順位はxDOWN -> xCLICK -> xDBLCLICKです。手前の動作で使用者に入力を促すようなダイアログ等と表示させると、次の動作は実行することができませんので注意してください。
!!!注意!!!
使用しているマウスユーティリティによっては、WHEELLEFTやWHEELRIGHTの挙動がおかしくなる場合があります。(例:LogiCoolのSetPointが常駐していると、WHEELLEFT/RIGHTが1クリック辺り2回呼ばれる)
!!!注意!!!
CLEARキーに関して、JPキーボードやUSキーボードでは普通は入力できないと思われます。Realforce connectなどでカスタマイズすると使えたりします。
!!!注意!!!
OEM8キーに関して、JPキーボードやUSキーボードでは普通は入力できないと思われます。UKキーボードやFRキーボードーで使われるようです。


イベントキー

イベントキーは上記のキーとは違い、主にマウスによって引き起こされるアクションを定義します。

ResizeSASFのサイズが変更された
SplitMovedスプリッタを移動した
ActiveSASFがアクティブになった
DeactiveSASFが非アクティブになった
ChangeWindowアクティブな窓が変更された
MovedSASFが(CAPTION DRAGやSysCommandの移動で)移動し終わった
DPIChangedSASFが存在するデスクトップのDPIが変更された(Windows 8.1以降のみ有効)

なお、イベントキーはDPIChangedを除き、『マウス操作』でこれらの動作が引き起こされたときにのみ呼ばれます。後述するSTLの手続き(ChangeActiveWindowやMoveSplitなど)を呼び出して上記の変更が起きたときは『呼ばれない』ので注意してください。

Windows 8.1以降の所謂「Per-Monitor」によるデスクトップ毎のDPI差に関しては、ResizeイベントやMovedイベントが起こるタイミングではDPIChangedイベントは起動しません。必要ならばResizeやMovedの中でGetCurrentDPI手続きを呼び出して確認して下さい。


ジェスチャー

ジェスチャーは、マウスジェスチャーによって引き起こされるアクションを定義します。

ジェスチャーの記述は ボタン_移動方向 という形式で記述し、ALT・CTRL・SHIFTとは組み合わせては使えません

ボタン記号
左ボタン(使用不可)
中ボタンM
右ボタンR
第4ボタンX1
第5ボタンX2
移動方向記号
U
D
L
R

たとえば、右ボタンによる↓→というジェスチャーは R_DR と記述します。

 例)
  #KEY R_DR { ... }
  #KEYSET='grph' X1_RLR { ... }

なお、移動方向の組み合わせに上限はありませんが、多くても4~5くらいにしておいた方がいいと思われます。


KEYSET

#KEYSETは、後述するプレビューキーセクションとChangeKeySet手続きとを併用することで、1つのキーに対する動作の定義を複数規定するために使用します。

 例)
  #KEY U { ... }           .... (1)
  #KEYSET='SetName' U { ... }    .... (2)

(1)は、デフォルトで使用されるキーの定義となります。
(2)は、「#PREKEYセクションの中でChangeKeySet手続きを使用する」ことで、デフォルトのキー定義の代わりに使用できるようになります。

 例)
  #PREKEY
  {
    var #chk;
    CheckVMode(#chk);
    IF (#chk==1) THEN {
      ChangeKeySet('SetName'); // ここで使用するキー定義を変更
    };
  }

ChangeKeySetに渡す文字列は、#KEYSET=の次に指定した文字列を渡します。この文字列のことを「定義セット名」と呼びます。定義セット名は、大文字・小文字を区別しません。定義セット名の長さは60文字までです。
!!!重要!!!
ChangeKeySetによる変更は、そのキーの実行が終了した時点で無効になります。


KEYSET="all"

#KEYSET='ALL'で指定されたKEYSETは、全てのキー定義セットに共通なものとして扱われます。ただし、他のキー定義セットと'ALL'で同じキー定義があった場合は、他のキー定義の方が有効となります。


KEYSET="default"

#KEYSET='DEFAULT' は #KEY と同等になります。


<<< 前へ   TOP   次へ>>>