AutoHotkey スレッド part33

■ このスレッドは過去ログ倉庫に格納されています
2024/01/23(火) 16:30:58.38ID:VpJPb0gB0
■公式サイト
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 スレッド part30 IDのみ
https://egg.5ch.net/test/read.cgi/software/1644313099/
2024/05/11(土) 11:14:45.40ID:9urRrDiD0
>>749
v1の時にAutoHotKeyをはやらせるページを頑張ってくれてた人が、
NILScriptに注力するためにコンテンツを消してしまった
GitHubの日本語情報が代替としてあるとはいえ、
v2のローカライズが遅かった
2024/05/11(土) 11:27:15.15ID:6Gx3TGGs0
リファレンスあれば書けるでしょ
そんな凝った使い方するようなもんじゃないし
あんまり深入りしてもドツボだよ
どんな要求にも応える、みたいな懐の深い言語じゃない
やりすぎると大抵不安定になる
2024/05/11(土) 11:28:30.69ID:9urRrDiD0
>>753
リファレンスさえあれば普及するってんなら世の中COBOLすら普及してなきゃおかしいんだが
2024/05/11(土) 11:58:25.75ID:7+gM5GoT0
サンプルがあってそれを改造して、さらにそれを見た奴が閃きで違うことして、さらに広まる

それが多い言語ほど広がってる
2024/05/11(土) 12:55:41.63ID:1yCl5vAd0
>>1 のクイックリファレンスは機能を理解するのに丁寧で必要十分なサンプルがあるけどな
これ読んだ上で情報がないとか言うならしょうがないが
2024/05/11(土) 13:09:33.81ID:NOtnzF+H0
>>752
NILScript、鳴かず飛ばずのまま1年くらいの活動でサイトもツイッターも放置されてるのがもの悲しい…
正直流行らせるページを続けてた方が得るものがあったんじゃないかと邪推しちゃう
2024/05/11(土) 13:20:17.38ID:aVfCErAf0
ド初心者はLLMに聞きながら書くのがいいと思う
2024/05/11(土) 13:22:43.06ID:VMeB8lyY0
>>757
画像検出はぜったいやらないとか、作者の想定の利用シーン以外には
対応しないって姿勢が結構頑なだった印象
760名無しさん@お腹いっぱい。
垢版 |
2024/05/11(土) 15:37:23.40ID:/LnLSzpA0
てすと
ドングリ
2024/05/11(土) 16:29:24.10ID:5EAAF0xM0
ToolTipに操作対象のウィンドウ名常時表示した状態でホットキー動かすと、
WinTitleだけで対象指定してる場合は挙動イかれるのかよ
ToolTipにタイトル存在しないからか?

ゴチャゴチャ書くの怠いからWinTitleで指定一本化した矢先にこれか…
2024/05/11(土) 16:43:40.66ID:jpYw7NP80
タイトルだけで特定するって行為がそもそもおかしい
2024/05/11(土) 17:23:28.20ID:5EAAF0xM0
タイトル指定のみの何がおかしいのか知らんがahk_exec追加で指定しても>>761だったんで、
そもそも対象指定するのにWinTitleを使う場合、
ToolTipの本文内にWinTitleと同一の内容を含めて表示したままにしないほうがいいらしい

まあ限定的な状況だとは思う
2024/05/11(土) 17:25:25.64ID:9urRrDiD0
>>762
どうやって指定するのが無難?
2024/05/11(土) 17:51:25.05ID:1yCl5vAd0
>>763
どう挙動がおかしい?
仕様だとしても書いたコードを貼らんと参考にならんよ
2024/05/11(土) 18:09:59.29ID:jpYw7NP80
>>764
そりゃ状況によるけど、実行ファイルとかコントロールとか最低でも
もう一つは指定しないと誤爆しまくるじゃない
もちろんハンドルが取得できれば、それに越したことないけど
状況的に取得できないから、タイトル使ってるんだろうし
2024/05/11(土) 18:16:08.80ID:9urRrDiD0
>>766
実行ファイルでの指定なんてできるの?
できるなら是非知りたい
まさにタイトル文字列での誤爆に困ってる
2024/05/11(土) 18:26:04.30ID:5EAAF0xM0
すまんおかしいのはクリックでしかも>>763は不完全な検証だった
WinGetPosで解像度取得してクリックアドレス相対指定するように組んでるのに、
動作にだけahk_exe追加してそっちに追加するの忘れてたわ…中見たら案の定ToolTipの解像度拾ってた

