AutoHotkey入門 学習シリーズ(17) 二度押しを使ってショートカットキーを増やす

※このページに飛んでこられる方が(なぜか)多いのですが,このページはAutoHotkeyが分からなければちんぷんかんぷんかと思います.お時間のある方はここから学習を始められます.

あるキーを二度押すと,別の入力が起こる···そんなダブルタップにあこがれたことはありませんか?ダブルクリックを,キーボードで実現できます.

0.2秒以内に二度押しすることで,特定の機能が起こるようなスクリプトを組んでいきましょう.

今日のCan-do

二度押し用のスクリプトをKeywaitを使うことで作成し,
一つのキーに二つの機能を割り当てる.

さて,今回使うCommandはKeywaitです.

Keywait, キー, 押すD/離すU T秒

たとえば,

Keywait, Esc, D T0.2

これを,If,そしてErrorLevelと組み合わせていきます.

ErrorLevelは,直前のコマンドが成功すれば0,失敗すれば1を出す,という実装された変数

(Built-in variable)です.なので···

Esc::
   Keywait, Esc, U ;ここで1回目のキーが押し上げられるのを待ちます
   Keywait, Esc, D T0.2 ;0.2秒待ちます.この間にEscが押されれば成功=0,失敗なら1がErrorLevelにはいります.
   If (ErrorLevel=1) ;直前のコマンド=Keywaitがタイムアウトで失敗=1なら
      {
      Send,{Esc}
      }
   else
      {
      Send, WinMinimizeAll
      }
   return

これで,Escを二回押すとすべて格納し,そうでなければ普通にEscキーを送る,という動作になります.

Shiftなどと行うときも同様で,二度押したいキーを利用します.

+PrintScreen:: ;Shift + PrintScreenです.
   Keywait, PrintScreen, U ;ここでPrintScrrenが押し上げられるのを待ちます
   Keywait, PrintScreen, D T0.2
   If (ErrorLevel=1) ;直前のコマンド=Keywaitがタイムアウトで失敗=1であれば,
      {
      Send,{PrintScreen}
      }
   else
      {
      Volume_Mute ;音をミュートする
      }
   return

一つのキーに二種類のファンクションを当てはめられるわけです.Ifをさらに増やせば,トリプルタップもできるんじゃないかと思います.

これでファンクションキーを2倍以上の量に増やせます.ショートカットキーを覚えられなくなってきましたか?笑

参考:

AutoHotKeyで、キー二連打にいろいろ割り当ててみた。2 : 名称未定っぽい。 : http://poimono.exblog.jp/16065477/

AutoHotkey入門 学習シリーズ(17) 二度押しを使ってショートカットキーを増やす” への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください