[Windowsロゴキー]+[何らかのキー]による誤作動が多すぎるので、[Windowsロゴキー]を長押ししなければ[Windowsロゴキー]が機能しないようにした|[Windowsロゴキー]+[何らかのキー]によるショートカットキーは無効になります

[AutoHotKey]1つのキーで3つの機能!長押しや2度押しに機能を割り当てる

  • Windowsメニューを出す→[Windowsロゴキー]の長押し1回
  • Windowsメニューを消す→[Windowsロゴキー]の長押し1回
LWin::                           ;LWinキーを押した時
KeyWait, LWin, T0.3       ;LWinキーが離されるのを0.3秒待つ
If (ErrorLevel){               ;ErrorLevelが1であれば、
    Send,{LWin}
    KeyWait, LWin            ;LWinが離されるのを待つ
    return
}else{                            ;そうでなければ、
    Send,{Ctrl down}{c}{Ctrl up}
    KeyWait, LWin            ;LWinが離されるのを待つ
    return
}

【PC操作とデータ整理】キーボードの[キー割当〔キーバインド〕の変更]と[マウスのクリックをキーボードで代行するソフト]|東プレ・リアルフォースの[テンキーレスモデル]をメインとし、ジェイダブルシステムの[35キー]の[長押し対応品]である[プログラマブルキーボード]を[外付けテンキーとしても使う] · ゆきんこの勉強法

; AutoHotkeyはWindows専用であり、Linux・macOSには非対応である。
; AutoHotkey.exe〔メイン実行ファイル〕とAutoHotkey.ahk〔デフォルトスクリプト〕の
; [AutoHotkey]というファイル名部分をリネームする場合は、
; 実行ファイルとスクリプトのベース名を必ず一致させる必要がある。
; 例:MyScript.exe と MyScript.ahk のように揃える。

; AutoHotkey.exeは、Windowsのログインセッションごとに
; 複数プロセスを起動できるが、
; 同一スクリプトの多重起動はデフォルトで排他制御され、
; 既存プロセスが優先され、新規プロセスは終了される。

; AutoHotkey.ahk〔スクリプトファイル〕は
; 文字コードを[UTF-8 with BOM:必須]、
; 改行コードを[CR+LF(Windows形式):推奨]で保存する。

; ■<a href="https://www.onlinemictest.com/ja/keyboard-test/" target="_blank" rel="nofollow">キーボードテスト – あなたのキーボードをテストしましょう</a><br>
; ●●●[AHK Quick Convertor V2]を使ってコードをコンバートしてある
; ■<a href="https://github.com/mmikeww/AHK-v2-script-converter?tab=readme-ov-file" target="_blank" rel="nofollow">GitHub - mmikeww/AHK-v2-script-converter: AHK v1 -> v2 script converter</a><br>
; 全角/半角|vkF3 または vkF4
; 変換|vk1C
; 無変換|vk1D
; カタカナ/ひらがな/ローマ字|vkF2
; windows|#
; Alt|!
; Ctrl|^
; Shift|+
; 左のモディファイアキーを使用(NT系専用)|<
; 右のモディファイアキーを使用(NT系専用)|>
; AutoHotkey 2.0:空白文字:\s = [ `t`r`n]
; AutoHotkey 2.0:空白文字以外:\S = [^ `t`r`n]


; グローバル変数は、最新のAutoHotkey 2.0以上では、何もしなくても、以下のように宣言するだけで常駐する
; global jpChars := "一-龯ぁ-ゖァ-ヶ0-9A-Za-z!-/:-@[-`{-~ 〜々〆〻「」『』【】《》〈〉“”‘’・…※"
; global Hankaku := "[!-~&&[^.?!]]"
global jpChars := "一-龯ぁ-んァ-ヶーA-Za-z0-9!-/:-@[-`{-~ 々〆〻「」『』【】《》〈〉“”‘’・…※〜"
global hankaku := "!-~"

; Shift + Alt + Tを押すと、Ctrl + Alt + 0〔更新時刻取得〕を押したことにする。
+!t::Send "^!0"

; Shift + Alt + Dを押すと、Ctrl + Alt + y〔Hugo実行〕を押したことにする。
+!d::Send "^!y"

