Norichika Umeda @Norioh

********************************************************************************
KeePass Help Center の Auto-Type を個人用に要訳した。
常用設定もいずれまとめたい。

2011/09/05 新規作成

公式当該ページ: http://keepass.info/help/base/autotype.html

補記:執筆時点での最新版は 2.16 と 1.20

********************************************************************************
自動入力
********************************************************************************

他のアプリケーション上で自動キー入力を行う素敵な機能。

********************************************************************************
●基本的な自動入力の情報
●自動入力の実行
 ・コンテキストメニュー>コマンド「自動入力の実行」(又はそのショートカット)
 ・グローバル自動入力のホットキー(全エントリ対象のショートカットキー)
●自動入力シークエンスとターゲットウィンドウの関連付け
 ・自動入力のキーストロークシークエンス
 ・ターゲットウィンドウのフィルタ処理
 ・既定の標準自動入力シークエンスを変更
●使用例
********************************************************************************


********************************************************************************
●基本的な自動入力の情報
********************************************************************************

KeePass は、現在開いているウィンドウ(ブラウザ、ログインダイアログ、等々)への自動入力機能を備えているが、その為には、自動入力の対象と内容を設定しておく必要がある。

規定の標準自動入力シークエンスは以下の通り。

{USERNAME}{TAB}{PASSWORD}{ENTER}

これは一般的なログオンシーンでの「ユーザ名」「パスワード」を入力と「ログオン」ボタンで構成されるウィンドウ等に有効。
当該ウィンドウ(ダイアログ等)で「ユーザ名」入力欄をクリックした後、自動入力を実行すれば以下の動作を示す。

ユーザ名入力>Tab押下>パスワード入力>Enter押下

TAN エントリの場合、標準シークエンスは、{PASSWORD}。
ターゲットウィンドウに TAN がタイプされるのみで Enter キーは押されない。
※TAN とは一度だけ有効な使い捨てのパスワード(100個とかの使い捨てパスワード群が事前に知らされ、通常は使い切る前に新たなパスワード群が配布される)

----------------------------------------------------------------------
KeePass 1.x
----------------------------------------------------------------------

備考欄に"Auto-Type:"に続けて自動入力シークエンスを定義する。
"Auto-Type:"の付かない行は単なるメモとして利用できる。

備考欄記載例**********************************************************

何でもメモできる。
例えば電子メール:[email protected]

自動入力項目行の例は以下のとおり
Auto-Type: {USERNAME}{TAB}{TAB}固定文字列{TAB}{PASSWORD}{ENTER}

自動入力項目行の後にもメモは可能。

備考欄記載例以上******************************************************

最も重要な事は、"Auto-Type:"に続けて、1行で自動入力シークエンス記載する事。

2つ以上の自動入力シークエンス定義行は、最上行が使用される。


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------

複数の自動入力設定を、エントリのダブルクリック等で表示される [エントリの編集] ダイアログ> [自動入力] タブから行える。
規定の標準自動入力シークエンスとカスタムシークエンスが選択可能。

このタブには、2つの定義を利用するセキュリティ強化チェックボックス有り。

規定の標準自動入力シークエンスで対応できない場合、その対象毎に様々な自動入力シークエンスをカスタム指定できる。
例えば、標準入力で対応できない「ログイン時にチェックボックスのチェックが必要」といった状況に応じて、そこで要求されるキー操作をカスタマイズして登録できる。



********************************************************************************
●自動入力の実行
********************************************************************************

自動入力の実行には3つの方法がある。

①エントリを右クリックして、コンテキストメニューの自動入力コマンド
②エントリを選択して Ctrl + V(①のショートカットキー)
③全エントリを対象とするショートカットキー(ホットキー)を使用


**********************************************************************
 ・①②指定エントリのコンテキストメニューから"自動入力の実行"
**********************************************************************

設定項目を最小限に出来る反面、対象となるエントリを選択する手間がかかる。

この場合の自動入力は、直前に開いていたウィンドウが対象。

