YouTube_Gmailで誤送信したくない人へ|AutoHotkeyで送信前チェックを入れる

YouTubeで配信した内容に関する詳細です。

Autohotkeyの使い方

こちらの記事をご参照ください。

Gmail誤送信防止ポップアップのコード

以下をAutohotkeyファイルにコピペいただければ。

コード詳細はこちら
#Requires AutoHotkey v2.0
#SingleInstance Force
SetTitleMatchMode 2

; ============================================================
; Gmail 送信前チェック
;
; Gmailで Ctrl + Enter
;   ↓
; 2項目のチェックリスト表示
;   ↓
; 「確認完了
;   ↓
; Gmailの元画面に戻る
;
; ※メール自体は自動送信しない
; ============================================================

#HotIf WinActive("ahk_exe chrome.exe")
$^Enter::ShowGmailSendChecklist()
#HotIf


ShowGmailSendChecklist() {

    gmailHwnd := WinExist("A")

    g := Gui(
        "+AlwaysOnTop -MinimizeBox -MaximizeBox",
        "送信前チェック"
    )

    g.SetFont("s10")

    g.AddText(
        "w430",
        "送信前に確認してください。"
    )

    g.AddCheckbox(
        "vCheckSubject y+15 w430",
        "件名はこのままで問題ない"
    )

    g.AddCheckbox(
        "vCheckOther y+12 w430",
        "宛先・添付・本文を確認した"
    )

    doneBtn := g.AddButton(
        "Default y+22 w100",
        "確認完了"
    )

    cancelBtn := g.AddButton(
        "x+10 w100",
        "戻る"
    )

    doneBtn.OnEvent(
        "Click",
        FinishGmailCheck.Bind(g, gmailHwnd)
    )

    cancelBtn.OnEvent(
        "Click",
        (*) => g.Destroy()
    )

    g.OnEvent(
        "Escape",
        (*) => g.Destroy()
    )

    g.OnEvent(
        "Close",
        (*) => g.Destroy()
    )

    g.Show("AutoSize Center")
}


FinishGmailCheck(g, gmailHwnd, *) {

    values := g.Submit(false)

    if (
        !values.CheckSubject
        || !values.CheckOther
    ) {
        MsgBox(
            "2項目とも確認してください。",
            "送信前チェック",
            "Icon!"
        )
        return
    }

    g.Destroy()

    try WinActivate("ahk_id " gmailHwnd)

    if !WinWaitActive("ahk_id " gmailHwnd, , 1) {
        MsgBox(
            "Gmailの画面に戻れませんでした。",
            "送信前チェック",
            "Icon!"
        )
    }
}

関連記事