; Shift + Alt + Cを押すと、Ctrl + Alt + 2〔LibreOffice Calc〕を押したことにする。
+!c::Send "^!2"

; Shift + Alt + Bを押すと、Ctrl + Alt + x〔BunBackup〕を押したことにする。
+!b::Send "^!x"

; Shift + Alt + Gを押すと、Ctrl + Alt + 7〔BlueGriffon〕を押したことにする。
+!g::Send "^!7"

; Shift + Alt + Sを押すと、Ctrl + Alt + 5〔サクラエディタでファイルを開く〕を押したことにする。
+!s::Send "^!5"

; Shift + Ctrl + 7 でバッククォート〔AutoHotkeyのエスケープ文字〕を入力
+^7::Send "{text}``"

; AutoHotkey v2.0で Shift + Alt + M を押した際にサクラエディタでのソートの後にマージする
+!m::
{
    Send "{Ctrl Down}"  ; Ctrlキーを押す
    Send "v"            ; vキーを入力
    Send "a"            ; aキーを入力
    Send "{Ctrl Up}"    ; Ctrlキーを離す
    
    Send "{Alt Down}"   ; Altキーを押す
    Send "a"            ; aキーを入力
    Send "m"            ; mキーを入力
    Send "{Alt Up}"     ; Altキーを離す
    
    Send "{Enter}"      ; Enterキーを入力
    
    Send "{Ctrl Down}"  ; Ctrlキーを押す
    Send "a"            ; aキーを入力
    Send "c"            ; cキーを入力
    Send "{Ctrl Up}"    ; Ctrlキーを離す
}