自動入力シークエンスは、ウィンドウタイトルに依存。
ウィンドウタイトルと対応シークエンスの関連付けがなければ、標準シークエンスを使用。
関連付けが設定されている場合、最初に一致するものを使用。
関連付け設定がいずれも一致しなかった場合、標準シークエンスを使用。


**********************************************************************
 ・③自動入力のホットキー(全エントリ対象のショートカットキー)
**********************************************************************

これこそが KeePass の便利さを実感できる機能。

--------------------------------------------------
簡易例:
--------------------------------------------------

1.「メモ帳」というタイトルのにエントリにユーザ名とパスワードを設定して作成。
2.メモ帳を起動してホットキー「 LCtrl + Alt + A 」を押下。
3.メモ帳にユーザー名とパスワードが入力される。

エントリのタイトル「メモ帳」がメモ帳のウィンドウタイトルと照合され、標準の自動入力シークエンスが入力される。


--------------------------------------------------
詳細例:
--------------------------------------------------

KeePass 全体で有効な自動入力用ショートカットキー(ホットキー)が登録されている。
これには、エントリを選択する必要が無いというメリットがある。登録済自動入力を受け取るターゲットウィンドウが開いている場合、そのままホットキーを押せば良い。

規定の自動入力ホットキーは「 LCtrl + Alt + A 」(左 Ctrl キーと Alt キー、A キーを同時に押して保持し全てキーを離す)。
メニュー>ツール>オプション>統合タブ>グローバル自動入力、からホットキー変更可能で、グローバル自動入力のテキストボックスで希望するキーを押せば、そのキーが使用可能な場合にはテキストボックスに表示される。

ホットキーを押した場合、KeePass は、現在開いているウィンドウのタイトルを参照。
現在開いているデータベースから使用可能なエントリを検索。
該当する複数のエントリがある場合、選択ダイアログが表示される。
次の条件の1つ以上を満たすエントリは使用可能と判定される。

①エントリのタイトル(文字列)が、現在アクティブなウィンドウのタイトルに含まれる。
②エントリに現在アクティブなウィンドウのタイトルと一致するウィンドウ設定(及び対応シークエンスの関連付け)が有る。

①について:エントリのタイトルをウィンドウタイトル用のフィルタとして使用することにより、自動入力でのウィンドウ設定作業が殆ど不要となる。
自動入力したいウィンドウタイトルに、エントリタイトルが含まれている事を確認すれば良い。
もちろん、これで対応できない場合にはウィンドウとシークエンスの関連付け設定が必要となる。
(Web サイトなどで、「ようこそ」といった極一般的なタイトルが付されているような場合)


----------------------------------------------------------------------
KeePass 1.x
----------------------------------------------------------------------

ウィンドウ・シークエンスの関連付けは、エントリの備考欄で設定。

備考欄記載例************************************************

何でもメモできる。
例えば電子メール:[email protected]

※自動入力内容及び対象ウィンドウ関連付けの例は以下のとおり
Auto-Type: {USERNAME}{TAB}{TAB}固定文字列{TAB}{PASSWORD}{ENTER}
Auto-Type-Window: どこぞのサイト - ようこそ*

自動入力項目行の後にもメモは可能。

備考欄記載例以上********************************************

この例では「どこぞのサイト - ようこそ」で始まるサイトのウィンドウを開いている場合、グローバル自動入力ホットキーで上記の自動入力を実行する。

一部のサイト、特に銀行などでは、マルチページログインスキームを使用出来る。"Auto-Type-Window:" を使用すれば、これらのサイトを自動化したり、KeePass エントリ一つで LAN ログインを標準化する事も出来る。

各エントリ毎に、必要な数だけ "Auto-Type-Window:" を定義出来る。

また、一つのシークエンスを複数のウィンドウに使用出来る。
これには、まず、通常のウィンドウ・シークエンス関連付けを定義、更にこれとは別に、末尾に "-" と "1" から始まる数字を付加したシークエンスを作成する。

例**********************************************************

