Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AutoHotkey スレッド part28
- https://egg.5ch.net/test/read.cgi/software/1585906506/
- ↓以下テンプレ ※規制が厳しくなったせいで貼るときに浪人がないとBBQに規制されるので注意!!
- ----------------------------
- !extend:on:vvvvv:1000:512
- !extend:on:vvvvv:1000:512
- !extend:on:vvvvv:1000:512
- ↑スレ立てする時は3行にして下さい
- ■配布元
- https://autohotkey.com/download/
- ■前スレ
- AutoHotkey スレッド part27
- https://egg.5ch.net/test/read.cgi/software/1555770773/
- ■日本語解説等
- AutoHotkey Wiki
- http://ahkwiki.net
- AutoHotkeyを流行らせるページ(ミラー)
- http://hdd.s300.xrea.com/ahk/
- AutoHotkeyJp(過去ログdatあり)
- https://sites.google.com/site/autohotkeyjp/
- Autohotkey日本語ヘルプ(chmファイル)
- https://www6.atwiki.jp/eamat/
- ■スクリプト投稿
- Autohotkey専用うpろだ
- https://ux.getuploader.com/autohotkeyl/
- 簡易スクリプト掲示板
- https://pastebin.com/
- ------------------------------------------------------------------------------------------
- ■重要事項
- オリジナルである、旧 "AutoHotKey" の開発は2009年9月で終了している。
- 現在は、そこからフォークした "AutoHotkey_L" が主流となり、2014年1月からは後のLが取れ
- 正式にAutohotkeyとして扱われるようになりました。
- よって古いスクリプト(主にDllCall)は最新Verで動作しないものがあり、その場合はスクリプトの修正が必用です。
- 旧版のAHK1.0との変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
- https://www.autohotkey.com/docs/AHKL_Features.htm
- http://ahkwiki.net/Addition_L
- ※新規利用者には最新版を推奨しますが、AHK1.0(2009年9月までのVer)の利用者はAHK1.1への移行に際して
- 少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
- そのままでは動作しません。安定利用できている環境を崩して移行するかどうかは各人の判断による。
- MouseGestureについては有志の方が最新AHK対応版(MouseGestureL.ahk)を配布しているのでそれを利用するのもありです。
- https://hp.vector.co.jp/authors/VA018351/mglahk.html
- ※ACC.ahk(旧版用)とCOM.ahkはフォーラムのリンク先にファイルが存在しませんので下記から入手してください。
- https://ux.getuploader.com/autohotkeyl/download/24/ACC%2BCOM.zip
- ※Unicode版のACC.ahkは下記(AccInfoViewer.ahk付き)またはフォーラムから入手してください。
- https://ux.getuploader.com/autohotkeyl/download/76/ACC_Unicode_and_AccInfoViewer_kai.zip
- ■質問に際して
- OSの種類(7/8/10)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
- また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。
- 5chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
- レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。
- ------------------------------------------------------------------------------------------
- ■過去スレ
- Part1 https://pc7.5ch.net/test/read.cgi/software/1098531338/
- Part2 https://pc7.5ch.net/test/read.cgi/software/1129836713/
- Part3 https://pc11.5ch.net/test/read.cgi/software/1157043396/
- Part4 https://pc11.5ch.net/test/read.cgi/software/1184556627/
- Part5 https://pc11.5ch.net/test/read.cgi/software/1201502896/
- Part6 https://pc11.5ch.net/test/read.cgi/software/1219130051/
- Part7 https://pc12.5ch.net/test/read.cgi/software/1230694774/
- Part8 https://pc12.5ch.net/test/read.cgi/software/1243005818/
- Part9 https://pc12.5ch.net/test/read.cgi/software/1253888736/
- Part10 https://pc12.5ch.net/test/read.cgi/software/1265518996/
- Part11 https://hibari.5ch.net/test/read.cgi/software/1280482227/
- Part12 https://hibari.5ch.net/test/read.cgi/software/1296446228/
- Part13 https://anago.5ch.net/test/read.cgi/software/1317156599/
- Part14 https://anago.5ch.net/test/read.cgi/software/1333372506/
- Part15 https://anago.5ch.net/test/read.cgi/software/1349735581/
- Part16 https://anago.5ch.net/test/read.cgi/software/1367725658/
- Part17 https://anago.5ch.net/test/read.cgi/software/1383384464/
- Part18 https://anago.5ch.net/test/read.cgi/software/1398655195/
- Part19 https://anago.5ch.net/test/read.cgi/software/1411360229/
- Part20 https://anago.5ch.net/test/read.cgi/software/1422427426/
- Part21 https://anago.5ch.net/test/read.cgi/software/1437910497/
- Part22 https://potato.5ch.net/test/read.cgi/software/1452881399/
- Part23 https://potato.5ch.net/test/read.cgi/software/1470936221/
- Part24 https://egg.5ch.net/test/read.cgi/software/1487149472/
- Part25 https://egg.5ch.net/test/read.cgi/software/1505357560/
- Part26 https://egg.5ch.net/test/read.cgi/software/1524647289/
- Part27 https://egg.5ch.net/test/read.cgi/software/1555770773/
- ------------------------------------------------------------------------------------------
- 以下FAQ等
- ■実行環境
- Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
- A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHK1.1)
- Q2:初めて使うけどどれを使えばいいの?
- A2:AHK1.1のユニコード版を推奨。
- 旧流行らせるページの配布物をそのまま使う場合はAHK1.0を利用する事。
- 64ビットOSでAHK1.1、32ビット版の使用は制約が多いので64ビット版を強く推奨。
- ■リマップ・ホットキー割り当て
- Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
- A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
- OS側がキーUp/Down情報を正しく返してこないのでAHKのみで対処は無理です。
- レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。
- 例) ChangeKeyを使って[ひらがな]を[F13]にする
- AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
- F12::F13
- Changekeyを起動する。( https://forest.watch.impress.co.jp/library/software/changekey/ )
- 「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
- F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
- 「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
- ウィンドウが表示されるので右上の「Scan code」をクリック。
- 覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
- 「登録」をクリックし、Windowsを再起動する。
- ------------------------------------------------------------------------------------------
- Q2:「^1::Esc」とリマップ定義したけど [Ctrl]+[1] を押したらスタートメニューが出ちゃうけどどうすればいいの?
- A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
- これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
- ^1::Send, {Esc}
- Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
- A3:コンビネーションキーの機能で実現ができる。
- 例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
- sc07B & I::Send, {Blind}{Up}
- sc07B & K::Send, {Blind}{Down}
- sc07B & J::Send, {Blind}{Left}
- sc07B & L::Send, {Blind}{Right}
- Q4:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
- A4:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
- 先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」
- #UseHookで全部にキーボードフックを適応する方法でも可。
- Q5:キーリマップを使うとキー押下中に連打するけど、マウスボタンの場合は連打しない…
- A5:マウスはキーリピートしないので、Loopなどを使って自前でリピートさせてください。
- Q6:ジョイスティックのリマップがうまくいきません!!助けて
- A6:ジョイスティックではリマップできない。「Send」コマンドでキー発行する必要がある。
- × Joy1::Esc
- ○ Joy1::Send, {Esc}
- Q7:ジョイスティックの上下左右に割り当てたいけど、JoyLeft,JoyUpってホットキーは無いの?
- A7:無い。AHKのジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。
- ------------------------------------------------------------------------------------------
- Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
- A8:AutoHotkeyではできない。
- Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
- A9:AHKが原因の場合とそうでないときがある
- ○AHKが原因の場合
- AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
- 一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
- しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
- 物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
- 例) ^W::Send, {w 30}
- これを回避するためには、以下の方法をとればよい:
- ・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
- ・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
- ・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
- #HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする。
- なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
- 発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。
- ○AHK以外が原因の場合
- 環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
- ・Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)など他多数
- ・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている
- ------------------------------------------------------------------------------------------
- ■IME関連
- Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
- A1:https://w.atwiki.jp/eamat/pages/17.html の「IME.ahk」を使いましょう。
- Q2:IMEが現在文字を入力している、または変換中であるかどうかを得ることはできる?
- A2:↑のIME.ahkで一部可能(IEやFirefox,MS-Wordのようにインライン化しているアプリでは無理)
- ■その他
- Q1:「a=abc」と「a:="abc"」って違いがある? / 「If a=1」と「If (a=1)」って違いがある?
- A1:意味としては違いは無い。単体では、コマンド形式(共に前者)の方が「式」形式(同後者)より*少し*速い。
- 複数条件の場合、IfのネストよりはAND(&&)条件で「式」を並べた方が速い。
- が、バッチでかなりの回数(数万↑~)回したりする場合以外は、体感出来るほどの差はない。
- Q2:テキストエディタでキーワードの色づけなどをしたいんだけど。
- A2:wikiに各種エディタの定義ファイル及びキーワード一覧あり。( http://ahkwiki.net/Tools )
- Q3:GUI作るのめんどくせ~~
- A3:海外の有志が作ったツールを使うと楽。
- SmartGUI Creator ( https://autohotkey.com/board/topic/738-smartgui-creator/ )
- GUI Creator ( https://www.autohotkey.com/boards/viewtopic.php?f=6&t=303 )
- Q4:AHKってマルチスレッドじゃないの?
- タイマーやMsgBox, WinWait, KeyWaitを使ってるけど思った通りに動かない。
- A4:「擬似マルチスレッド」です。最後に割り込んだスレッドが終わるまで元スレッドは動きません。
- MsgBox、WinWait、KeyWait、Process,WaitClose などをタイマーで複数動かす時は注意。
- > 要は処理系統が複数同時に走らないってこと。図にするとこんな感じ。
- > → 実行中、 …:割り込み終了待ち
- > 元スレッド →→→→→→……………………………………→→→→
- > ★割込 ↑再開
- > 割り込みスレ →→→→…………→→→→→→END
- > ◆割込 ↑再開
- > 更に割り込み →→→END
- ------------------------------------------------------------------------------------------
- Q5:AHK(A32)、AHKLx86(U32)、AHKLx64(U64)の共存は出来る?
- A5:それぞれを違うフォルダにインストールする(最新版は分ける必要無し)
- 但し、インストーラーを使って最後にインストールしたAutohotkeyに対して
- ahkファイルの関連付けが行われるので、レジストリエディタ(Regedit.exe)や
- FileTypesMan等のツールを使って関連付を変更してください。
- ahkファイルをAHK(A32)、ahlファイルをAHKLx86(U32)、ah6ファイルをAHKLx64(U64)
- といったように別々の拡張子に関連付けが可能です。
- それぞれに関連付けしたファイルに対してドラッグアンドドロップを有効にするにはレジストリの
- [HKEY_CLASSES_ROOT\ファイルタイプの名前\ShellEx\DropHandler]
- の (規定) のデータを {86C86720-42A0-1069-A2E8-08002B30309D} にする。
- ------------------------------------------------------------------------------------------
- Q6:Windows Vista(以降)で管理者権限のウィンドウ操作やSendPlayが効かないんだけど?
- A6:OSのセキュリティ機能であるユーザーアカウント制御(UAC)にブロックされている。
- ■回避策
- 1:管理者として実行
- Autohotkey.exeを右クリックしてプロパティを開き、「互換性」→「管理者としてこのプログラムを実行する」にチェック。
- スクリプトに記載する方法もある( https://www.autohotkey.com/docs/commands/Run.htm#RunAs )
- 2:対策パッチ
- 実行ファイルのマニフェスト書き換え、自己署名証明書のインストールが行われる。
- ※AutoHotkey.exeはProgram Files以下に置く必要がある。
- https://autohotkey.com/board/topic/70449-enable-interaction-with-administrative-programs/
- 3:UAC停止 ※注意!! 必ずHIPS機能がある他のセキュリティ対策ソフトを導入してください。
- 「コントロールパネル」→「ユーザーアカウント」
- Vista:「ユーザーアカウント制御の有効化または無効化」→ チェックボックスをオフ。
- 7/8/8.1:「ユーザーアカウント制御設定の変更」→ スライドバーを一番下に。
- ※Windows 8/8.1/10では上記に加えレジストリを変更する必要があります。(注意:Windowsストアアプリが実行できなくなる)
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System
- 「EbableLUA」の値を「0」に変更。
- ------------------------------------------------------------------------------------------
- ■AutoHotkeyの系譜
- ┌ AHK64(統合)
- │
- AutoIt .│ ┌ AHK_U(統合)
- │ │ │
- AutoHotkey(1.0) ─ Autohotkey_L ┬ Autohotkey(1.1) ←いまここ
- │ │ │
- └ IronAHK× │ └ Autohotkey v2(α版)
- │ │
- └ AutoHotkey.dll .├ AutoHotkey_H v2
- │ │ │
- │ └ AutoHotkey_H
- │
- └ AutoHotkey_N×
- ■メインストリーム
- Autohotkey 1.1
- https://www.autohotkey.com/
- ■開発中
- Autohotkey v2(下位互換性を排除して操作利便性の向上)
- https://www.autohotkey.com/v2/
- ------------------------------------------------------------------------------------------
- ■派生版
- IronAhk(.NET製、クロスプラットフォーム。開発終了)
- https://github.com/Paris/IronAHK
- AutoHotkey.dll(真のマルチスレッド対応)
- https://autohotkey.com/board/topic/39588-autohotkeydll/
- AutoHotkey_N(開発終了)
- AutoHotkey_H
- https://hotkeyit.github.io/v2/
- ■統合
- AHK_U(Unicode版)
- https://autohotkey.com/board/topic/46563-unicode-version-of-autohotkey/
- AHK64(64bit版)
- https://autohotkey.com/board/topic/53878-autohotkey64-64-bit-autohotkey-l-updated-62410/
- ■スクリプト作成支援ツール ※必須ではありません
- ・AutoHotKey専用エディター
- SciTE4AutoHotkey
- https://fincs.ahk4.net/scite4ahk/
- ・GUI作成ツール
- SmartGUI Creator
- https://autohotkey.com/board/topic/738-smartgui-creator/
- GUI Creator
- https://www.autohotkey.com/boards/viewtopic.php?f=6&t=303
- AutoGUI
- https://www.autohotkey.com/boards/viewtopic.php?t=10157
- ※テンプレここまで
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement