探検


AutoHotkey スレッド part36

2025/12/22(月) 08:20:59.01ID:9T9lj6pT0
■公式サイト
https://www.autohotkey.com/

■解説等
・v1.1
AutoHotkey Wiki
http://ahkwiki.net/Top

・v2
クイックリファレンス|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/
v1.1からの変更|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/v2-changes.htm

■前スレ
AutoHotkey スレッド part35
https://egg.5ch.net/test/read.cgi/software/1733887021/
2026/05/06(水) 17:44:44.26ID:wCSZCBzl0
指定したウィンドウをアクティブして確実に動作させたい時に使うもんでは?
2026/05/06(水) 18:35:55.99ID:fGsjJbH30
WinActivate は頻繁に使うな
117名無しさん@お腹いっぱい。
垢版 |
2026/05/06(水) 18:38:15.13ID:HmebDEzN0
マウスを画面の端持ってったら隠しといたウインドウ表示させて
ウインドウからマウス離れたらまた隠してとか昔やってたな
2026/05/07(木) 01:46:24.01ID:vcSymXNE0
そっか
起動時に出てくる金払えNag消すくらいしかアイデアが浮かばなかったわ
2026/05/07(木) 06:49:24.54ID:h2g4CHiY0
WinActivateと
#WinActivateは全然違う
2026/05/07(木) 12:33:21.93ID:9+9jJStu0
#WinActivateって何? #WinActivateForceなら解るが
#HotIf と混じってない?
2026/05/07(木) 12:55:03.11ID:h2g4CHiY0
何にしろ#で始まる系はさっさと滅びて欲しい
2026/05/07(木) 13:54:21.25ID:2PTW/6rB0
V2は両方存在しないしV1でも#IfWinActiveしか存在しなくね?
2026/05/08(金) 17:09:02.97ID:X68KACnN0
v2使ってる人間の不寛容さに草
2026/05/08(金) 18:39:51.37ID:j9O0uOq40
存在してたなら寛容に慣れた
2026/05/08(金) 20:15:30.39ID:jJy/Y2pF0
#IfWinActiveと言ってる時点でv2の話はしてないのにいちいち調べたんだ
2026/05/08(金) 21:29:53.84ID:HHIVc71J0
V1にもV2にも存在しないものを出してきたからナニソレ?って反応しただけでしょ
2026/05/08(金) 23:59:47.84ID:X68KACnN0
何言ってんだこいつ
2026/05/09(土) 00:01:21.76ID:9j/Iuwre0
V2は両方存在しないしV1でも#IfWinActiveしか存在しなくね?
2026/05/09(土) 00:01:41.20ID:9j/Iuwre0
V1にもV2にも存在しないものを出してきたからナニソレ?って反応しただけでしょ
2026/05/09(土) 00:38:52.89ID:Xa9R7pa80
>>123
早く教えてくれよ「#WinActivate」というのがどのバージョンにならあるのか
131名無しさん@お腹いっぱい。
垢版 |
2026/05/09(土) 02:45:59.66ID:Cclz8LIq0
こうして世界は平和へとまた一歩近づくのだった。fin。
132名無しさん@お腹いっぱい。
垢版 |
2026/05/09(土) 03:24:09.81ID:9j/Iuwre0
>>130
誰に何を言ってんだこの池沼
133名無しさん@お腹いっぱい。
垢版 |
2026/05/09(土) 03:33:08.86ID:9j/Iuwre0
後出しで駆け付けて意気揚々マウントしてやろうと思ったらV1もV2も詳しくない自分が一番の低能だったという
2026/05/09(土) 05:43:47.17ID:eNfb24jl0
そこでV3ですよ
2026/05/09(土) 06:02:55.56ID:eNfb24jl0
いい加減不安定さに愛想がつきて、
yamyに戻るかどうせならのどかにしようかと思っていたら、
のどかはデバイスドライバの署名で困ってる真っ最中だった
136名無しさん@お腹いっぱい。
垢版 |
2026/05/09(土) 11:10:32.28ID:vTCj47Cm0
論理和みたいな話を延々言ってるだけのガチ馬鹿アスペがいると聞いて
2026/05/09(土) 11:20:31.89ID:ZY/e/cW50
そうやって乗っかっちゃうから延々続くんよ
2026/05/09(土) 13:37:21.50ID:eNfb24jl0
yamyとahkの同居中
基本は同居可能なんだけど、ahkでモディファイアとして使っているキーは、
ahkが奪ってしまうのでyamyでは無視される(F13とかF14とか)