Auto-Type: {USERNAME}{TAB}{PASSWORD}{ENTER}
Auto-Type-Window: Some Dialog - *
Auto-Type-1: {USERNAME}{ENTER}
Auto-Type-Window-1: * - Editor
Auto-Type-Window-1: * - Notepad
Auto-Type-Window-1: * - WordPad
Auto-Type-2: {PASSWORD}{ENTER}
Auto-Type-Window-2: Some Web Page - *

例以上******************************************************

例では、"Auto-Type-1" シークエンスは全ての "Auto-Type-Window-1" ウィンドウに使用される。

カスタムウィンドウ関連付けは、KeePass エントリのタイトルに優先する。
カスタムウィンドウ関連付けが設定された場合、それらがマッチ判定を担い、KeePass エントリのタイトルは無視される。


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------

カスタムウィンドウ・シークエンス関連付けは、各エントリの「自動入力」タブで指定する。

関連付けは KeePass エントリのタイトルを補完する。
設定された全ての関連付けのマッチ判定に KeePass エントリのタイトルと共に使用される。



********************************************************************************
 ・自動入力のキーストロークシークエンス
********************************************************************************

自動入力シークエンスは、プレースホルダや特殊キーコード等で構成される一行の文字列。

サポートされるプレースホルダの全リストは以下のリンク(英語)参照。

http://keepass.info/help/base/placeholders.html

特殊キーのコードは以下に列挙する。


既述のとおり、標準の自動入力は {USERNAME}{TAB}{PASSWORD}{ENTER}

この内 {USERNAME} と {PASSWORD} がプレースホルダ。

自動入力が実行時、エントリ中の対応するフィールド値が入力される。


{TAB} と {ENTER} が特殊キーコード。

これらは特定のキー操作を実行。
下向矢印、Shift、ESC、等の特殊キーを指定する唯一の方法。


自動入力シークエンスには({}で囲まない)単なる文字も含める事が出来る。
次の例は、自動入力シークエンスとして完全に有効。

{USERNAME}{TAB}Some text to be sent!{ENTER}


----------------------------------------------------------------------
KeePass 1.x
----------------------------------------------------------------------

特殊キーコードは大文字小文字を区別する。


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------

特殊キーコードは、大文字小文字を区別しない。


**********************************************************************
特殊キー
**********************************************************************

----------------------------------------------------------------------
特殊キー > コード
----------------------------------------------------------------------
Tab > {TAB}
Enter > {ENTER} 又は ~
上矢印 > {UP}
下矢印 > {DOWN}
左矢印 > {LEFT}
右矢印 > {RIGHT}
Insert > {INSERT} 又は {INS}
Delete > {DELETE} 又は {DEL}
Home > {HOME}
End > {END}
Page Up > {PGUP}
Page Down > {PGDN}
Backspace > {BACKSPACE}、{BS} 又は {BKSP}
Break > {BREAK}
Caps Lock > {CapsLockの}
Esc > {ESC}
Help > {HELP}
NumLock > {NUMLOCK}
Print Screen > {PRTSC}
Scroll Lock > {SCROLLLOCK}
F1 - F16 > {F1} - {F16}
Keypad +  > {ADD}
Keypad -  > {SUBTRACT}
Keypad *  > {MULTIPLY}
Keypad /  > {DIVIDE}
Sift > +
Ctrl > ^
Alt > %


----------------------------------------------------------------------
KeePass 1.x
----------------------------------------------------------------------
特殊キー > コード
----------------------------------------------------------------------
Space > {SPACE}
+ > {PLUS}
@ > {AT}
% > {PERCENT}
Apps > {APPS}
^  > {CARET}
~ > {TILDE}
{ 、}  > {LEFTBRACE}、{RIGHTBRACE}
( 、) > {LEFTPAREN}、{RIGHTPAREN}
WindowsKey 左、右 > {LWIN}、{RWIN}
WindowsKey > {WIN}({LWIN} に同じ)
WindowsKey > @
テンキー 0〜9 > {NUMPAD0} - {NUMPAD9}


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------
特殊キー > コード
----------------------------------------------------------------------
+ > {+}
^ > {^}
% > {%}
~ > {~}
( 、) > {(}、{)}
{ 、} > {{}、{}}