; ●●●Windowsキー + w キーを同時押ししてWZ Editor 10を起動する
#UseHook	; UseHookをOnにした状態で使用
#w::
{
key := "w"
ErrorLevel := !KeyWait(key, "T0.3")
If(ErrorLevel){	; 長押しした場合
	Run("C:\Program Files (x86)\sakura\sakura.exe C:\Users\" A_UserName "\Documents\note-archive.html")
	ErrorLevel := !KeyWait(key)
	return
	}
ErrorLevel := !KeyWait(key, "D, T0.2")
If(!ErrorLevel){	; 2度押しした場合
	Run("C:\Program Files (x86)\sakura\sakura.exe C:\Users\" A_UserName "\Documents\bookmarkstoday.html")
	ErrorLevel := !KeyWait(key)
	return
}else{	; 短押しした場合
	Run("C:\Program Files\WZ EDITOR 10\wzeditor.exe")
	ErrorLevel := !KeyWait(key)
	return
	}
}

; ●●●Windowsキー + s キーを同時押ししてサクラエディターを起動する
#UseHook	; UseHookをOnにした状態で使用
#s::
{
key := "s"
ErrorLevel := !KeyWait(key, "T0.3")
If(ErrorLevel){	; 長押しした場合
	Run("C:\Program Files (x86)\sakura\sakura.exe C:\Users\" A_UserName "\Documents\note-archive.html")
	ErrorLevel := !KeyWait(key)
	return
	}
ErrorLevel := !KeyWait(key, "D, T0.2")
If(!ErrorLevel){	; 2度押しした場合
	Run("C:\Program Files (x86)\sakura\sakura.exe C:\Users\" A_UserName "\Documents\bookmarkstoday.html")
	ErrorLevel := !KeyWait(key)
	return
}else{	; 短押しした場合
	Run("C:\Program Files (x86)\sakura\sakura.exe")
	ErrorLevel := !KeyWait(key)
	return
	}
}

^Tab::
{
    if (KeyWait("c", "D T0.5") = 0)	; cキーが0.5秒以内に押されないのを待つ
    {
	; cキーが押された場合
        Send "^a"	; すべてを選択
        Send "^v"	; クリップボードの内容を貼り付ける
        Send "{Enter}"	; [Enter]
    }
    else
    {
	; cキーが押されなかった場合
        Send "^a"	; すべてを選択
        Send "^v"	; クリップボードの内容を貼り付ける
    }
}

^+Tab::
{
    if (KeyWait("c", "D T0.5") = 0)	; cキーが0.5秒以内に押されないのを待つ
    {
	; cキーが押された場合
        Send "^a"	; すべてを選択
        Send "^v"	; クリップボードの内容を貼り付ける
    }
    else
    {
	; cキーが押されなかった場合
        Send "^a"	; すべてを選択
        Send "^v"	; クリップボードの内容を貼り付ける
    }
}

; ●●●[Shift]+[Tab]で全選択貼り付け
+Tab::
{
        Send "^a"	; すべてを選択
        Send "^v"	; クリップボードの内容を貼り付ける
}

; ●●●[Alt]+[z]で読点[、]
!z::
{
        Send ","	; 、
        Send "{Space}"	; 変換
        Sleep(80)		; 間をあける
        Send "{Enter}"	; 確定
}

; ●●●[Alt]+[x]で句点[。]
!x::
{
        Send "."	; 、
        Send "{Space}"	; 変換
        Sleep(80)		; 間をあける
        Send "{Enter}"	; 確定
}

; ●●●[Ctrl]+[無変換]で全選択貼り付け
^vk1D::
{
        Send "^a"	; すべてを選択
        Send "^v"	; クリップボードの内容を貼り付ける
}

; ●●●[Alt]+[無変換vk1D]でハイライト箇所のワードでGoogle検索
!vk1D::
{
    Send("^c")
    Sleep(450)
    ClipboardText := A_Clipboard
    if (ClipboardText != "")
    {
        Run("https://www.google.com/search?q=" ClipboardText)
    }
return
}

; ●●●[Alt]+[Space]でハイライト箇所のワードでGoogle検索
!Space::
{
    Send("^c")
    Sleep(450)
    ClipboardText := A_Clipboard
    if (ClipboardText != "")
    {
        Run("https://jp.mercari.com/search?keyword=" ClipboardText)
    }
return
}

; ●●●[無変換vk1D]+[Space]でハイライト箇所のワードでAmazon検索
vk1D & Space::
{
    Send("^c")
    Sleep(450)
    ClipboardText := A_Clipboard
    if (ClipboardText != "")
    {
        Run("https://www.amazon.co.jp/s?k=" ClipboardText)
    }
return
}

; ●●●[無変換vk1D]単独はマウス左クリック
vk1D::
{
    MouseClick("left", , , , , "down")
    KeyWait("vk1D")
    MouseClick("left", , , , , "up")
return
}

; ●●●[Ctrl]+[Back Space]で[ブラウザ戻る]
^Backspace::
{
Send("{Browser_Back}")
return
}

; ●●●[Shift]+[Ctrl]+[Back Space]で[ブラウザ進む]
+^Backspace::
{
Send("{Browser_Forward}")
return
}

; ●●●ScrollLock 音声リーダー[音声および動画ファイルの自動文字起こし]の余計な空白などを除去し整える
; ●●●http://www7a.biglobe.ne.jp/~khh/ss/ss012.html
; ●●●http://ahkwiki.net/RegEx
ScrollLock::
{
A_Clipboard := ""
Send("^a")
Send("^x")
Errorlevel := !ClipWait(1)
if (ErrorLevel != 0)
{
return
}
; RegExReplaceの置換先の改行は[`r`n]
; 初期処理:クリップボードから読み込み
a01 := A_Clipboard

; 制御文字削除処理〔絵文字関連含む〕
a01 := RegExReplace(a01, "[\x00-\x08\x0B-\x1F\x7F-\x9F\x{200B}-\x{200F}\x{202A}-\x{202E}\x{2060}-\x{206F}\x{FE00}-\x{FE0F}\x{FEFF}]", "")


; 配列置換ループ
patterns := [
    ["\x{007E}", "~"],	; ~ 半角チルダ
    ["\x{02DC}", "~"],	; ˜ スモールチルダ
    ["\x{02F7}", "~"],	; ˷ ローチルダ
    ["\x{2053}", "~"],	; ⁓ スウォングダッシュ
    ["\x{223C}", "~"],	; ∼ チルダ演算子
    ["\x{223D}", "~"],	; ∽ リバースチルダ
    ["\x{223E}", "~"],	; ∾ インバーテッドレイジーS
    ["\x{223F}", "~"],	; ∿ サインウェーブ
    ["\x{3030}", "~"],	; 〰 ウェービーダッシュ
    ["\x{1FC0}", "~"],	; ῀ ギリシャ語周囲記号
    ["\x{301C}", "~"],	; 〜 波ダッシュ〔macOSでは から 変換で波ダッシュ(U+301C)が生成される〕
    ["( *)~( *)", "~"],	; ~ 全角チルダ〔Windowsでは から 変換で波ダッシュ(U+FF5E)が生成される〕の前後の半角スペースを除去
    
    ["", ""]	; 【エンドマーク】:
]
for each, pattern in patterns
    a01 := RegExReplace(a01, pattern[1], pattern[2])


; ●●●[全角+半角]などの間の0個以上の半角スペースを削除・処理
a01 := jpChars_Hankaku_Space(a01)

; ●●●[全角+半角]などの間の0個以上の半角スペースを削除・関数定義

; jpChars_Hankaku_Space(str) {
;     ; 正規表現パターンの最適化
;     str := RegExReplace(str, "U)([" jpChars "]) +([" Hankaku "])", "$1$2")	; 全角+半角の間の1個以上の半角スペースを削除
;     str := RegExReplace(str, "U)([" jpChars "]) +([" jpChars "])", "$1$2")	; 全角+全角の間の1個以上の半角スペースを削除
;     str := RegExReplace(str, "U)([" Hankaku "]) +([" jpChars "])", "$1$2")	; 半角+全角の間の1個以上の半角スペースを削除
;     str := RegExReplace(str, "m)^-+$", "")	; 【行頭】:行頭の[-]しかない行を削除
;     
;     ; 改行正規化の強化
;     str := RegExReplace(str, "(\r\n|\n|\r)+", "`r`n")
;     
;     Return str
; }

jpChars_Hankaku_Space(str) {
    global jpChars, hankaku
    ; 全角+半角
    str := RegExReplace(str, "([" jpChars "]) +([" hankaku "])", "$1$2")
    ; 全角+全角
    str := RegExReplace(str, "([" jpChars "]) +([" jpChars "])", "$1$2")
    ; 半角+全角
    str := RegExReplace(str, "([" hankaku "]) +([" jpChars "])", "$1$2")
    ; 箇条書きハイフン+全角
    str := RegExReplace(str, "m)^( *)- *([" jpChars "])", "$1- $2")
    ; 箇条書き数字+全角
    str := RegExReplace(str, "m)^( *)(\d+\.) *([" jpChars "])", "$1$2 $3")
    ; 改行直前の半角スペース
    str := RegExReplace(str, " +(?=\r\n|\n|\r|$)", "")
    ; 改行正規化
    str := RegExReplace(str, "(\r\n|\n|\r)+", "`r`n")
    return str
}


; ●●●カッコ整理・処理
a01 := ParenthesisTrimming(a01)

; ●●●カッコ整理・関数定義
ParenthesisTrimming(str) {
    ; 正規表現パターンの最適化
    str := RegExReplace(str, "( *)\(( *)", "(")	; カッコ:半角カッコ起こしの前後半角スペースを取り除き全角化
    str := RegExReplace(str, "( *)\)( *)", ")")	; カッコ:半角カッコ閉じの前後半角スペースを取り除き全角化
    str := RegExReplace(str, "( *)\[( *)", "[")	; カッコ:半角ブラケット起こしの前後半角スペースを取り除き全角化
    str := RegExReplace(str, "( *)\]( *)", "]")	; カッコ:半角ブラケット閉じの前後半角スペースを取り除き全角化
    str := RegExReplace(str, "( *)([」)〉》〕】}]’”〟])( *)", "$2")	; カッコ:前後の半角スペースを取り除く
    str := RegExReplace(str, "( *)([「(〈《〔【{[‘“〝])( *)", "$2")	; カッコ:前後の半角スペースを取り除く
    str := RegExReplace(str, "((.*?))", "〔$1〕")	; 全角カッコを全角亀甲カッコに置換
    str := RegExReplace(str, "「(.*?)」", "[$1]")	; 全角鍵カッコを全角ブラケットに置換
    str := RegExReplace(str, "( *):( *)", ":")	; 半角コロン:前後の半角スペースを取り除き全角化
    str := RegExReplace(str, "( *):( *)", ":")	; 全角コロン:前後の半角スペースを取り除く
    str := RegExReplace(str, "(\d+):(\d+)", "$1:$2")	; 全角コロン:前後が半角数字ならコロンも半角スペースを取り除く
    
    ; 改行正規化の強化
    str := RegExReplace(str, "(\r\n|\n|\r)+", "`r`n")
    
    Return str
}


; ●●●句読点変換・処理
a01 := ConvertPunctuation(a01)

; ●●●句読点変換・関数定義
ConvertPunctuation(str) {
    ; 正規表現パターンの最適化
    str := RegExReplace(str, "( *)。( *)", "。")	; 句点|前後の半角スペース除去
    str := RegExReplace(str, "( *)、( *)", "、")	; 読点|前後の半角スペース除去
    str := RegExReplace(str, "([" jpChars "])(\.)", "$1。`r`n")	; 全角直後の半角ピリオド→句点+改行
    str := RegExReplace(str, "([" jpChars "])(,)", "$1、")	; 全角直後の半角カンマ→読点
    str := RegExReplace(str, "([" jpChars "])(!)\s*", "$1! `r`n")	; 全角直後の半角エクスクラメーション→全角エクスクラメーション+全角スペース+改行
    str := RegExReplace(str, "([" jpChars "])(\?)\s*", "$1? `r`n")	; 全角直後の半角クエスチョン→全角クエスチョン+全角スペース+改行
    
    ; 改行正規化の強化
    str := RegExReplace(str, "(\r\n|\n|\r)+", "`r`n")
    
    Return str
}


; ●●●装飾除去・処理
a01 := DecorativeRemoval(a01)

; ●●●装飾除去・関数定義
DecorativeRemoval(str) {
    ; 正規表現パターンの最適化
    str := RegExReplace(str, "\*+(.*?)\*+", "$1")
    str := RegExReplace(str, "([[\[])(\d+)([]\]])", "")	; 引用元を示す[1][1]を削除。
    str := RegExReplace(str, "(\d+)(\.|。)(\r\n)+", "$2`r`n")	; 【行末】:引用元を示す行末のピリオドまたは句点の前の数字を消去
    
    ; 改行正規化の強化
    str := RegExReplace(str, "(\r\n|\n|\r)+", "`r`n")
    
    Return str
}


; ●●●崩れの修復・処理
a01 := RepairingCollapse(a01)

; ●●●崩れの修復・関数定義
RepairingCollapse(str) {
    ; 正規表現パターンの最適化
    str := RegExReplace(str, "(\r\n)+。", "。")	; 【行頭】:行頭にある句点は前行に合体
    str := RegExReplace(str, "m)^。+(.*?)$", "$1")	; 【行頭】:先頭に句点しかない行の先頭句点を除去。行頭の半角スペースを除去。
    str := RegExReplace(str, "m)^(#+)[  \t]*+(?=\S)", "$1 ")	; Markdown記法の[### 見出し]の[###]の後ろを半角スペースを1つに統一。
    
    ; 改行正規化の強化
    str := RegExReplace(str, "(\r\n|\n|\r)+", "`r`n")
    
    Return str
}


; ●●●Markdown記法の箇条書きのためのインデント【開始】
; 人間が半角スペースでインデント〔4の倍数〕したときのエラーを直す【開始】
; 1. 行頭から地道に半角スペース4つごとに区切る
a01 := RegExReplace(a01, "m)^   (?=(?!\s))", "☆★【3スペース】")
a01 := RegExReplace(a01, "m)^  (?=(?!\s))", "☆★【2スペース】")
a01 := RegExReplace(a01, "m)^ (?=(?!\s))", "☆★【1スペース】")
a01 := RegExReplace(a01, "m)^    (?=\s)", "    ☆★")
a01 := RegExReplace(a01, "m)^    ☆★    (?=\s)", "    ☆★    ☆★")
a01 := RegExReplace(a01, "m)^    ☆★    ☆★    (?=\s)", "    ☆★    ☆★    ☆★")
a01 := RegExReplace(a01, "m)^    ☆★    ☆★    ☆★    (?=\s)", "    ☆★    ☆★    ☆★    ☆★")
a01 := RegExReplace(a01, "m)^    ☆★    ☆★    ☆★    ☆★    (?=\s)", "    ☆★    ☆★    ☆★    ☆★    ☆★")

; 2-1. 残りのスペースを4の倍数にする準備|UNDOでログを取る
a01 := RegExReplace(a01, "☆★(\s{1})([^ ])", "☆★【1スペース】$2")
a01 := RegExReplace(a01, "☆★(\s{2})([^ ])", "☆★【2スペース】$2")
a01 := RegExReplace(a01, "☆★(\s{3})([^ ])", "☆★【3スペース】$2")

; 2-2. 残りのスペースを4の倍数にする
a01 := RegExReplace(a01, "☆★【1スペース】", "☆★")
a01 := RegExReplace(a01, "☆★【2スペース】", "☆★    ")
a01 := RegExReplace(a01, "☆★【3スペース】", "☆★    ")

; 3. 区切り記号を除去
a01 := RegExReplace(a01, "☆★", "")
; 人間が半角スペースでインデント〔4の倍数〕したときのエラーを直す【終了】
; ●●●Markdown記法の箇条書きのためのインデント【終了】


; 【漢字を開く】:
a01 := RegExReplace(a01, "([ぁ-ん])関([し])", "$1かん$2")
a01 := RegExReplace(a01, "([ぁ-ん])持([たちつてとっ])", "$1も$2")
a01 := RegExReplace(a01, "([ぁ-ん])呼([ばびぶべぼ])", "$1よ$2")
a01 := RegExReplace(a01, "([ぁ-ん])時([一-龠〃々〆〇])", "$1▼じ▲$2")	; 【1】待避
a01 := RegExReplace(a01, "([ぁ-ん])時", "$1とき")	; 【2】置換
a01 := RegExReplace(a01, "([ぁ-ん])▼じ▲([一-龠〃々〆〇])", "$1時$2")	; 【3】待避回収
a01 := RegExReplace(a01, "([ぁ-ん])際([一-龠〃々〆〇])", "$1▼さい▲$2")	; 【1】待避
a01 := RegExReplace(a01, "([ぁ-ん])際", "$1さい")	; 【2】置換
a01 := RegExReplace(a01, "([ぁ-ん])▼さい▲([一-龠〃々〆〇])", "$1際$2")	; 【3】待避回収

; 【活用グループ】:
a01 := RegExReplace(a01, "([ぁ-ん])行([わいうえおっ])", "$1行な$2")
a01 := RegExReplace(a01, "([ぁ-ん])行([かきくけこ])", "$1い$2")
a01 := RegExReplace(a01, "行く末", "【行く末】")
a01 := RegExReplace(a01, "【いく末】", "行く末")

a01 := RegExReplace(a01, "折(ら|り|る|れ|ろ|っ)" , "織$1")
a01 := RegExReplace(a01, "登(ら|り|る|れ|ろ|っ)" , "昇$1")

a01 := RegExReplace(a01, "おーきな", "大きな")
a01 := RegExReplace(a01, "おーいなる", "大いなる")
a01 := RegExReplace(a01, "オークの", "多くの")
a01 := RegExReplace(a01, "名刺", "名詞")
a01 := RegExReplace(a01, "大抵", "たいてい")
a01 := RegExReplace(a01, "([ぁ-ん])伴([わいうえおっ])", "$1ともな$2")


A_Clipboard := a01
Send("^v")
Send("^a")
Send("^c")
Errorlevel := !ClipWait(1)
if (ErrorLevel != 0)
{
return
}
}

; ●●●PrintScreen LaTeXでコンパイルする
PrintScreen::
{
Send("{Alt down}{Ctrl down}{,}{Ctrl up}{Alt up}")
return
}

; ●●●vk1C 変換キー=クリップボードを毎日がエブリデイファイルに追記する
vk1C::
{
Send("{Ctrl down}{Alt down}{t}{Alt up}{Ctrl up}")
Sleep(1800)
Send("{R}")
Sleep(200)
Send ("{Ctrl down}{PgDn}{Ctrl up}{Home}")
Sleep(200)
Send ("{Enter}")
Sleep(200)
Send ("●●●")
Sleep(200)
Send ("{Enter}")
Sleep(200)
Send ("{Ctrl down}{PgDn}{Ctrl up}{End}")
Sleep(200)
Send ("{Enter}")
Sleep(200)
Send ("{F2}")
}

; ●●●Pauseキー=クリップボードを毎日がエブリデイファイルに追記する
Pause::
{
Send("{Ctrl down}{Alt down}{t}{Alt up}{Ctrl up}")
Sleep(1800)
Send("{R}")
Sleep(200)
Send ("{Ctrl down}{PgDn}{Ctrl up}{Home}")
Sleep(200)
Send ("{Enter}")
Sleep(200)
Send ("●●●")
Sleep(200)
Send ("{Enter}")
Sleep(200)
Send ("{Ctrl down}{PgDn}{Ctrl up}{End}")
Sleep(200)
Send ("{Enter}")
Sleep(200)
Send ("{F2}")
}

; ●●●vkF2 ひらがな/カタカナキー=ドラッグしてハイライトされた文字列を引用する
vkF2::
{
Send("{Ctrl down}{.}{Ctrl up}")
Sleep(450)
Send("{Q}{Q}")
Sleep(450)
Send("{Ctrl down}{a}{c}{Ctrl up}")
Sleep(800)
Send("{Enter}")
Sleep(800)
Send("{Enter}")
return
}

; ●●●AppsKeyの押し方で動作を変える。
; ■<a href="https://pouhon.net/ahk-keywait/2848/" target="_blank" rel="nofollow">[AutoHotKey]1つのキーで3つの機能!長押しや2度押しに機能を割り当てる</a><br>
; ■<a href="https://ameblo.jp/hinatahugu29/entry-12842214165.html" target="_blank" rel="nofollow">【AutoHotKey】今のキーボードに合わせたカスタマイズに向けて【情報収集】 | ふぐのようす</a><br>
#UseHook	; UseHookをOnにした状態で使用
AppsKey::
{
key := "AppsKey"
ErrorLevel := !KeyWait(key, "T0.3")
If(ErrorLevel){	; 長押しした場合:MIFES
    Run('C:\Program Files\MIFES11\MIW.exe')
    ErrorLevel := !KeyWait(key)
    return
                    }
ErrorLevel := !KeyWait(key, "D, T0.2")
If(!ErrorLevel){	; 2度押しした場合
    Send("{Ctrl down}{.}{Ctrl up}")	; Firefox ShortcutKey2U
    Sleep(500)	; 待て
    Send("{G}{N}")	; ShortcutKey2URLに登
    ErrorLevel := !KeyWait(key)
    return
}else{	; 短押しした場合
    Send("{Ctrl down}{.}{Ctrl up}")	; Firefox ShortcutKey2U
    Sleep(500)	; 待て
    Send("{G}{G}")	; ShortcutKey2URLに登
    Sleep(500)	; 待て
    Send("{Ctrl down}{a}{c}{Ctrl up}{Enter}")
    ErrorLevel := !KeyWait(key)
    return
       }
}

; ●●●
^Up::
{
MouseMove(0, -10, 0, "R")
return
}

; ●●●
^!Up::
{
MouseMove(0, -50, 0, "R")
return
}

; ●●●
^Down::
{
MouseMove(0, 10, 0, "R")
return
}

; ●●●
^!Down::
{
MouseMove(0, 50, 0, "R")
return
}

; ●●●
^Left::
{
MouseMove(-10, 0, 0, "R")
return
}

; ●●●
^!Left::
{
MouseMove(-50, 0, 0, "R")
return
}

; ●●●
^Right::
{
MouseMove(10, 0, 0, "R")
return
}

; ●●●
^!Right::
{
MouseMove(50, 0, 0, "R")
return
}


「AutoHotKey」による作業効率化~その1~基本:That’s Done! - ブロマガ
「AutoHotKey」による作業効率化~その2~実践:That’s Done! - ブロマガ
AutoHotkeyを利用してマウスとお別れする | NETWIZ.JP