奪わないモードとかある?
2026/05/09(土) 14:58:03.57ID:qUIxyq5H0
>>138
で、
なんで両方使ってるの?
片方じゃダメなの?
2026/05/09(土) 15:20:27.35ID:eNfb24jl0
ahkは不安定なので、キビキビ動いて欲しい部分はyamyに
FindTextなんかは便利なのでそのまま使う
2026/05/09(土) 17:11:01.46ID:bZ4BV9+s0
aiに質問するときは

https://pastecode.io/s/w5skzbrn の指示に従え

というような一文を先頭か末尾に入れるとマシになる気がする
指示書はあまり長くすると混乱する、下の方が優先されがちらしい
2026/05/09(土) 17:38:52.46ID:qUIxyq5H0
>>140
不安定とは?
具体的に
2026/05/09(土) 17:54:15.79ID:eNfb24jl0
気にならないなら余計なことはしない方がいい
2026/05/09(土) 18:24:09.06ID:YrPnJTEh0
人に説明できるほどはっきりは分からないってこと?
2026/05/09(土) 19:00:33.04ID:fhf/cnlU0
分かるなら不安定って言わないんじゃね
2026/05/09(土) 19:16:58.56ID:YrPnJTEh0
遅いことある気がするが条件がわからないってかんじか
2026/05/09(土) 19:48:58.71ID:q5+E8ItK0
ID:eNfb24jl0 が名(迷)speakerで話が気になって仕方ないのかもっと話させようと必死だな
2026/05/09(土) 20:59:48.17ID:ahPgyyTR0
この人延々ひとりでyamyだのどかだ言い続けてきて、誰かに構ってもらえたのはじめてじゃないか?
2026/05/10(日) 10:29:23.71ID:E9E+0vIv0
edgeに表示されている文字をコピーする時、マウスよりもキーボードがやりやすい
その為にF7でカーソルをon/offする機能があるけれど、これが使いにくい
今どっちのモードになっているか見て判らない

add onでインジケータでも付けようかと思ったけど、それよりもトグル機能をやめればいい
カーソルon専用のキーとoff専用のキーを割り当てて、どちらのモードなのかは意識しない
どちらのモードかはahkが記憶して、必要ならF7を送信するようにする
F7という、ノールックでは押しにくいキーからも開放される
2026/05/10(日) 10:50:17.34ID:bo/jM/bY0
チラシの裏やxにでも書いとけよ
2026/05/10(日) 12:53:08.05ID:gQgK7q1n0
>>149
それならshift+変換(無変換)で強制的にそのモード?にしたら良いのでは

>>150
自分に関係ないって思ったらスルーしとけ
2026/05/14(木) 08:26:34.38ID:+K6Pmy//0
同じ挙動をIMEの起動キーでやってるので言わんとすることはわかるけど
AHKでやることかそれ
2026/05/14(木) 10:11:49.92ID:5T1k3ng00
>>152
それ言うなら大抵の事は他のソフトでもできるし……

AHKで再現や実装する事が肝心で目標なんだと思うよ
2026/05/14(木) 19:24:43.50ID:kRcqkcvE0
なんでコピーするのにIME要るの
2026/05/14(木) 20:17:10.68ID:5T1k3ng00
なんの話?
無変換/変換キーの話してるんだけど?
2026/05/14(木) 20:30:25.20ID:kRcqkcvE0
なんでそんな話を唐突に始めているんだい
2026/05/14(木) 20:53:03.36ID:5T1k3ng00
>>149からで、ワンキートグル面倒くさいなら無駄にあるshift変換無変換キーをトリガーにしたら思考停止で切り替えられて楽だぞって話してたんだ
2026/05/14(木) 20:53:42.32ID:5T1k3ng00
ID:kRcqkcvE0が唐突なんだよ
2026/05/14(木) 20:56:05.66ID:kRcqkcvE0
その話は既にしていて、何のキーをアサインするかはどうでもいい
2026/05/14(木) 23:03:50.06ID:5T1k3ng00
既にしている?どこ?
IME変換キー使ったらって話してた所に絡んできて関係ないって何言い出してんだ
2026/05/14(木) 23:05:19.99ID:VdjMOn020
説明のための語彙がなくてこういう形式って書くしかないんだけど
下みたいなタイプ書いてるのね
ファイルを選択すると即時実行されるやつ

これをリモートデスクトップで外部から起動させられるために、exe化してタスクバーに貼ってクリックしてる。
これをちょこちょこ修正するたびにexe化して・・・って煩わしいんだけど、しなくてもすむ方法ってないかな?ahk形式でタップしてどうにかならないかな?もしくは完全に別視点の代替方法とかさ
そもそも勘違いがあるなら指摘してほしい

#SingleInstance force
#Persistent
#InstallKeybdHook
#InstallMouseHook

SetTimer,test,2000
return

test:

以下省略
2026/05/14(木) 23:28:30.72ID:DLVhQ1Zk0
AutoHotkey.exeをコピー
そのexe名をスクリプト名(ファイル名)と同じにして実行させる
※実行ファイルとスクリプトファイルは同じフォルダに置く

これで行かないか?
163名無しさん@お腹いっぱい。
垢版 |
2026/05/14(木) 23:50:18.54ID:VdjMOn020
え!出来てるけど、どういう仕組みなのこれ

ABC.ahkを更新したら都度をexe化して、出来上がるABC.exeじゃないと機能しないのかと思ってた
とりあえずありがとう
2026/05/14(木) 23:52:02.55ID:5T1k3ng00
そのリモート先の端末で.ahkを直に実行できる環境にする(関連付け)するとexe化しなくても目的の動作しない?

関連付け嫌なら仕方ないけど
2026/05/15(金) 00:02:13.24ID:eyTR2FMu0
>>162のやり方だと引数が渡らないのとexeの更新を毎回やらないといけないから

foo.exe arg1 arg2 を実行したら
autohotkey.exe foo.exe.ahk arg1 arg2 を呼び出す仕組みを作ればいい
2026/05/15(金) 14:19:46.60ID:xJxrHvGW0
とりあえず都度exe化するにしてもAutoHotKey.exeにスクリプトを渡すにしても
常駐プロセス殺してコンパイルし直して再度起動させるくらいバッチ書けば良いのでは
2026/05/27(水) 07:41:49.24ID:StQctgzb0
のどかの次版は今月中と書いてるけど、
本当に出るんだろうか
2026/05/30(土) 07:15:45.50ID:UjVbHYWc0
たまに追加したい小技があると
AIに聞けば大体作成してくれるから楽になった
素人だから調べて動作確認してひと苦労だった
2026/05/30(土) 07:26:43.13ID:CZqm9rqT0
関数が無数にあるとか、モジュールが無数にあるとか、
そんなのを予め網羅しておく必要はなくて、使う時に判ればいい
2026/05/30(土) 12:51:54.98ID:rM+gv9Kj0
>>168
ふーん
たとえば、どういうの?
2026/05/30(土) 14:12:41.83ID:kG5MOsW20
その質問になんの意味があるんだ
2026/05/30(土) 14:44:50.50ID:QrGwktrR0
他人が持ってるものを欲しがる…くれくれ病
2026/05/30(土) 15:56:24.12ID:5VV82FUw0
状況で変わるんだから他人の直接貰ってもなぁ

ノウハウをwikiに登録しててくれ、とかなら分かるんだが
2026/05/31(日) 06:28:32.88ID:2uIvepaZ0
AIはいいな
単語の羅列で色々察してくれるし
条件追加してもブチ切れないし
ジジイみたいにマウントだのレスバだのもしないし
もう人類要らないわ
2026/05/31(日) 07:38:22.72ID:yCyalIKw0
自分で書く時もインラインのAIだと次に書きたいのはこれですよね?って
なかなかいい感じに提案してくれるから効率あがりまくるね
他で経験豊富だけどAHKはうろおぼえなプログラマが
AHKのマニュアルやウェブを高速で見ながら提案や返答してくれるみたいな
他の言語や環境だと自分いらなくね?なレベルだし
2026/05/31(日) 14:16:17.96ID:R3hEwWCg0
>>174
ハルシネーション問題はあるけど知識マウント&説教ないのがいいなw
文脈の読解力もやばいよな~ あの○○のスクリプトとか要素1~2こ指定で特定するw
2026/05/31(日) 14:19:03.75ID:R3hEwWCg0
>>174+175もリストラ対象になっちゃうのよな~
人間のミーティングや会話だと余計なノイズ(マウント,説教,愚痴など)が入るな~
後中途半端なマニュアル人間じゃないから情報の探索も早いしな.....
マジで機械だけの会社でいいかも.....
2026/05/31(日) 21:27:56.20ID:yCyalIKw0
よく建築に例えられて、手を動かす大工さんはAIがやるから
人間のエンジニアはソフトウェアの建築士として
デザイン・設計に専念できるようになるとか言ってたけど
建築士の役割は残してもらえるんですかね?( )

( )に入る文を答えなさい
2026/05/31(日) 21:31:48.84ID:yCyalIKw0
これにもそれなりに答えてくれるAIさんえらい
もう5chもAIが書き込んでたらいいのでは
2026/06/01(月) 15:55:23.39ID:jLMrcEb90
AIの提案に沿ってできあがる
そのうちAIが著作権を主張したり、分け前をよこせといいだす
お前の個人情報はわかっている、逃げても無駄だと
2026/06/01(月) 16:25:45.42ID:R+/HOyRd0
そこら辺はSF小説や映画が既に通ってきた道じゃない?w
2026/06/01(月) 16:27:19.14ID:R+/HOyRd0
ゲームで言うとDetroit: Become Humanが一部それに近いか?
2026/06/01(月) 19:17:25.22ID:7LilI/2T0
アメリカかどっかではAI作成物に著作権はないって判決が出てたはず
日本は後進国だからどうなるか
2026/06/01(月) 20:07:21.08ID:R+/HOyRd0
アメリカは州ごとに法律違うからあんま参考にするなw
2026/06/01(月) 21:05:02.85ID:wnob5D0T0
のどかのデバイスドライバ対応版は出なかったな
2026/06/02(火) 01:24:45.84ID:x1l0d2uq0
無理やりゴミレス書き込まなく絵いいよ
2026/06/02(火) 05:50:44.71ID:3mODjsO50
どういう意味?
2026/06/03(水) 22:41:00.96ID:2VptsG6M0
このスレまだ稼働してる?最近AHK触り始めたんだけどコマンドがループしますわ~
ほぼAIに書いて貰った奴だけどねw
2026/06/03(水) 23:06:53.98ID:oIw9d1nR0
最小限の再現コード書いてくれ、何のことだかさっぱりわからん
2026/06/03(水) 23:13:15.47ID:pJwjDnLo0
自分には解析すらできないクソだって自己紹介でしかないぞ>>188
2026/06/03(水) 23:15:27.56ID:AzKzMbd30
いや~ほんわかレスと煽りレスこれが5ch w
一応原因行は特定できてますけどね
2026/06/04(木) 04:51:06.44ID:0uzKChcX0
何も詳細を書く気がないなら来るなよ
2026/06/04(木) 06:50:15.43ID:XH//+0Wi0
気持ち悪い人しかおらんな
2026/06/04(木) 07:20:30.49ID:YKOaOBOe0
AutoHotkeyは良いツールなんだけどね
2026/06/04(木) 10:35:59.57ID:261qgcSP0
結局使う奴次第なんよ
2026/06/04(木) 15:21:19.82ID:Z42QvdZI0
.mdにAHK公式ドキュメントのURLを書いて「これを毎回必ず参照しろ」と入れておけば、無限ループみたいな凡ミスはしなくなるよ。
197名無しさん@お腹いっぱい。
垢版 |
2026/06/04(木) 15:49:45.79ID:/8Va5zXO0
使い方とか安全性知らんけどai用スキルあるよな
どの程度使えるんだろうな
2026/06/05(金) 13:31:53.32ID:GDrXEfjw0
メモ帳用にctrl+V の貼り付け時に、クリップボードの改行コードを LF→CR+LF に変更する以下のスクリプトを書きました。

