FAQ

Q&A

行きづまる可能性が考えられることなどについて記載しています。

通常バージョンを利用している場合

現在お使いのバージョンのDresskeyフォルダにあるAppIniフォルダが重要です。ここにすべてのアプリケーション設定が保存されています。

ルートディレクトリにある Dresskey.ini には、設定ウィンドウ内の「修飾キー設定」と「ホットキー設定」の設定のみが保存されています。

そのため、そのファイルを上書きしないことにのみ注意してください。

[ アップデート方法 ]
最新バージョンのEXEファイルを上書きするだけ

もしこれだけではうまく動作しなかった場合は、最新バージョンの Dresskey.ini ファイルとAppIniフォルダへ、現在使用しているバージョンのそれらのファイルやフォルダを上書きしてください。これだけで設定は引き継がれます。

AHKスクリプトバージョンを利用している場合

通常のEXEバージョンと異なり、メインの Dresskey.ahk を上書きするだけのアップデートではありません。

最新バージョンの Dresskey.ini ファイルと AppIni フォルダへと、現在お使いのバージョンのそれらのファイルやフォルダを上書きする形でアップデートしてください。

つまり、設定情報が保存されているIniファイルを上書きするだけでアップデートできます。

使用しているテンキーが通常のテンキーとは異なったキーを送信している可能性があります。

その場合はEditボタンからキー名をそれぞれ手動で登録し直し、使用しているテンキーにあったキー名に指定し直してください。

このように通常とは異なったキーを送信する外部テンキーはElecom製テンキーに時折見られるようです。また、NumpadEnterキーのみEnterキーを送信するようになっているテンキーがあることも確認しています。

使用するテンキーに合わせてキー名を登録すれば、そのような特殊なテンキーでもカスタマイズを有効にさせることができます。

当たり前ですが、悪さはしませんのでスルーしてください。

Dresskeyが起動できなかったり、起動の際に毎度セキュリティソフトが反応してしまう場合は、お使いのセキュリティソフトでDresskeyを例外に設定してください。

こちらの環境では、AHKスクリプトバージョンの利用では問題なく、コンパイルして実行ファイルにするとセキュリティソフトに反応する場合があることを確認しています。

設定を確認し直してみてください

Dresskeyでは、テンキー上のTab,BSとキーボード上のTab,BSとの区別がつきません。つまり、それらのキーをDresskeyでカスタマイズするとキーボード上のキーにも同様の効果が表れることになります。

ただし、設定したアプリケーション上でしか影響は出ません。

もしそのアプリケーション上でもキーボード上のTab,BSを通常の通りに使いたいのなら、設定ウィンドウで空欄にしておく必要があります。

キーボードのTab,BSを使いたいと同時に、テンキー上のTab,BSも使いたい場合は、モードの切り替えや2キー同時押しを利用してください。

該当のアプリケーションウィンドウでないにも関わらずTab,BSが効かなくなったという場合は、全てのウィンドウ条件を見なおしてください。いずれかのウィンドウ条件にいつのまにか合致してしまっている可能性が考えられます。

これらの点に注意を払えば、テンキーのTab,BSのカスタマイズも問題なく使えるため、以上を正しく認識した上で有効に使いましょう。

ウィンドウ条件をよく確認してみてください。ahk_classですか? ahk_exeですか? それともウィンドウタイトルですか? まずよく確認してください。

間違いなくウィンドウ条件に合致しているにも関わらずキーカスタマイズが有効にならない場合は、ウィンドウ条件の重複が考えられます。

他のアプリケーション設定のウィンドウ条件にも合致してしまい、その別の設定のキーカスタマイズが効いている可能性があります。

他のウィンドウ条件に合致していないかよく確かめてください。

仮に複数のウィンドウ条件に合致する際は、Dresskey設定画面でより下に表示されるアプリケーション設定のキーカスタマイズが優先されます。

まずはその頻度を確認してください。

稀になる程度であれば、AutoHotkey自体の仕様の可能性があります。AutoHotkeyではそのような押し下げ状態が不自然に固定されていしまう現象が稀に起こることが、一般的によく確認されています。

これに対して確実に防ぐ方法は基本的にありません。

このように押し下げ状態になった場合は、そのキーをもう一度押してみることで多くの場合は解消されます。

それでも解消されない場合は、Dresskeyを再読み込みしてください。タスクトレイを右クリックしてそこから再読み込みできます。

もし再現性が非常に高い場合はキー指定の方法にミスがある可能性が考えられます。記述に誤りはないかよく確認してみてください。

自動エスケープが働いたことが考えられます。

これはAutoHotkeyで適切に解釈できるようにするために自動で修正するDresskeyの機能です。

詳しくは「キーの指定」をご覧ください。

ハードウェアレベルの制限の可能性があります。

3キー4キーあるいはそれ以上の物理キーの同時押しはうまくいかない場合があることを確認しています。

物理キーのハードウェア的問題で、認識できるキー数に限界がある場合があるからです。3キー同時押しはできる場合が多いですが、できないものもあるようです。