----------------------------------------------------------------------
コマンド構文のアクション
----------------------------------------------------------------------
コマンド構文 > アクション
----------------------------------------------------------------------
{DELAY X} > X ミリ秒遅延
{CLEARFIELD} > フォーカスのある単一行エディットコントロールの内容消去
{VKEY X} > 値 X の仮想キー送信


----------------------------------------------------------------------
KeePass 1.x
----------------------------------------------------------------------
コマンド構文 > アクション
----------------------------------------------------------------------
{BEEP X Y} > 周波数 X のビープ音を Y ミリ秒鳴らす
{DELAY=X} > X ミリ秒遅延
{APPACTIVATE WindowTitle} > ウィンドウのウィンドウタイトルをアクティブにする


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------
コマンド構文 > アクション
----------------------------------------------------------------------
{DELAY=X} > X ミリ秒遅延


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------

キーと特殊キーは、コード内に数字を付して、繰り返す事が出来る。
(プレースホルダやコマンドでは無い)

例){TAB 5} > Tab キー5回押下


**********************************************************************

**********************************************************************

----------------------------------------------------------------------
{TITLE}{TAB}{USERNAME}{TAB}{PASSWORD}{ENTER}
----------------------------------------------------------------------

「タイトル」>「タブ」>「ユーザ名」>「タブ」>「パスワード」>「ENTER」


----------------------------------------------------------------------
{TAB}{PASSWORD}{ENTER}
----------------------------------------------------------------------

「タブ」>「パスワード」>「ENTER」


----------------------------------------------------------------------
{USERNAME}{TAB}^v{ENTER}
----------------------------------------------------------------------

「ユーザ名」>「タブ」>「Ctrl + v」>「ENTER」
「Ctrl + v」は殆どの場合クリップボードのデータを貼り付ける


----------------------------------------------------------------------
チェックボックスのトグル(オン・オフ)
----------------------------------------------------------------------

{USERNAME}{TAB}{PASSWORD}{TAB} {TAB}{ENTER}

「ユーザ名」>「タブ」>「パスワード」>「タブ」>「チェックボックストグル」>「ENTER」

{}で囲まれていない半角スペース " " がチェックボックスの切替を行う。


----------------------------------------------------------------------
非デフォルトボタン押下
----------------------------------------------------------------------

非デフォルトボタン押下は、チェックボックストグルと同様に動作する。
注記:デフォルトでは {ENTER} を使用する事。


----------------------------------------------------------------------
ANSI 上位コード文字:
----------------------------------------------------------------------

自動入力機能は、126 から 255 の上位 ANSI 文字の送信をサポートする。
これは、何の問題もなく ©、@、などの特殊文字を送信できることを意味する。
>自動入力シークエンス定義に直接書き込む事が出来る。



********************************************************************************
 ・ターゲットウィンドウのフィルタ処理
********************************************************************************

KeePass の自動入力は対応すべきウィンドウをそのタイトルで判断する。
自動入力項目の設定において、ウィンドウタイトルにはワイルドカード(*)が使える。

ワイルドカード(*)の効果

STRING :"STRING"の文字列だけで構成される全てのウィンドウタイトルにマッチ。
STRING*:"STRING"で始まる全てのウィンドウタイトルにマッチ。
*STRING :"STRING"で終わる全てのウィンドウタイトルにマッチ。
*STRING*:"STRING"の文字列を含む全てのウィンドウタイトルにマッチ。

※ワイルドカードは0個以上の任意の文字列にマッチ。


----------------------------------------------------------------------
KeePass 1.x
----------------------------------------------------------------------

ワイルドカードは * のみサポート。
ワイルドカード(*)は文字列の途中にあってはならない。
ワイルドカード(*)ではない文字列は連続した1繋がりでなければならない。