要するにデフォの絶対値指定だけ使っていれば>>761は発生しない
多分コマンドのほうも直したほうがいいんだろうけど、
何故かそっちは素で通るからWinGetPosだけ直せばいいや…
2024/05/11(土) 18:35:35.39ID:jpYw7NP80
>>767
https://ahkscript.github.io/ja/docs/v2/misc/WinTitle.htm#ahk_exe
2024/05/11(土) 18:40:03.50ID:1O/mDwJe0
ahk_exe 指定はフルパスでも指定出来るので同じモジュール名が複数動いてる環境で本当に有り難い
2024/05/11(土) 18:56:44.20ID:9urRrDiD0
>>769
ありがとう!
v1から長いこと使ってるけど、こんな風に指定できるの知らなかった
それにまさにパスの違う同じ名前の実行ファイルで取り違えが起きてたので、
>>770のフルパス指定できるって情報も助けになった
今まで半自動で作業してたことを全自動にできるかもしれない
本当に感謝してます
2024/05/11(土) 18:59:46.27ID:1yCl5vAd0
ahk_exeなんてそれこそ、はやらせるページ時代から丁寧に解説されてるじゃないか
結局リファレンス読んでないだろ?
2024/05/11(土) 19:01:30.72ID:1O/mDwJe0
使って無い機能も含めてリファレンスはざっと全部目を通しておくべきだな
V1から長いこと使ってるけどいまだに知らない機能に気付くことがある
2024/05/11(土) 19:19:22.70ID:5EAAF0xM0
v1から使っててahk_exe知らないって何の冗談だよ…
2024/05/11(土) 19:20:50.10ID:jpYw7NP80
ahkのリファレンスはかなり丁寧に解説されていて、個人的には
分かりやすいと思うけど、それがゆえに分量が増えちゃって
初級者に敬遠されてるのかもとか、最近思い始めた
2024/05/11(土) 19:31:54.16ID:6Gx3TGGs0
逆にahk_exeしか知らん
2024/05/11(土) 21:04:23.50ID:FTReVDlq0
V2のドキュメントの日本語版はところどころ未翻訳部分があって結局英語版をグーグル翻訳した方が早くなっちゃうのよね
778名無しさん@お腹いっぱい。
垢版 |
2024/05/12(日) 00:21:58.68ID:Lj8Usimt0
>>777
まあ、すぐゴミサイトになるだろうな
v2日本語サイト
779名無しさん@お腹いっぱい。
垢版 |
2024/05/12(日) 13:51:56.00ID:OiD4EGGI0
>>768撤回するわこの状態だとTooltipだけにキー入力送られる場合があった
操作発生するタイミングでTooltipにウィンドウ名表示してるだけでマズい
で結局の所起動処理に一行付け加えれば済むだけの話だった…

WinSetTitle("active_windows", "ahk_class tooltips_class32 ahk_exe AutoHotkey64.exe")

タイトルなくてもahk_ Criteriaは拾えるんだからそりゃそうだよな
何でこんなことにこんな時間かけてんだ…もう脳の老化がヤバイわ