#UseHook
^v::
;改行コードLFをCR+LF に置換
newClip := RegExReplace(Clipboard, "(?<!\r)\n", "`r`n")
clipboard =
Clipboard := newClip
ClipWait, 3
if (Clipboard == "")
{
msgbox, クリップボードが空です
}
send, ^v
return

上記コードで ctrl+V を押すと、数十回に1回ぐらい、何も貼り付けられません。
if (Clipboard == "") を書いているので、クリップボードは空ではないはずです。

AIに聞いて以下を試しました。

・send, ^v の代わりに SendMessage, 0x302, 0, 0, Edit1, A を使う → 変わらずたまにペースト失敗

・send, ^v の前に sleep,100 を入れる → ペースト失敗しなくなった

このように、 sleep,100 を入れると失敗しなくなるのですが、連続でペーストするのが遅くなってしまいます。
sleep を使わずに確実にペーストする方法はないでしょうか?
2026/06/05(金) 14:02:43.44ID:fR7tnSxN0
その内容のまま ChatGPT とかに貼り付ければ色々回答してくれるよ
2026/06/05(金) 14:04:20.05ID:eCjhadr00
v1だけどこんな感じの使ってる

MyClipWait(Action := 0) {

Action ? Send % Action
ClipBoard := "1E5z2Rij"
Timeout := A_TickCount + 10000
loop
{
if ClipBoard != "1E5z2Rij"
return ClipBoard
if A_TickCount > Timeout
throw {What:"Timeout", Func:A_ThisFunc, ClipBoard:ClipBoard}
Sleep,1
}
}

sample
s := MyClipWait("^c")
2026/06/05(金) 16:25:41.98ID:GDrXEfjw0
>>199
AIに聞いても sleep を使う方法以外はやはり、ペーストに時々失敗します
2026/06/05(金) 16:48:32.21ID:/xDt0EEP0
Sleep, 100 を以下に置き換えると、確実性を保ったまま遅延を最短にできるかもしれません
while DllCall("user32\GetOpenClipboardWindow", "Ptr") { ; クリップボードにアクセスしているプログラムがある場合、そのハンドルを返す(なければ0)
Sleep, 10
}

ただスクリプトを見る限りでは、根本的な勘違いがあると思われます
ClipWait は他のアプリケーションから ^c などでクリップボードにコピーする際に使用するものです
Clipboard := newClip のようなスクリプト内で直接クリップボードに文字列等を代入する場合は
AHKが内部的にシステムと同期を取る仕組みを備えているため、基本的に ClipWait を使用する必要はありません

