AutoHotkey : 簡単サンプルコード例(役に立つかも)

Autohotkeu_sample_code

AutoHotKeyとは: ある特定のキーを押すと、スクリプトを読んで自動でPCを操作してくれるます。あなたのアイディア次第でなんでも出来ます。単純な繰り返し作業、面倒なことはコンピュータにやらせましょう。特に小さなTOOLは得意です。画像認識、GUI作成もできます。兄弟関係の「Autoit」の方がコードは見やすくかけると思います

:_サンプルコード2

:_AutoHotkey GUIの使い方: (簡単なWindowの作り方)

ダウンロード先:

説明サイト:AutoHotkeyJp

このサイトのファイル置き場にあります。

私が、普段使っているAutoHotKeyのコードです。

Google シートのマクロ承認を自動で

Googleのスプレッドシートでマクロ(GAS)を動かすのに、いちいち承認しないと動かないのが非常に面倒。動かすまでに何度もクリックしなければいけません。

AutoHotkeyの画像認識で自動にしてみました:

乱数の発生

Random, rnd , 8, 47
MsgBox,%rnd%

8~47 までの整数を表示

Random, 乱数が入る変数, 最小値, 最大値

キー連打(CTRL,Shiftダブル)でイベント発生

A_PriorHotkey一つ前のホットキー
A_ThisHotkey最後に実行されたホットキーのラベル名が格納される。
A_TimeSincePriorHotkeyA_PriorHotkeyの発生から経過した時間

左ダブルクリックを送る(連打)

121

● マウスのWin+左ダブルクリックで、あるソフトを起動したいと考えています。

単独のクリックなら、簡単なのですが連続となると難しくなります。

#LButton::
If(A_PriorHotkey = A_ThisHotkey) And (A_TimeSincePriorHotkey < 300){
     Run,C:\Windows\System32\calc.exe
}
return

● Win+左ダブルクリックで計算機を起動します。

windows計算機を立ち上げる

区切り線を簡単に入れる

テキストを書いてるとき、わかりやすいように区切り(——)を入れたいときがあります。

Windowsキー + ー(マイナス):

#-::
    Clipboard = ーーーーーーーーーーーー  ;<<ここすきな区切り文字に変えてください
    Send, ^v
    Send, {Enter}
Return

URLにページナンバー(数値)があるとき、+1にする

連続ものを見てるときURLに+1で次のページを見ることできるサイト結構あるので作りました。

~~~27.html を28に
~~~28.html

; URL 数値 cnt プラス1 +1 置換
F1::
     send, ^a ;全選択
     send, ^x ;コピー
     sam := RegExMatch(Clipboard,"(\d+)",getNum) ;数値を取得getNumに
     newNum := getNum+1 ;数+1
    ;MsgBox,,, %kk%
    chang_URL := RegExReplace(clipboard, getNum, newNum)
     Clipboard := chang_URL
    send, ^v ;貼り付け
    send, {Enter}
Return

Sendのコンビネーションキー:

CTRLキー^
ALTキー!
Winキー#

Googleスプレッドシートのセル値を取得し、新しいタブで検索

chrome スプレッドシート

Winキーとcを同時に押すと、赤矢印の文字を取得し、Chromeの新しいタブ開き検索します。

;-----------------------------------------------
;chrome スプレッドシート word copy  new Tabで検索
;-----------------------------------------------
#c::
    Send, ^c
    Sleep, 100
    Send, ^t ; 新しいChromeのタブ開く
    Sleep, 150
    Send, ^v{Enter} ;貼り付け
Return

Send, ^v{Enter}  CTRL+vのキーを送り、その後Enterキーを送っているのでエディタでは改行されます。

クリップボードの前後に文字列をプラスする

clipboard = 前に加える文字列%clipboard%後ろの文字列 

上記、日本語使うとうまく動きませんでした。

Clipboard := "前に加える文字列" Clipboard "後ろの文字列"

違うところ = >> :=(コロン付き)   文字は””で囲む Clipboardの前後スペースが必要

例)「」で囲む

Clipboard := "「" Clipboard "」"

ahkは、UTF-8 BOM付きで保存

これを実行すると、クリップボードの内容が変わります。AutoHotkeyは、文字列””で囲わないこと

エクスプローラを好きなフィラー(ファイル管理)で開きなおす

#w::
  Sleep,100  ;;Copyしてないエラーが出るので入れてみる 2/17-13
  Send, ^c   ;;CTRL+C(コピー)キーを送る 選択範囲をコピー
  Send, !{F4} ;; いらない窓 閉じる  先に閉じないと RUNのマドを閉じてしまう
  
  Sleep,100
  Run,C:\Program Files (x86)\FreeCommander XE\FreeCommander.exe "%Clipboard%"
return

Windows10のエクスプローラーあまり好きではないので、機能豊富なフリーの「FreeCommanderを「Winキー+w」で今開いているエクスプローラーと同じフォルダを開きます。

ウィンドウを常に最前面(TOP)にするコード

● ソフトをたくさん開くと、たまに、あるソフトを一番上にしておきたい時があります。その時便利なのがAutoHotKeyです。

#t::   ;// win+t active.windowを常にTop
{
  WinSet, AlwaysOnTop, toggle, A  ;// A=active window
}
return

#t = #(Windoowsキー)+t(Tキー)を同時に押します。

● toggleの次の引数、ウィンドウ名ですがAのみだとアクティブ(今使っている)ウィンドウになります。

—————————————–

あるキーを押すと音を鳴らす

キー押すと鳴る

p::
    SoundBeep ,,2000
Return

SoundBeep ,周波数,時間(ミリ秒)

2秒なら 2000

なん分か後に音鳴らす

p::
    Sleep, 1000 * 60 * 2 ;最後の数値 分
    SoundBeep ,,2000
Return

AutoHotkeyのGUIでボタン作る

Vagrantを立ち上げたり・止める時、コマンド打つの面倒なのでボタンにしてみました。

Gui,Font,S14 ;Font Size Big
Gui, add, button,default,Vagrant_up ; Vagrant Start
Gui, add, button,Gsuspend,Vagrant_suspend ; Vagrant End
Gui, show,W250, Start_End
return  ;--------------------------

buttonVagrant_up:
    SetWorkingDir, C:\Linux_VG\MYCentOS\
    run, vagrant_up.bat
 return
GuiClose:
suspend:
    SetWorkingDir, C:\Linux_VG\MYCentOS\
    run Vagrant_suspend.bat

    ExitApp

Batファイル:

batファイルに、一行のみ

Vagrant up

Vagrant suspend

小さなミス(気づき)

ホットキーの指定 無駄な空白はエラー

Pause ::    ダメ Pauseスペース1コ::     スペースあってはダメ
  Pause::    これが正解  Pauseスペース::  ダメ
 

Pauseを押すと音ミュートします。

Pause::
    Send, {VOLUME_MUTE}
Return

ボリュームを上げたり、下げたり

F4::
    Send {Volume_Up}	; マスターボリュームを 2(2%) 上げる。
Return
;---------------------------------
F5::
    Send {Volume_Down}	; マスターボリュームを 2(2%) 下げる。
Return

時間変数(内部変数)

A_Now現在時刻をYYYYMMDDHH24MISSで表示
Msgbox, %A_Now% ;// 変数は%%で囲む
A_Now変数

AutoHotkeyでCADを動かす

コマンド入力のCADなら、AutoHotkeyのSendでキーを送れば、その送ったキーのとおりにCAD動いてくれます。

コメント

タイトルとURLをコピーしました