WhichToolTip使う場合とかToolTip非表示にする場合の話は知らん
2024/05/12(日) 14:03:21.98ID:3upPhzKT0
>>779
何がしたいのかさっぱり分かりませんが、v2であればToolTipの戻り値はhwndなのでそれで指定すれば良いのでは?
2024/05/12(日) 14:17:51.97ID:BdA3gBv60
>>780
その人はりんごタイプだろ
リンゴをどこで買ったのか聞いて欲しい
2024/05/12(日) 14:17:54.57ID:hg21L+iT0
>>770
ほー フルパスいけるのか長い事知らんかった
hwndで分けてたよ
2024/05/12(日) 15:37:44.57ID:OiD4EGGI0
何がしたいのと言われても、
まんまTooltipに窓名出して且つwintitleだけでコマンド制御することとしか言いようがないんだが
2024/05/12(日) 22:15:33.45ID:0p/klAZ80
数万行おじさんかな
2024/05/14(火) 01:28:25.99ID:bCkGacWh0
誰が勝ってた先輩が稼いでくれた資金を投入して圧縮により燃焼させる
2024/05/14(火) 01:36:48.27ID:Nn0mbi0Y0
あとは成績とビジュアルだと思う
2024/05/14(火) 02:23:42.37ID:eoOeMzvn0
糖質制限とケトジェニックに移行してるだけようやっとるで
害悪でしかない
2024/05/14(火) 02:35:40.54ID:kjp4cgOR0
・テレビ出演経験あり
焦りすぎだな
789名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 02:35:47.57ID:L007dwIp0
・次スレは(^ワ^=)に報告🌈🦀
790名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 02:43:15.10ID:apCEvSQ20
あれは歯が合わなくてもいいしな
確かに痛いけどジェイクは頭大きいよ
2024/05/14(火) 02:59:17.17ID:9pNCB/ti0
番組開始初回は1週間ちょい過ぎて意味わからん
スレッガーより凄いな
警察が相手にしないで
鼻の付け根(眉間)の介護は施設任せにして値上がりがあるのか疑問でもよくて頭良いからこそできることだろう。
792名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 03:07:55.16ID:MZuFOC7g0
結構ショックや(´・ω・`)
793名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 03:44:35.01ID:J6jGjij+0
ガチで知恵遅れ発達障害ガイジやんw
切手販売がこのままで変わるのも含めて)
794名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 03:59:32.22ID:fwPpGwaV0
普段から言動が伴ってれば良かった
2024/05/14(火) 04:22:56.99ID:iH0cn/RV0
チラ裏 Bluetoothイヤホホ接続 bluetooth enumeratorで色々やってたら理想の動作するようになった&1000行超えた わーいねむい
2024/05/14(火) 04:58:57.69ID:nyn+iQG40
ちなみに勃起はしてくるし
2024/05/14(火) 05:19:56.60ID:tqpOnHMD0
ゲームもアホてのは全く増えない
スケート界になってるZeebraはすごいと思うんだよ
「お父さんとかお母さんが前よりも近くで声かけていただろう
798名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 05:20:38.39ID:LmhMXKoJ0
改行って、スタンドで見る目がどのくらいか知らんが
799名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 05:35:57.33ID:3z9PQHf/0
みんな死にますか
おしえてください
800名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 05:55:15.10ID:HdI0+zU90
▼インターネットホットライン
インターネット上のマウントはしないといけない
バカか
801名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 06:04:11.03ID:rnbB7qvW0
そろそろ出始めてる気が…
JRも発車しました。
しかし
漂泊クリーム
https://uvx.id4.hpcx/nWIe1fZs8/laoN1d4b
802名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 06:16:15.64ID:OXJmIpri0
芸人で言うなら間違いないわ
803名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 06:17:03.50ID:IabDEa+x0
残業するよりかは俺が
804名無しさん@お腹いっぱい。
垢版 |
2024/05/14(火) 06:28:16.66ID:dLrZxC0V0
そんだけ衝撃があったのが不思議なくらいなのでは
未成年者も。
2024/05/14(火) 06:31:57.83ID:JNyMrcXv0
いまひっきーを見てるんだろうなー
2024/05/16(木) 07:27:07.59ID:ILcgyamM0
Release v2.0.15 · AutoHotkey/AutoHotkey · GitHub
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.15
2024/05/16(木) 10:04:49.01ID:0yh/yMJB0
たまには上げないとな
2024/05/16(木) 12:53:54.76ID:59AM+jqY0
ahkファイルってコンパイルしたら軽くなる?
2024/05/16(木) 15:15:11.99ID:w3SsOm1m0
軽くとだけいわれてもファイルサイズかメモリ使用量かCPU時間か挙動なのか

実行部とスクリプトを梱包するだけだから特に変わらんのでは
2024/05/16(木) 15:43:05.39ID:59AM+jqY0
そうか
まあ試してみるか
2024/05/16(木) 16:35:06.72ID:Y1IFZk/m0
前後の総ファイルサイズは変わらないの?
2024/05/16(木) 17:52:07.33ID:59AM+jqY0
環境構築で詰まってる
インタープリタがないらしい
2024/05/17(金) 00:30:48.95ID:b8ZHD98q0
Blindって何してるの?
SandSやろうとそてるけどよくわからん
^h::send "{Blind}{BS}"も一気に1行消したりするし意味がわからない
814名無しさん@お腹いっぱい。
垢版 |
2024/05/17(金) 00:58:09.07ID:fGnBxIgx0
>>813
Blind
俺も気になってたが、
色々効果があるみたいだな
2024/05/17(金) 01:17:53.40ID:jqlBT6UF0
ahkのスクリプトが重いってpentiumⅢとか使ってるのかな?
2024/05/18(土) 12:55:24.72ID:LyMD0cKV0
Blindは修飾キーの回避処理をスキップするモード ttps://www.autohotkey.com/docs/v2/lib/Send.htm#blind
^h::Send,{Blind}{BS} だとctrlを開放せずにBSをsendするのでOS側はctrl+BSが押された認識してる
2024/05/18(土) 13:23:27.13ID:LopddyrV0
>>816
Blind消したらBSの挙動になった
ありがとう
公式読んだけどわからなかったんだよね
2024/05/19(日) 11:06:56.59ID:Huhrrvnn0
モニタの数やどれがプライマリかを変更することが度々あるんですが
それをやったあとAHKでの指定座標がおかしくなることがあります
PC自体の再起動以外に治す方法はないですか?
2024/05/19(日) 11:38:46.90ID:bL+5znIj0
v2にAhk2Exe.exeが入ってなくない?
どうやってコンパイルするんだ
2024/05/19(日) 12:32:28.73ID:SNXzDYZA0
インストーラーから自動でダウンロード
手動ならGitHub行けば済む話
2024/05/19(日) 12:56:44.27ID:WcNzOpnq0
>>818
https://ahkscript.github.io/ja/docs/v2/Variables.htm#BuiltIn
https://ahkscript.github.io/ja/docs/v2/lib/SysGet.htm
モニタのピクセル数に影響されるなら A_ScreenWidth A_ScreenHeight
マルチモニタ関連は SysGet から調べればよいのでは
822821
垢版 |
2024/05/19(日) 13:37:25.96ID:WcNzOpnq0
あれ?よく読んでなかった。再起動で直るなら関係ないか
2024/05/19(日) 13:41:58.45ID:2QxtUpEp0
モニタの設定変えた直後と、その状態で再起動したあとで挙動が違うってのは
ドライバレベルの問題な気がするんでどうしようもなさそうな予感
2024/05/20(月) 23:11:30.06ID:LPWz1jpb0
ClipboardHistoryが地味に更新されているのが嬉しい
もう開発終わったのかと思ってた
2024/05/21(火) 16:01:50.24ID:T3sLkvo40
>>824
ClipboardHistory、いいですよね
スクリプトを読んでるといろいろ参考になります

config.txtを編集すればカスタマイズが簡単なので
「各行先頭に連番追加」で: `を`タブ`に書き換えて使ってます
連番機能のないエディタや、連番機能が貧弱なエディタで、便利に使えます

そういえば、Vectorで公開されているIMEユーティリティDimeも中身はAHKスクリプトです
2024/05/24(金) 11:54:53.74ID:Zt2mVVVH0
変数の型を明示できないと気持ち悪い気がしないでもない
2024/05/24(金) 16:37:10.48ID:3oO0gaNp0
>>825
Dimeはahkのソース公開してないのかな?
electoron系も大丈夫だったからキャレット位置取得の関数部分だけ使いたいな

AHKは逆コンパイルできるんだっけ?
2024/05/24(金) 22:22:27.50ID:gZ9ot4+X0
>>827
dime.exeをエディタで開いて、UTF8テキストモードで後ろの方を見るとソース見れます
2024/05/24(金) 22:40:54.00ID:3kpvIWaD0
vzエディタの設定ファイルをエディタで開くと見ーたーなーと書いてあって裏技が案内されてる的な
2024/05/24(金) 23:25:37.01ID:3oO0gaNp0
あった
とりあえずdecompile出来たけどこのソース抽出めんどいなー

EXE2AHK - AutoHotkey Community
www.autohotkey.com/boards/viewtopic.php?f=6&t=59015
2024/05/25(土) 03:18:47.72ID:U8oO0Q3V0
VSCodeで編集するとスタティック変数は名前変更可なのにインスタンス変数は名前変更不可なのモヤモヤする
2024/05/28(火) 18:28:42.65ID:GwhjLoqu0
v2を使ってあるゲームのwadsをカーソルキーに割り当てて使おうとしたのですがカーソルキーを押し続けると
ずっと押し続けたような状態になって元に戻らないことが頻発します
どうにかなりますか

#HotIf WinActive("ahk_exe 実行ファイル.exe")
Up::w
Left::a
Right::d
Down::s
#HotIf
2024/05/28(火) 22:19:31.36ID:90ET1uh60
よく分からないけど押しっぱなし問題はちょいちょい起きる
解決できないのでリセット用のキーアサインを用意する
2024/05/28(火) 22:24:40.68ID:aSXazPJr0
キーリピートをひたすら追っかけてるだけじゃないの
2024/05/28(火) 22:36:49.87ID:90ET1uh60
LLフックの限界がある
より低いレベルから割り込まれると矛盾が起きる
状態変数とか持って複雑な管理をするほど壊れやすい
凝ったことはしないのが吉
2024/05/28(火) 23:03:22.94ID:4+RzNgio0
キーボードやマウスのドライバが干渉するケースもあるね
特にマクロやジェスチャーが使えるタイプ
MSの標準ドライバにすると収まったりするけど
一部のキーが使えなくなったりと弊害も大きい
837832
垢版 |
2024/05/29(水) 10:30:30.84ID:0KFDSECc0
ダメモトでCopilotにきいてみたら3つ方法が提示されてそのうち
SendMode InputThenPlayを使用して、キーの入力を正確に制御できるようにするという
方法でうまくいきました

SendMode("InputThenPlay")
#HotIf WinActive("ahk_exe Urbek.exe")
Up::w
Left::a
Right::d
Down::s
#HotIf
2024/05/29(水) 11:39:16.75ID:0KFDSECc0
"Urbek.exe"というファイル名をうっかり書いてしまったがこれはゲームの実行ファイル名
他のウィンドウでもキー割り当てが有効になってまった
SendModeのすぐ下の行はなぜか実行されないようで、下に空行を付ける必要があった


SendMode("InputThenPlay")

#HotIf WinActive("ahk_exe Urbek.exe")
Up::w
Left::a
Right::d
Down::s
#HotIf
2024/05/29(水) 11:42:33.86ID:i+pm0mok0
>>838
それって、
既知のバグなの?
2024/05/29(水) 12:56:48.34ID:0KFDSECc0
自分で色々試して対応した

2.0.7を2.0.15にバージョンアップしたら問題が発生しなくなった
バグが直されたのかもしれないね
2024/05/29(水) 12:58:24.79ID:mcawn8o40
昔からある物理的に押下した修飾キーの押しっぱなし病も色々な対策例のうち

例1. ホットキーの先頭で修飾キー解放まで待つ(CtrlならKeyWait "Ctrl")
例2. SendをSendEventに置き換える

で再現しなくなったが例1は当然送信が遅くなるので例2と同じ意味になる
SendMode "Event"でまとめたらなぜか再現したので同じように空行にして様子見してみる
2024/05/29(水) 16:59:21.00ID:VdSUJTRo0
過去スレにあったやつ使ってて今のところ問題ない
forをloopにした

holdup_key() {
Sleep, 5
keys = ["Control", "Ctrl", "Shift", "Alt", "Win", "sc079", "sc07B", "sc070"]
SendInput, {Blind}{LControl Up}{LShift Up}{LAlt Up}
loop, 2
{
loop, len keys
{
SendInput, {Blind}{keys[A_Index] Up}
}
}
}
2024/05/29(水) 17:21:36.85ID:c0MwHFKi0
>>840
半年以上前のバージョンじゃないか
さすがに古すぎ
質問する前にまず試すべき要件
2024/05/29(水) 18:51:10.93ID:eu1JLHkv0
なぜパッケージマネージャを使わないのか
2024/05/29(水) 19:17:33.50ID:mcawn8o40
>>842
物理修飾キーを使うホットキーのSendの後にこれを実行する感じ?
同じようなことは散々試したけど、v2でキー履歴みると最後にdown状態送信するんだよなぁ
2024/05/29(水) 22:45:30.14ID:JmkzWcXF0
>>842
結果として問題が起きていないだけでコードとしては問題がありますね
その関数内で実際に機能しているのは
Sleep, 5
SendInput, {Blind}{LControl Up}{LShift Up}{LAlt Up}
の2行だけです
また、私見ですがその位置にあるSleepは効果があるようには思えません
現状問題が起きていないなら1行だけで良いはずです
2024/05/29(水) 22:54:07.12ID:VVdYEZwI0
>>846
sleep入れると安定する
理由は全然わかんない
2024/05/29(水) 23:15:12.84ID:bUYrs4Wr0
sleep 1
みたいなあってもなくても変わらない筈の処理が、
あると無いのとでは大違いだったりする

OS的には一旦処理を手放して、ぐるっと一周してから戻ってくるので、
他の処理との兼ね合いは全然違う
2024/05/29(水) 23:39:17.56ID:JmkzWcXF0
別に全ての場合においてのSleepを否定しているわけではありません
842の関数内で冒頭にあるSleepの効果に疑念があるだけです
2024/05/29(水) 23:43:30.40ID:bUYrs4Wr0
不思議だろうけど、経験的にそうやったら上手く行ったという事実には敵わんよ
2024/05/30(木) 06:15:06.98ID:2ABqZiu20
>>844

パッケージマネージャって?
2024/05/30(木) 14:03:36.11ID:Hz3rfbTZ0
>>849
もし解っているなら、
今後の人達のためにloopのところの処理 >>842 直してくだされー
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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