そして、この件で問題となっているのは連続動作によって、メモ帳が貼り付け処理を終える前に次の処理が来て
スクリプトがクリップボードを初期化したりしている絶妙な合間に、メモ帳が貼り付け処理をしてしまうためだと思われます
したがって、Sleep の位置は Send, ^v の前ではなく後に置くのが正しいと思われます(というかこの件に関わらず^v直後のSleepはほぼ必須)
上記を踏まえ、以下のようなコードでおそらく要求を満たす動作をするはずです

$^v::
Clipboard := RegExReplace(Clipboard, "(?<!\r)\n", "`r`n")
Send, ^v
loop {
Sleep, 10
} Until !DllCall("user32\GetOpenClipboardWindow", "Ptr")
Return
2026/06/05(金) 18:37:46.83ID:GDrXEfjw0
>>202
回答ありがとうございます。
しかし残念ながらご提示いただいたコードを試しても、やはり10回に1回ぐらいは何も貼り付けられません。
2026/06/05(金) 18:46:29.48ID:KSc5r91Z0
>>200
無視されて可哀想
205名無しさん@お腹いっぱい。
垢版 |
2026/06/05(金) 19:45:44.06ID:12RB0yA10
今調べてみたら、私が使っているのはVer.1.1のようだ
2.にした方がいいかな? いろいろ書きなおすのは面倒だけど
2026/06/05(金) 20:33:34.77ID:Om6VoK0C0
>>205
v1、v2 と両方併存インストールできるし、スクリプトで v1、v2 用の識別は出来るから、
出来る部分から書き直していったら?

#Requires - Syntax & Usage | AutoHotkey v1
https://www.autohotkey.com/docs/v1/lib/_Requires.htm
#Requires - Syntax & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/lib/_Requires.htm
2026/06/05(金) 20:51:43.24ID:3ye168KW0
AHKもPythonみたいな問題抱えないで欲しいわ~
なんで2つの系統に分岐するのかw
2026/06/05(金) 21:05:22.49ID:/xDt0EEP0
>>203
少なくとも私の環境では198のコードでもそういった問題は発生しないので環境依存である可能性が高いです
・他のスクリプトと併用している場合、すべて停止してスクリプトを最小の構成で試してみる
・なんらかのクリップボード拡張(Windows純正を含む)を利用している場合止めてみる
原因を突き止めるならこういったことを地道にやっていくしかないです

あとは、Send, ^v の前に Sleep, 100 で問題が発生しなくなるなら
とりあえず Sleep, 15 から15刻み(Sleepの実測は15.625刻みなので)で試して最短遅延で妥協するとかですね

特殊な事例として、Win11のタブ付きのメモ帳は SendInput と相性が悪い(メモ帳側のバグがある)ので
v1のデフォルトは Event ですが、変更している場合 Event に戻す必要があります
2026/06/05(金) 21:24:15.10ID:Om6VoK0C0
>>207
ただ v1 は公式に "deprecated" となってるから、新しいスクリプトを書くなら v2 の方がエエと思うで。
2026/06/05(金) 21:27:16.38ID:yAgaTcNq0
pythonも分岐しとらんやろ
2026/06/05(金) 22:04:38.05ID:3ye168KW0
分岐というか分離か?1つのver系統で使わせてほしいわー
2026/06/05(金) 23:24:48.44ID:qWtZ7hLH0
よく言われるモディファイア押しっぱなし病もAHK内で解決するし
アイデアが無い人はどんな言語でも無理でしょ
2026/06/07(日) 06:34:10.01ID:wmFno/uV0
1ファイル運用で2000行位と長すぎになってきたから
include形式にして機能ごとにファイル分割した
もっと早く分割してけば良かった
2026/06/07(日) 07:45:47.54ID:VmmyfB6S0
メニューとか出す時は、分割ですらなくて、
別ahkを起動した方が安定する
レスを投稿する


ニューススポーツなんでも実況