!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
■配布元
http://ahkscript.org/download/
■前スレ
AutoHotkey スレッド part27
http://egg.5ch.net/test/read.cgi/software/1555770773/
■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/
■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
AutoHotkey スレッド part28
■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 (ワッチョイ aef9-dJm7)
2020/04/03(金) 18:35:06.00ID:/YRSlUCD02名無しさん@お腹いっぱい。 (アンパンW 2b7e-zxou)
2020/04/04(土) 14:55:58.71ID:oDQUgnR500404 いちもつ
3名無しさん@お腹いっぱい。 (ワッチョイ cb76-8H9x)
2020/04/05(日) 12:03:16.10ID:GWmWDwN30 Include先も含め、AutoHotkey.ahkに関係するホットキー全体で
変数を共有するためには、その都度IniReadするしかないですか?
グローバル変数的な何かはないのかなと。
可能なら、AutoHotkey.ahkからのInclude先AHKファイルで定義した変数を共有したいのですが。
下のような構成で、bを押したときにaaAAaaと表示させたい
[AutoHotkey.ahk]
#Include a.ahk
#Include b.ahk
Return
[a.ahk]
AAA := "aaAAaa"
a1::Return
a2::Return
[b.ahk]
b::MsgBox, % AAA
変数を共有するためには、その都度IniReadするしかないですか?
グローバル変数的な何かはないのかなと。
可能なら、AutoHotkey.ahkからのInclude先AHKファイルで定義した変数を共有したいのですが。
下のような構成で、bを押したときにaaAAaaと表示させたい
[AutoHotkey.ahk]
#Include a.ahk
#Include b.ahk
Return
[a.ahk]
AAA := "aaAAaa"
a1::Return
a2::Return
[b.ahk]
b::MsgBox, % AAA
4名無しさん@お腹いっぱい。 (ワッチョイ 6511-eEke)
2020/04/05(日) 12:48:56.56ID:KUQx6rxd0 脳内で書いてないで実際に動かしてみなよ
5名無しさん@お腹いっぱい。 (ワッチョイW 25e5-HXgt)
2020/04/05(日) 15:14:23.10ID:fo7yX2Dr0 その状態でAutoHotkey.ahkを動かす分にはいける
[AutoHotkey.ahk]
AAA := "aaAAaa"
a1::Return
a2::Return
b::MsgBox, % AAA
Return
includeは全てAutoHotkey.ahkとして展開されるので↑と同義になるから
ただしaとbのincludeを逆にしたらautoexrcuteが働かない
includeの位置は要注意
[AutoHotkey.ahk]
b::MsgBox, % AAA
AAA := "aaAAaa"
a1::Return
a2::Return
Return
あと当然だが a.ahk / b.ahk を単体起動した時はAutoHotkey.ahkから起動した時のようには動作しない
[AutoHotkey.ahk]
AAA := "aaAAaa"
a1::Return
a2::Return
b::MsgBox, % AAA
Return
includeは全てAutoHotkey.ahkとして展開されるので↑と同義になるから
ただしaとbのincludeを逆にしたらautoexrcuteが働かない
includeの位置は要注意
[AutoHotkey.ahk]
b::MsgBox, % AAA
AAA := "aaAAaa"
a1::Return
a2::Return
Return
あと当然だが a.ahk / b.ahk を単体起動した時はAutoHotkey.ahkから起動した時のようには動作しない
6名無しさん@お腹いっぱい。 (ワッチョイ cb76-8H9x)
2020/04/05(日) 16:49:19.64ID:GWmWDwN30 >>5
わかりました、ありがとうございます。
Includeは内容を展開しているだけだったのですね。
まずInclude元でAutoexecuteが開始し、Includeがあればその先のReturnまでAutoexecuteされ、
またInclude元に戻って、そのInclude元のReturnまではAutoexecuteされるものだと思っておりました。
自分のスクリプト郡は、Include先でReturnがあったためにそこでAutoexecuteが終わってしまっていた訳ですね。
わかりました、ありがとうございます。
Includeは内容を展開しているだけだったのですね。
まずInclude元でAutoexecuteが開始し、Includeがあればその先のReturnまでAutoexecuteされ、
またInclude元に戻って、そのInclude元のReturnまではAutoexecuteされるものだと思っておりました。
自分のスクリプト郡は、Include先でReturnがあったためにそこでAutoexecuteが終わってしまっていた訳ですね。
7名無しさん@お腹いっぱい。 (ワッチョイ cb76-8H9x)
2020/04/05(日) 16:49:56.54ID:GWmWDwN30 ところで以下ような感じに、ファイルごとに役割を分け、
またそれぞれのファイル内でしか使わない変数はそのファイル内に収めておきたいのですが、
その方法はありますでしょうか?(下の構成ではInputA.ahkの2行目でAutoexecuteが終わってしまいますよね。)
あまり美しくないですが、AutoHotkey.ahkの先頭にVariables.ahkのようなものをIncludeして、そこで変数リストを作るとかしかないですかね?
[AutoHotkey.ahk]
#Include InputA.ahk
#Include InputB.ahk
またそれぞれのファイル内でしか使わない変数はそのファイル内に収めておきたいのですが、
その方法はありますでしょうか?(下の構成ではInputA.ahkの2行目でAutoexecuteが終わってしまいますよね。)
あまり美しくないですが、AutoHotkey.ahkの先頭にVariables.ahkのようなものをIncludeして、そこで変数リストを作るとかしかないですかね?
[AutoHotkey.ahk]
#Include InputA.ahk
#Include InputB.ahk
8名無しさん@お腹いっぱい。 (ワッチョイ cb76-8H9x)
2020/04/05(日) 16:50:06.91ID:GWmWDwN30 [InputA.ahk]
textA := "A"
a::MsgBox, % textA
d::MsgBox, % (textA . "D")
[InputB.ahk]
textB := "B"
b::MsgBox, % textB
c::MsgBox, % (textB . "C")
textA := "A"
a::MsgBox, % textA
d::MsgBox, % (textA . "D")
[InputB.ahk]
textB := "B"
b::MsgBox, % textB
c::MsgBox, % (textB . "C")
9名無しさん@お腹いっぱい。 (ワッチョイ 25e5-4JbH)
2020/04/05(日) 17:54:59.11ID:fo7yX2Dr0 test
10名無しさん@お腹いっぱい。 (ワッチョイ 25e5-4JbH)
2020/04/05(日) 18:08:01.88ID:fo7yX2Dr0 イニシャライズを各AHK内で完結させたいならsubかfunctionにしてcall
ただし全体のグローバル変数であるという事実は変わらんが
エラった時のpastbin AHKのハイライトもあるのね
https://pastebin.com/dkUfkDTj
ただこれだと一時的に#includeをコメントアウトで外したいときにautoexecuteの
手直しも必要になるので islabel() isfunc() を入れたほうがいいかも
ただし全体のグローバル変数であるという事実は変わらんが
エラった時のpastbin AHKのハイライトもあるのね
https://pastebin.com/dkUfkDTj
ただこれだと一時的に#includeをコメントアウトで外したいときにautoexecuteの
手直しも必要になるので islabel() isfunc() を入れたほうがいいかも
11名無しさん@お腹いっぱい。 (ワッチョイ cb76-8H9x)
2020/04/06(月) 01:59:36.99ID:QgAFECbT0 >>10
なるほど確かにこれなら実現できますね!
ありがとうございました、とても勉強になりました
ところで下のようにしてみたのですが、#Include では変数が使えないみたいですね。
何かいい案はないでしょうか?
というのも、実際は10以上のファイルがあるので、ダラダラ書くよりLoopで回したいものでして・・・
https://pastebin.com/g2Gc1cDU
なるほど確かにこれなら実現できますね!
ありがとうございました、とても勉強になりました
ところで下のようにしてみたのですが、#Include では変数が使えないみたいですね。
何かいい案はないでしょうか?
というのも、実際は10以上のファイルがあるので、ダラダラ書くよりLoopで回したいものでして・・・
https://pastebin.com/g2Gc1cDU
12名無しさん@お腹いっぱい。 (ワッチョイW 25e5-HXgt)
2020/04/06(月) 03:45:46.30ID:pNj6d1Pb0 無理だが
いっそ関数ライブラリ化して全部 %A_ScriptDir%/Lib に押し込むという手もある
したらincludeそのものが不要になる
いっそ関数ライブラリ化して全部 %A_ScriptDir%/Lib に押し込むという手もある
したらincludeそのものが不要になる
13名無しさん@お腹いっぱい。 (ワッチョイ e5b1-mnXZ)
2020/04/06(月) 04:21:20.13ID:8dTlIF+30 >>11
Includeするahk内で更にInclude出来るはずだぞ(その内容は「#Include 〜.ahk」だけでも良い)
だからメインahk(AutoHotkey.ahk)内でのInclude用ahkの名前は固定しといて
メインahkでそのahkファイルを書き換えすれば手直しは要らなくなると思う
例として、メインahkにIncludeするファイル名を「Include_ahk.ahk」とし
Include_ahk.ahk内は
-----------------------------------
#Include InputA.ahk
#Include InputB.ahk
-----------------------------------
↑の2行はメインahkのautoexecute内で検索→名前取得→書き込み処理を実行して
この処理の後に「#Include Include_ahk.ahk」を記述する
拙い説明 & 出来なかったらスマヌ
もしアレだったらMGLのスクリプトが参考になると思う
Includeするahk内で更にInclude出来るはずだぞ(その内容は「#Include 〜.ahk」だけでも良い)
だからメインahk(AutoHotkey.ahk)内でのInclude用ahkの名前は固定しといて
メインahkでそのahkファイルを書き換えすれば手直しは要らなくなると思う
例として、メインahkにIncludeするファイル名を「Include_ahk.ahk」とし
Include_ahk.ahk内は
-----------------------------------
#Include InputA.ahk
#Include InputB.ahk
-----------------------------------
↑の2行はメインahkのautoexecute内で検索→名前取得→書き込み処理を実行して
この処理の後に「#Include Include_ahk.ahk」を記述する
拙い説明 & 出来なかったらスマヌ
もしアレだったらMGLのスクリプトが参考になると思う
14名無しさん@お腹いっぱい。 (ワッチョイ e5b1-mnXZ)
2020/04/06(月) 04:28:36.79ID:8dTlIF+3015名無しさん@お腹いっぱい。 (ワンミングク MMa3-YctG)
2020/04/06(月) 10:48:05.12ID:Tm/x8Nf+M https://www.autohotkey.com/docs/commands/_Include.htm
マニュアル読み直してたらv1.1.28以降はErrorlevelとコマンドライン文字列以外のすべての組み込み変数が有効とあるね
Loop,Filesのローカル組み込み変数はどうなんだろ
もし使えるなら↓みたいにできるのかも(出先からのなので試してはいない)
#include %A_SprictDir%
Loop, Files, %A_SprictDir%\*.ahk, F
If (A_LoopFileFullPath != A_SprictFullPath)
#include %A_LoopFileName%
マニュアル読み直してたらv1.1.28以降はErrorlevelとコマンドライン文字列以外のすべての組み込み変数が有効とあるね
Loop,Filesのローカル組み込み変数はどうなんだろ
もし使えるなら↓みたいにできるのかも(出先からのなので試してはいない)
#include %A_SprictDir%
Loop, Files, %A_SprictDir%\*.ahk, F
If (A_LoopFileFullPath != A_SprictFullPath)
#include %A_LoopFileName%
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次のパンデミックでワクチンを打ちますか?】日本人2万人以上を調査 「必ず・おそらく接種する」53.1% ★4 [煮卵★]
- 「今まで何だったん」堀大輔氏 配信終了後に「ショートスリーパー」表記を削除→「睡眠時間は自由」に変更でネット騒然 ★2 [Ailuropoda melanoleuca★]
- 「POPOPO」サービス終了 開始から約半年 川上量生氏が全額出資 庵野秀明氏、GACKT氏、ひろゆき氏らが取締役として参加 [煮卵★]
- 「メゾピアノ」、VTuberしぐれういとのコラボ中止を発表で謝罪 しぐれういの代表曲が“ロリコン”を題材とした楽曲… [muffin★]
- 川口バイク男性死亡、トルコ国籍男に異例の実刑判決 1年6月さいたま地裁「危険な運転」 [少考さん★]
- 【東京】「これ逮捕してよ」公然わいせつ懸念の声、渋谷の中心に現れた「上裸・裸足・逆三角形マッチョ」外国人集団 [ぐれ★]
- 👊😅👊夜長のまったりダブパンハウス🌃🏡
- 女装子のフェラで抜くのはホモじゃないものとする。だって1mmも男の要素のに興奮してないから [419111196]
- ジャップスタバ、売却wwwwwwwwwwwwお荷物だった… [668024367]
- 【画像】この豚汁定食にあと一品足して最強にしろ [834922174]
- 【画像】謎のぬいぐるみ、めちゃくちゃ流行るwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [683137174]
- 【悲報】しぐれうい、脅迫をうけて児童服コラボの中止を発表・・・なぜフェミはすぐ暴力的手段に走るのか [398059782]