例:以下の2つは同一のテンキー。キーの同時押しの組み合わせ結果の違い。
1.テンキー1 & テンキー2 & テンキー3 → 正しく動作する
2.テンキー1 & テンキー3 & テンキー5 → 正しく動作しない

といったように、一つのテンキーでもキー毎に同時押し可能な条件が違います。

双方とも同じキー数にも関わらず、できる組み合わせとできない組み合わせがハードウェアレベルで異なる場合があります。これはテンキーに限らずキーボードでも同様の挙動をします。

このような可能不可能な同時押しキーの組み合わせは、テンキーによって異なるため一概にも言えません。もし複数物理キーの同時押しを試された際にうまくいかないよう場合は、別の物理キーに同様の設定をして試してみてください。もし別の物理キーならば上手くいく場合は、上記に挙げたような物的キーの同時押し制限の可能性が考えられます。

このようなハードウェアレベルでの制限の場合、ソフトウェア的に対応することはできません。

基本的にはNumLockオフ時のテンキーで使用することをおすすめしますが、NumLockオン時のテンキーで利用することも可能です。

ただし以下の点に注意してください。 NumLockがオン時のテンキーはNumLockオフ時とテンキーとは異なった動作をする点があります。Shift押し下げ状態では、例えNumLockがオンであっても、NumLockがオフの状態のテンキーとして認識されることです。

つまり、Shiftを押すことでNumLockオフ時のキーとして扱えるようにテンキーは構成されています。

もちろんNumLockを切り替えることなくShiftを利用することでカーソルキーなどを送信できる利便性のためなのですが、AHKを用いたDresskeyにおいては問題となります。

例を取って考えてみましょう。

テンキー0(Numpad0)に Ctrl-x、テンキー1(Numpad1)に Shift を設定していたとします。

このとき、テンキー1 を押している状態では、テンキー0 は Numpad0 ではなく NumpadIns として認識されます。

つまり、Shift が押し下げ状態のときには、テンキーの数字キーが別のカーソルキーに切り替わっている ということです。

このため、NumLockがオン時に動作するためには、NumLockオフ時でも動作するように設定しておく必要があります。そのため、DresskeyではNumLockがオン時に動作させる場合は、事実上NumLockの状態に関わらず動作するようになっています。

基本的にはこれで期待通りの動作をしますが、一部実現困難なことがあります。Shiftによってテンキーのキーが切り替えられているため、そのとき押し下げ状態が強制的に解除されてしまいます。

よってNumLockオン時では、NumLockオフ時利用と異なり以下の様な違いがあります。

通常のNumLockオフ時で利用する場合は以下の内容は関係しません。

Shift で修飾したキーを繰り返し送信する場合

・期待したように動かない手順

  1. テンキー0(Shift)を押し下げたままにする。
  2. テンキー1(a)を押す。すると Shift-a が送信される。
  3. テンキー2(b)を押す。すると Shift-b ではなく、b が送信されてしまう。

これは、テンキー1 を押して Shift-a を送信したときに Shift の押し下げ状態が強制的に解除されてしまうためです。

この場合は以下のようにキーを押し直す必要があります。

・期待したように動く手順

  1. テンキー0(Shift)を押し下げたままにする。
  2. テンキー1(a)を押す。すると Shift-a が送信される。
  3. テンキー0(Shift)を一度押し上げて、再び押し下げ直す。
  4. テンキー2(b)を押す。すると Shift-b が正しく送信される。

一度Shiftを押し直すという点に注目してください。

Ctrl-Shift-x のように2つ以上の修飾キーを使う場合

・期待したように動かない手順

  1. テンキー0(Shift)を押す下げたままにする。
  2. テンキー1(Ctrl)を押し下げたままにする。
  3. テンキー2(x)を押す。すると Ctrl-Shift-x ではなく、Ctrl-x が送信されてしまう。

これは、手順2でテンキー1(Ctrl)を押した時に Shift の押し下げ状態が強制的に解除されてしまうためです。

テンキー0(Shift)の次のキーを押した時点で Shift 押し下げが解除さてしまうということです。

・期待したように動く手順

  1. テンキー1(Ctrl)を押し下げたままにする。
  2. テンキー0(Shift)を押す下げたままにする。
  3. テンキー2(x)を押す。すると Ctrl-Shift-x が正しく送信される。

つまり、Ctrl を先に押して Shift を後に押すことで、Shift を押し下げた直後にテンキー2(x)を押すことができます。これによってShift の強制押し下げが間に挟まることを防げ、キーを正しく送信することができます。

以下に簡単にまとめておきましょう。

テンキーと Shift の特性という、限定的なシーンでの違いしかありません。
それ以外では全く同様の動作をしますが、NumLockオン時で利用する場合は違いを認識しておくとよいでしょう。

単純に¥(\)と入力しただけでは、キーボードの右上のそれと、右下のそれとを区別できません。

実際にこのキーを設定してみると、右上の¥(\)が送信されます。

これを区別するために、この右下のキーのみ特別な記述をする必要があります。仮想キーコードやスキャンコードを指定することで明確にキーを指定できます。

右下の¥(\)を指定する際は、以下の3つのうちいずれかを記述します。

  • {vkE2sc073}
  • {vkE2}
  • {sc073}