AutoHotkey スレッド part36
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")
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 を使う方法以外はやはり、ペーストに時々失敗します
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
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
2026/06/05(金) 18:46:29.48ID:KSc5r91Z0
>>200
無視されて可哀想
無視されて可哀想
205名無しさん@お腹いっぱい。
2026/06/05(金) 19:45:44.06ID:12RB0yA10 今調べてみたら、私が使っているのはVer.1.1のようだ
2.にした方がいいかな? いろいろ書きなおすのは面倒だけど
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
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
なんで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 に戻す必要があります
少なくとも私の環境では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 の方がエエと思うで。
ただ 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形式にして機能ごとにファイル分割した
もっと早く分割してけば良かった
include形式にして機能ごとにファイル分割した
もっと早く分割してけば良かった
2026/06/07(日) 07:45:47.54ID:VmmyfB6S0
メニューとか出す時は、分割ですらなくて、
別ahkを起動した方が安定する
別ahkを起動した方が安定する
2026/06/07(日) 14:20:05.82ID:UhH5VOqu0
分割したファイルが関数ライブラリ機能で複雑に呼び合いまくってるんで
関数ライブラリ廃止しやがったせいでv2移行は一生無理
関数ライブラリ廃止しやがったせいでv2移行は一生無理
2026/06/07(日) 14:33:16.41ID:VmmyfB6S0
Includeするだけやん
2026/06/07(日) 15:44:08.10ID:Uvsxwy520
特にv2移行する気もないしIME.ahkとかそのまま使えるのかすら興味ない
218名無しさん@お腹いっぱい。
2026/06/07(日) 16:19:21.75ID:hLCJw5U402026/06/07(日) 20:54:24.54ID:HZF3MJlJ0
AIがAHKファイル作成代行の時代やしな~
v1とv2はそんな違いもあるのか~ただ公式はv2をメインストリームにするだろうね
v1とv2はそんな違いもあるのか~ただ公式はv2をメインストリームにするだろうね
2026/06/07(日) 21:00:24.10ID:cz+1kpI70
2026/06/07(日) 21:10:48.05ID:VmmyfB6S0
v1の本質的に駄目な部分をv2も受け継いでるので、
機械的な置き換えでv2化できてしまう
つまり、わざわざv2にするメリットは無い
機械的な置き換えでv2化できてしまう
つまり、わざわざv2にするメリットは無い
2026/06/08(月) 00:45:18.52ID:d/HB0aS00
そういうのAIとやってね
どんなゴミネタでも無限にレスバしてくれるよ
どんなゴミネタでも無限にレスバしてくれるよ
2026/06/08(月) 00:52:13.31ID:cv5gR2nM0
繰り返しになったり打ち切られたりするよ
2026/06/08(月) 01:44:05.39ID:/VzdjPBk0
>>220
普通に対応してるぞ?内部の言語にC系とか学習させてるんやろ
普通に対応してるぞ?内部の言語にC系とか学習させてるんやろ
2026/06/08(月) 07:26:02.21ID:Cf6M5iRB0
226名無しさん@お腹いっぱい。
2026/06/08(月) 20:05:01.04ID:lQRI/SCo0 今のAIに書けない言語なんか殆ど無いぞw
2026/06/19(金) 23:04:26.09ID:V8LfCaYr0
のどかはx64は通ってるのにx86で難航しているらしい
そんなもん要らんからさっさと公開して欲しい
そんなもん要らんからさっさと公開して欲しい
2026/06/22(月) 06:29:12.26ID:ANA3kfZO0
また変態度が上がってしまった
"E:\Ero\Movie".MustIsDir.GetItems({r:1, d:0}).MustNotEmpty.DbgLog.Shuffle.1.Open
"E:\Ero\Movie".MustIsDir.GetItems({r:1, d:0}).MustNotEmpty.DbgLog.Shuffle.1.Open
2026/06/23(火) 18:09:44.16ID:UUnJG1Hb0
E:\Ero\Movie 配下のエロ動画をランダムに選択するスクリプト 乙
2026/06/28(日) 20:32:54.88ID:lYn7zhFD0
のどか 4.31リリース
やっぱりアップグレード代がかかるので粘って正解
やっぱりアップグレード代がかかるので粘って正解
2026/06/28(日) 23:01:00.78ID:y/eIz+Tg0
2026/06/28(日) 23:10:33.23ID:lYn7zhFD0
のどかだと、英数キーをレジストリでF13とかに入れ替えても無視される
デバイスドライバがさらに先回りして入れ替えてる
その結果、mod mod0 = 英数 みたいに他のキーと同様に書くだけで
モディファイアを定義できる
デバイスドライバがさらに先回りして入れ替えてる
その結果、mod mod0 = 英数 みたいに他のキーと同様に書くだけで
モディファイアを定義できる
2026/06/29(月) 16:50:19.30ID:wxGRPGGO0
でもAutoHotKeyと同居出来ないんでしょ
覗いてみたら注意書き多くて、今の環境止めてまで試してみようという感じに欠片もならんかった
覗いてみたら注意書き多くて、今の環境止めてまで試してみようという感じに欠片もならんかった
2026/06/29(月) 19:38:25.38ID:owH2bl/H0
普通に同居しとるよ
キー置き換えみたいなキーの奪い合いに勝ちたい部分はのどかに任せて、
メニューを出すとか、画面を検索するとか、動けばいい部分はahk
キー置き換えみたいなキーの奪い合いに勝ちたい部分はのどかに任せて、
メニューを出すとか、画面を検索するとか、動けばいい部分はahk
2026/06/29(月) 20:07:24.23ID:KDMBZdUw0
ネット上からV1のコードを抹消してくれ
AIがV1とV2をごちゃまぜに書くから
AIがV1とV2をごちゃまぜに書くから
2026/06/29(月) 20:16:47.09ID:QZT0bGdB0
V2限定でと書いてもちょいちょい混ざるだよな
2026/06/29(月) 22:43:52.49ID:YmDGrArC0
NSISとかああいうのも苦手だから自分でエラー内容から資料を探して渡すほうが早えわ
2026/06/30(火) 00:19:52.12ID:jzm7RmJp0
のどかとかどうでもいいから専用スレ立てろよ
239名無しさん@お腹いっぱい。
2026/06/30(火) 23:53:22.64ID:gWvemdUF0 v1がノイズなのはわかるけどv2リリースってめっちゃ最近だよね致し方なし
レスを投稿する
ニュース
- 【富士山】「考え方がズルい」市長発言にクライマー猛反発「アルピニストが育たなくなる」6000人超の反対署名を本日提出 [ぐれ★]
- 【W杯】ブラジルに敗れた森保監督「これからも世界一を目指して日本のために頑張りたい」★5 [ネギうどん★]
- 【W杯】ブラジルに敗れた森保監督「これからも世界一を目指して日本のために頑張りたい」★6 [ネギうどん★]
- 【円安】1ドル162円台まで下落 円相場が39年半ぶりの円安ドル高水準に ★4 [ぐれ★]
- 高市政権、野党不在にかまわず法案の審議入り強行 「戦時中の翼賛政治を上回る強権だ」非難強まる [少考さん★]
- 【富士山】「考え方がズルい」市長発言にクライマー猛反発「アルピニストが育たなくなる」6000人超の反対署名を本日提出 ★2 [ぐれ★]
- TWICEサナの常時パンティーまるだし衣装が話題😲 [861717324]
- 株で焦らしプレイの能力開発してる
- ダブルクロス❌😅❌🏡
- 【高市悲報】5月の石油輸入量、前年同月比の6割程度で4585万バレルと需要の半分程度しか輸入出来ず🥹 [616817505]
- 【訃報】円安、止まらない [943688309]
- 50代だけどまだ人生立て直せるよな?