例)「*Windows*エクスプローラ*」は、真ん中の"*"がワイルドカードではなくテキスト文字として扱われる。
よって、
「Windowsエクスプローラ」とはマッチせず、
「Windows*エクスプローラ」とマッチする。


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------

KeePass 2.06 以上では上記制限は無く、ワイルドカードは文字列途中にあっても良い。
ワイルドカードではない文字列が複数個あって良い。

例)「*Windows*エクスプローラ*」は「Windowsエクスプローラ」にマッチ。


更に、正規表現をサポート。(//で囲む)

例)「// B.?g ウィンドウ//」は「Big ウィンドウ」「Bug ウィンドウ」「Bg ウィンドウ」にマッチ。

正規表現ミニ覚え書き(オマケ)********************
[ ] キャラクタクラス
( ) パターンのグループ化
^ 行頭(またはキャラクタクラス内での補集合)
$ 行末
. 改行を除く任意の1文字
* 直前パターンの0回以上の繰り返し
+ 直前パターンの1回以上の繰り返し
? 直前パターンが0回または1回現れる
| パターンの論理和
\ エスケープ文字(エスケープシーケンス)
**************************************************

----------------------------------------------------------------------

ワイルドカードの使用で、自動入力の関連付けがブラウザに依存しないように出来る。
詳細は本頁最後部の使用例を参照。



********************************************************************************
 ・既定の標準自動入力シークエンスの変更
********************************************************************************

標準の自動入力シークエンス(カスタム指定しない時の設定)

{USERNAME}{TAB}{PASSWORD}{ENTER}

通常これを変更する必要は無い(カスタムウィンドウ・シークエンスを使用すれば良い)。
但し、セキュリティソフト等が KeePass の自動入力の度に許可を求めて来る等、例外的に有用な場合がある。


----------------------------------------------------------------------
KeePass 1.x
----------------------------------------------------------------------

メニュー>ツール>オプション>高度(タブ)>自動入力ボタン>自動入力の設定


----------------------------------------------------------------------
KeePass 2.x
----------------------------------------------------------------------

既定では、各エントリは所属するグループの自動入力シークエンスを継承する。
グループもまた、それら親グループの自動入力シークエンスを継承。
他全てのグループを含む最上位グループの自動入力シークエンスを変更した場合、全てのグループとエントリはそのシークエンスを使用する。

最上位グループを右クリック>グループを編集>自動入力タブ>標準の手順を上書き



********************************************************************************
●使用例
********************************************************************************

事例:ウェブサイトにログイン

この例ではログインページに必要事項を記入するグローバル自動入力のホットキーを使用。

仮定項目******************************************************************

・対象ページ(ウィンドウタイトル「○○テスト」)をブラウザで開いてある。
・KeePass に新エントリ作成済(タイトルに「テスト」、ユーザ名、パスワード任意で登録済)
・グローバル自動入力のホットキーは既定の LCtrl + Alt + A
・KeePass はデータベースのロック解除がされて、バックグラウンドで実行中。

仮定項目以上**************************************************************


自動入力実行>ログイン

ログインページに移動して、ユーザー名入力欄をクリック(これでユーザ名入力欄にフォーカスが当る)した後に、 LCtrl + Alt + A (ホットキー)押下。
これで KeePass がユーザー名とパスワードをそれぞれの入力欄に記入してログオン実行する。

以上の動作は、登録エントリのタイトル(文字列)が、対象ウィンドウのウィンドウタイトルに含まれているので、KeePass が自動でこのエントリを使用した結果。

ブラウザからは完全に独立して、且つ、特別な設定も無い一つのエントリで、複数のブラウザに対応できるメリットがわかっただろう。

エントリのタイトルでの照合ではなく、ウィンドウ・シークエンス関連付けを使用する場合は、ワイルドカードを使用して同様のブラウザ非依存効果を得る事が出来る。

テスト - KeePass - *

このフィルタは複数のブラウザに対応する。

テスト - KeePass - Internet Explorer
テスト - KeePass - Firefox
等々
10,729views