■公式サイト
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 スレッド part33
https://egg.5ch.net/test/read.cgi/software/1705995058/
AutoHotkey スレッド part34
■ このスレッドは過去ログ倉庫に格納されています
2024/06/30(日) 02:12:16.24ID:JUH7aQw10
2024/08/20(火) 12:32:27.13ID:pTQASLKV0
その質問ってv1とv2を両方インストールして同時実行できるかってことじゃなくて
v2だけインストールしてv1のスクリプトも実行できないかみたいなことじゃないの
v2だけインストールしてv1のスクリプトも実行できないかみたいなことじゃないの
2024/08/20(火) 13:17:02.56ID:Dl+hbEmV0
>>338 の質問の意味というか、何がやりたいのかが良くわからんよな。
2024/08/20(火) 13:24:53.57ID:kV/WktE+0
ランチャー的なスクリプトをv2、
そこからv1スクリプトを走らせたいんじゃないかと想像
そこからv1スクリプトを走らせたいんじゃないかと想像
2024/08/22(木) 11:32:28.97ID:seH00Wb20
ばぶすらってちょっと期待外れ過ぎたな…
こいつが買った株僅かだが
ニコ生の欠点ではだめっていう要素があるんやろ
こいつが買った株僅かだが
ニコ生の欠点ではだめっていう要素があるんやろ
361名無しさん@お腹いっぱい。
2024/08/22(木) 12:21:23.95ID:hNvGSx+U0 ガーシーの梯子外す段階に入ってきて枠の終焉を感じたとか気付くと火傷してるんだろうな
スタッフ全部変えたんか
ニワトリ並みの脳みそ検査しとこう
https://i.imgur.com/U4bLulN.jpg
スタッフ全部変えたんか
ニワトリ並みの脳みそ検査しとこう
https://i.imgur.com/U4bLulN.jpg
2024/08/24(土) 12:22:56.16ID:6aAZql5E0
Send "abcdefghijklmnopqrstuvwxyz"
MsgBox "msg"
途中までしか送信が入力されないアプリがある
おかしい
MsgBox "msg"
途中までしか送信が入力されないアプリがある
おかしい
2024/08/24(土) 23:06:04.70ID:FAuatfHZ0
アプリが入力をじわじわ受け取るタイプだと
途中でメッセージボックスにフォーカスを取られるからでは
途中でメッセージボックスにフォーカスを取られるからでは
2024/08/25(日) 00:07:07.34ID:QaetD17x0
SendInputにしてみては?
2024/08/25(日) 09:03:57.38ID:ECeZbsSk0
366名無しさん@お腹いっぱい。
2024/08/25(日) 13:04:07.70ID:jax9LWR70 Ahk2Exeでコンパイルしたファイルを実行しようとするとVIRUSと判定されてしまう問題について
何か続報はないのか?
何か続報はないのか?
2024/08/25(日) 13:23:51.46ID:IsIQMziW0
圧縮しなければ良い
2024/08/25(日) 13:51:23.74ID:V0FOCurh0
2024/08/25(日) 13:52:59.33ID:TNFmKAIi0
続報も何も、アプリケーションにソフトウェア的に割り込む行為自体がハックだから
ビヘイビア由来のヒューリスティックに引っ掛かるのは至極当たり前
ビヘイビア由来のヒューリスティックに引っ掛かるのは至極当たり前
370名無しさん@お腹いっぱい。
2024/08/25(日) 15:00:09.92ID:i3Ep1q7C0 >>369
ずっと使ってきて何の問題なかったのに、今年の春ごろ「トロイの木馬」とか表示が出て、
実行ファイルまで削除されるようになってしまったので、奇妙だと思っている
しょうがないから「除外」のリストに入れて使い続けているけれど
ずっと使ってきて何の問題なかったのに、今年の春ごろ「トロイの木馬」とか表示が出て、
実行ファイルまで削除されるようになってしまったので、奇妙だと思っている
しょうがないから「除外」のリストに入れて使い続けているけれど
371名無しさん@お腹いっぱい。
2024/08/25(日) 15:00:20.63ID:jax9LWR70 >>369
ずっと使ってきて何の問題なかったのに、今年の春ごろ「トロイの木馬」とか表示が出て、
実行ファイルまで削除されるようになってしまったので、奇妙だと思っている
しょうがないから「除外」のリストに入れて使い続けているけれど
ずっと使ってきて何の問題なかったのに、今年の春ごろ「トロイの木馬」とか表示が出て、
実行ファイルまで削除されるようになってしまったので、奇妙だと思っている
しょうがないから「除外」のリストに入れて使い続けているけれど
2024/08/25(日) 15:32:17.08ID:TNFmKAIi0
defenderの話なら、最近exeに対して敏感になったから
そのせいでしょ
未署名の野良のインストーラーも一時引っ掛かりまくってたし
そのせいでしょ
未署名の野良のインストーラーも一時引っ掛かりまくってたし
373名無しさん@お腹いっぱい。
2024/08/25(日) 15:42:05.42ID:jax9LWR70 >>372
そうなのかな だったらまあ心配しなくていいのか
そうなのかな だったらまあ心配しなくていいのか
2024/08/25(日) 18:32:34.26ID:IsIQMziW0
>>370
一部のトロイがUPX圧縮を使ってるからアンチウイルスはUPX圧縮に厳しい
コンパイルオプションで圧縮しない様にすれば引っかからないこと多い
続報も何も過去にも何度か同じ内容をAHKスレで書いてる
一部のトロイがUPX圧縮を使ってるからアンチウイルスはUPX圧縮に厳しい
コンパイルオプションで圧縮しない様にすれば引っかからないこと多い
続報も何も過去にも何度か同じ内容をAHKスレで書いてる
2024/08/25(日) 20:47:29.81ID:IcAHQZ7i0
Visual Studio Codeで書いてるんだけど拡張機能は何がいい?
今のところAutoHotKey v2 Language Supportで大体は満足してるけど、インスタンス変数のリネームができないのが強い不満
今のところAutoHotKey v2 Language Supportで大体は満足してるけど、インスタンス変数のリネームができないのが強い不満
2024/08/25(日) 20:58:14.60ID:NK9fmonF0
2024/08/25(日) 21:06:20.41ID:IcAHQZ7i0
>>376
ローカル変数とスタティック変数はF2キーで関連箇所を一括で名前リファクタリングしてくれるんだけど、インスタンス変数の場合はなぜかそれができない
ローカル変数とスタティック変数はF2キーで関連箇所を一括で名前リファクタリングしてくれるんだけど、インスタンス変数の場合はなぜかそれができない
2024/08/25(日) 23:07:58.12ID:NK9fmonF0
2024/08/25(日) 23:41:50.36ID:/7nYgjKm0
>>378
https://github.com/thqby/vscode-autohotkey2-lsp/issues/423
インスタンス・プロパティを見つけるには、すべての変数の型を導出する必要があるが、変数は複数の型を持つことがある。
https://github.com/thqby/vscode-autohotkey2-lsp/issues/423
インスタンス・プロパティを見つけるには、すべての変数の型を導出する必要があるが、変数は複数の型を持つことがある。
380あぼーん
NGNGあぼーん
2024/08/27(火) 13:34:37.39ID:7qGzub9y0
>>380
サンクス
サンクス
382名無しさん@お腹いっぱい。
2024/09/08(日) 10:24:21.27ID:mbjS21UP0 個人PCなんだけど、autohotokeyって管理者権限と一般ユーザー権限のどっちで起動するものなの?
両方使ってて、使い勝手に違いは感じられない
両方使ってて、使い勝手に違いは感じられない
2024/09/08(日) 11:04:44.42ID:7HwO3Ozo0
使い方による
管理者権限で動いてるアプリのコントロールを触るなら管理者権限いる
管理者権限で動いてるアプリのコントロールを触るなら管理者権限いる
2024/09/08(日) 11:54:46.95ID:+IY41lf50
危ないという噂があるから危ないことはしない
何重にも備えるべき
何重にも備えるべき
2024/09/08(日) 21:30:36.63ID:A+ZxWoZi0
各種サイトでglobal多様せず汚すな的なこと書いてあるけど、上級者的にはglobal := Map()でDBみたいに一元管理するのはおすすめしない?
2024/09/08(日) 21:41:02.69ID:pb61UfPY0
最初から全部、自分一人の管理下てコードを書いているなら
それはご自由にって感じなんだけど
結局は解放されないとか、よそからのライブラリの取り込みなんかで
誤動作するから、大抵のサイトで避けろと書かれているんだと思うが
それはご自由にって感じなんだけど
結局は解放されないとか、よそからのライブラリの取り込みなんかで
誤動作するから、大抵のサイトで避けろと書かれているんだと思うが
2024/09/08(日) 23:07:40.77ID:AwoA2yv90
使用目的がWindowsAPIで使う定数とかであるなら、globalでも支障はないと思います
AHKで個人で使うスクリプトぐらいの開発規模だとglobal変数を使用しても、把握しきれないと言うことはあまりないですが
上で言われているようにどっかで拾ってきた他のライブラリ内の変数名と被る可能性があるのが一番の問題となるので
global変数を使うよりも、DB用のクラスを作ってそれのstaticプロパティとやり取りするほうが無難かなと思います
もしくは、クラス内で完結できる内容ならそう作る方がより良いと思います
AHKで個人で使うスクリプトぐらいの開発規模だとglobal変数を使用しても、把握しきれないと言うことはあまりないですが
上で言われているようにどっかで拾ってきた他のライブラリ内の変数名と被る可能性があるのが一番の問題となるので
global変数を使うよりも、DB用のクラスを作ってそれのstaticプロパティとやり取りするほうが無難かなと思います
もしくは、クラス内で完結できる内容ならそう作る方がより良いと思います
2024/09/08(日) 23:39:10.00ID:3OaZnQc90
データのバックアップみたいなもんで、問題が起きたことのない人が面倒なだけに思うのはわかる
2024/09/08(日) 23:58:03.69ID:EJksm7zC0
宣言個所や使用箇所同士を近くしないと、コードを修正するときに困るでしょ
・コード削除で使われなくなっても変数が放置される
・変数がどこで使われているのかわからず、値変更や削除をしていいか判断できない
ゴミ変数がどんどんできて、しかも、ゴミかどうかの判断すらできない状態にすぐなる
・コード削除で使われなくなっても変数が放置される
・変数がどこで使われているのかわからず、値変更や削除をしていいか判断できない
ゴミ変数がどんどんできて、しかも、ゴミかどうかの判断すらできない状態にすぐなる
2024/09/09(月) 11:35:50.28ID:VrkaXQ2i0
> DB用のクラスを作ってそれのstaticプロパティとやり取りするほうが無難
すげーーこんな使い方あるのか!
classはよくわからず避けてきたけど一時と恒久の2種類扱えるDB作ってみる
https://github.com/thqby/ahk2_lib/blob/master/SQLite/CSQLite.ahk
すげーーこんな使い方あるのか!
classはよくわからず避けてきたけど一時と恒久の2種類扱えるDB作ってみる
https://github.com/thqby/ahk2_lib/blob/master/SQLite/CSQLite.ahk
2024/09/09(月) 12:40:12.21ID:7DV4cvxS0
classは名前がかぶるとエラーが出る
global変数は名前がかぶってもエラーが出ない
global変数は名前がかぶってもエラーが出ない
2024/09/09(月) 21:25:23.31ID:hlw0c20n0
座標軸をx,yでglobalに格納しているようなやつがたまにあるけど
ああいうの見ると恐ろしくなるね
ああいうの見ると恐ろしくなるね
2024/09/14(土) 18:47:12.30ID:D48CtUpU0
初めてclass作ったけど
おじさん達が「classはスカートの丈じゃ。長すぎても短すぎてもいけない」とか言ってる意味がやっとわかったよ
おじさん達が「classはスカートの丈じゃ。長すぎても短すぎてもいけない」とか言ってる意味がやっとわかったよ
2024/09/15(日) 19:50:00.48ID:fUvoWpAS0
環境
Win10Pro64bit
AHKv1
NeverwinterNightsっていう古いゲーム
sc7B & q:: m ;; map
で無変換+q呼び出すと
mが押されてマップが表示されつつ
qも押されて左移動してしまう
こんな挙動するアプリって今まで見たことないんだけど
何か対処法ある?
Win10Pro64bit
AHKv1
NeverwinterNightsっていう古いゲーム
sc7B & q:: m ;; map
で無変換+q呼び出すと
mが押されてマップが表示されつつ
qも押されて左移動してしまう
こんな挙動するアプリって今まで見たことないんだけど
何か対処法ある?
2024/09/15(日) 20:06:05.91ID:25mPuJUO0
v2ならsc7B & q::send "m"を試す価値あり
2024/09/21(土) 10:25:50.84ID:+1Aedhid0
qは~qと書いておくべきでは?
2024/09/22(日) 12:12:37.82ID:kO3DiDhw0
最近v1からv2に以降しておおむね満足、なんだが…
webブラウザでズームが簡単にできるようにhotifで対象限定しつつMButtonをContorolにリマップしてる状態で
他のアプリでホイールクリックしたときにContorolのキーダウンだけ発行されるときがあってえ?てなった
ホイール押し込みながらホイール回転の二つをそれぞれリマップするように変えて回避はできたがなんかもやっとする
webブラウザでズームが簡単にできるようにhotifで対象限定しつつMButtonをContorolにリマップしてる状態で
他のアプリでホイールクリックしたときにContorolのキーダウンだけ発行されるときがあってえ?てなった
ホイール押し込みながらホイール回転の二つをそれぞれリマップするように変えて回避はできたがなんかもやっとする
2024/09/29(日) 16:50:20.12ID:zqsiEfqj0
sendでControlのDownとUpを書いてその間にホイール操作を書かないと結局不具合出たわ
まあv2にして困ることはないでFAかな
まあv2にして困ることはないでFAかな
2024/09/29(日) 17:37:16.05ID:FrKuG+9e0
v2でsendのデフォルトモードがinputに変わったせいで、移植の際に
思わぬ不具合が出ることがある
元のv1のソースを読み解いて、v2側で適宜正しいモードで指定すれば
きちんと動作するようになるが、気づかないと沼る羽目に
思わぬ不具合が出ることがある
元のv1のソースを読み解いて、v2側で適宜正しいモードで指定すれば
きちんと動作するようになるが、気づかないと沼る羽目に
2024/09/29(日) 17:43:44.15ID:NR3WdkDN0
2024/09/29(日) 17:55:01.87ID:FrKuG+9e0
そうねえ、最近だと連射系のスクリプトかな
eventだとキー1回ごとに処理されるから連射停止に即座に反応するんだけど
inputだと高速連射させるとアプリとCPU負荷の状態によってはによっては入力しっぱなしになる
フォーラムを色々見てみたら、割とあるみたいで連射はeventで書くのが暗黙らしい
eventだとキー1回ごとに処理されるから連射停止に即座に反応するんだけど
inputだと高速連射させるとアプリとCPU負荷の状態によってはによっては入力しっぱなしになる
フォーラムを色々見てみたら、割とあるみたいで連射はeventで書くのが暗黙らしい
2024/09/29(日) 22:16:10.34ID:NR3WdkDN0
2024/09/30(月) 03:23:02.42ID:sWki31Ev0
まだv1使ってるの俺だけ?
v2の挙動分からなくてスクリプト用にずーっと使ってる
v2の挙動分からなくてスクリプト用にずーっと使ってる
2024/09/30(月) 03:40:26.95ID:dXZf0Qg/0
Windowsの使い方にもよるんじゃない?
以前に作ったスクリプトで事足りてるからv1のまま使ってる
スマホやタブレットを使う比率が高いかもしれんけど
以前に作ったスクリプトで事足りてるからv1のまま使ってる
スマホやタブレットを使う比率が高いかもしれんけど
2024/09/30(月) 06:03:36.77ID:LOS0OEEa0
AutoHotkeyの使い方5ーウィンドウ・ソフトごとに動作を変えるー | 生焼けプログラマーの雑記帳
https://namayakegadget.com/643/#toc13
長年使っていながら気付かなかったこの挙動
これでようやく眠れる
https://namayakegadget.com/643/#toc13
長年使っていながら気付かなかったこの挙動
これでようやく眠れる
2024/09/30(月) 10:54:11.72ID:B6OgheLw0
石破が数学とか物理はそもそも問題が理解できず白紙答案と言ってたけど
gendai.media/articles/-/138296
頭が固い文系脳なんじゃねーの?
gendai.media/articles/-/138296
頭が固い文系脳なんじゃねーの?
2024/09/30(月) 11:02:04.98ID:GcmeQ9l90
MouseGestureL使ってるからまだv1
2024/09/30(月) 15:07:00.91ID:LtmJV+xI0
>>407
お前はオレか!?
お前はオレか!?
2024/09/30(月) 15:29:16.61ID:ripDtC5Y0
MGLはフォーラムでユーザーの一人に手伝うからv2に移植してくれと言われて、
今の作者がv2にするつもりはないと断ってたからな
前任者から引き継いだソースがベースで、すべて自分が掌握しているわけではないから、
分からんでもないが、v1がいつ唐突にサポート切られるか分からんし
裏で移植を進めていることを願いたい
今の作者がv2にするつもりはないと断ってたからな
前任者から引き継いだソースがベースで、すべて自分が掌握しているわけではないから、
分からんでもないが、v1がいつ唐突にサポート切られるか分からんし
裏で移植を進めていることを願いたい
2024/09/30(月) 19:21:20.59ID:PF1hAvOv0
v1からv2へ移行したけど
手持ちのまあまあの大きさのスクリプトの移植はコンバータを使ってもちょい大変ではあった
手持ちのまあまあの大きさのスクリプトの移植はコンバータを使ってもちょい大変ではあった
2024/09/30(月) 19:44:16.46ID:jvQxSkbk0
NGLで手伝い申し出た人いたっけ。まあ、作者がv2対応を考えていないなら同じことか
Clipboard Historyも使ってるし、これらを自力でv2仕様にできるとはとても思えんから、まだ当分v1だなぁ
いつの間にかvectorに復活してたenthumbleくらいのならどうにでもできそうというか、
あれをわざわざ使わなくてももっと自分好みにしてるが…
Clipboard Historyも使ってるし、これらを自力でv2仕様にできるとはとても思えんから、まだ当分v1だなぁ
いつの間にかvectorに復活してたenthumbleくらいのならどうにでもできそうというか、
あれをわざわざ使わなくてももっと自分好みにしてるが…
2024/09/30(月) 20:20:03.96ID:VJjKz+c40
>>410
コンバーターって有料のしか見つからないんだけど無料のある?
コンバーターって有料のしか見つからないんだけど無料のある?
2024/09/30(月) 20:35:58.71ID:PF1hAvOv0
2024/09/30(月) 22:04:14.67ID:bByHvbp/0
2024/09/30(月) 22:06:00.97ID:bByHvbp/0
2024/09/30(月) 22:11:51.18ID:M1bCViDB0
>>407
お前はオレか!?
お前はオレか!?
2024/09/30(月) 22:27:30.37ID:3qcKV69w0
つーか、自作のスクリプト類を v1 → v2 に完全に置き換えるとかってのでもない限り、
AHK の v1 と v2 の両方をインストールしときゃそれでおk ちゃうか?
AHK の v1 と v2 の両方をインストールしときゃそれでおk ちゃうか?
2024/09/30(月) 23:21:41.37ID:1fWbsl/T0
拙者は自作のスクリプトの規模がまだ小さいうちに移行すべきと判断しました
古参の方は大変ですな
古参の方は大変ですな
2024/10/01(火) 01:44:06.80ID:HV37rj8W0
2024/10/01(火) 12:44:42.33ID:lRpho0BS0
取りこぼしって、AHKの潜在的なバグじゃなくて
正規表現の記述の甘さなんかくるフィルタリングの問題じゃなかろうか
正規表現の記述の甘さなんかくるフィルタリングの問題じゃなかろうか
2024/10/01(火) 13:19:54.22ID:dwrWdzvE0
>>420
ブラウザのタイトル取得してクリップボードに入れてるんですけど5%ぐらいの確率で空になってしまいます
ブラウザのタイトル取得してクリップボードに入れてるんですけど5%ぐらいの確率で空になってしまいます
2024/10/01(火) 13:25:15.33ID:5grOXHgQ0
>>421
空の場合にもう一度繰り返す処理を入れればいいだけ
空の場合にもう一度繰り返す処理を入れればいいだけ
2024/10/01(火) 13:31:16.12ID:2QxI47PG0
確率とか言ってないで再現性の検証しなよ
2024/10/01(火) 13:36:09.34ID:lRpho0BS0
2024/10/01(火) 13:43:42.86ID:lRpho0BS0
一応、念のために書いておくけど
ウェイトってsleepのことね
ウェイトってsleepのことね
2024/10/01(火) 14:40:50.95ID:FvxXaQDC0
ウェイト(sleep)を知らない人いるのかなっていう気もするがいるんだろうな
AHKはあらゆる場所でsleepを入れないと正常に動かない
1行ごとにsleep(1秒)を入れれば安定するが遅くなるジレンマがある
これは仕様
AHKはあらゆる場所でsleepを入れないと正常に動かない
1行ごとにsleep(1秒)を入れれば安定するが遅くなるジレンマがある
これは仕様
2024/10/01(火) 14:45:22.15ID:FvxXaQDC0
> Send "abcdefghijklmnopqrstuvwxyz"
> MsgBox "msg"
> 途中までしか送信が入力されないアプリがある
> おかしい
前に投稿したレスだがSendでさえ正常に動かない
> MsgBox "msg"
> 途中までしか送信が入力されないアプリがある
> おかしい
前に投稿したレスだがSendでさえ正常に動かない
2024/10/01(火) 14:52:55.41ID:HmNXYxxa0
>>426
sleepって全体巻き込んで止まるイメージあるから使おうって発想なかったわ
sleepって全体巻き込んで止まるイメージあるから使おうって発想なかったわ
2024/10/01(火) 15:08:03.86ID:dwrWdzvE0
2024/10/01(火) 15:26:59.62ID:lRpho0BS0
直接の原因でないにしろ、4000って入れすぎでしょ
2024/10/01(火) 15:58:35.70ID:qvg844/u0
4秒止まったらストレスになりそう
2024/10/01(火) 16:57:41.65ID:oBJ+4kyU0
単にこういうことじゃないの?
v2 だと try catch で WinGetTitle のエラーハンドリングはできるけど。
WinGetTitle - Syntax & Usage | AutoHotkey v1
https://www.autohotkey.com/docs/v1/lib/WinGetTitle.htm
> Remarks
> If there is no matching window, OutputVar is made blank.
v2 だと try catch で WinGetTitle のエラーハンドリングはできるけど。
WinGetTitle - Syntax & Usage | AutoHotkey v1
https://www.autohotkey.com/docs/v1/lib/WinGetTitle.htm
> Remarks
> If there is no matching window, OutputVar is made blank.
2024/10/01(火) 17:17:10.42ID:dwrWdzvE0
2024/10/01(火) 17:57:05.29ID:AxKysytZ0
WinGetTitleの前にWinExistとかでチェックはしていないですか
してないならば、WinExistで見てみることで何かわかるかもしれないな
してないならば、WinExistで見てみることで何かわかるかもしれないな
2024/10/01(火) 18:07:44.77ID:C+MHvTF60
>>419
WinGetTitleの取得の成否にSleepの有無は関係ないかと思います
必要な情報がないので推測ですが、WinGetTitleの取りこぼしと言うのはウィンドウが見つからないとか取得に失敗しているのではなく
タイトルのない別のウィンドウを取得しているだけだと思います
AHKのウィンドウ指定では条件に当てはまるウィンドウが複数存在する場合、Z-Orderが若い方が優先され対象となります
ブラウザがChromeやEdgeであれば、ポップアップウィンドウのクラス名と実行ファイル名は同じになるので
例として、F1:: MsgBox(WinGetTitle("ahk_class Chrome_WidgetWin_1 ahk_exe chrome.exe"))
のような指定では実行時にコンテキストメニューやマウスオーバーによるツールチップのようなポップアップウィンドウが存在する場合、そちらが優先されるので、結果は空文字になります
これを回避するためには、WinGetListで該当するウィンドウのHwndを全て取得した後、ウィンドウスタイルで絞り込むなどの方法が必要になります
ついでに、ウィンドウ指定について述べておきますが、Chromium系のクラス名は通常「Chrome_WidgetWin_1」であるため、クラス名のみの指定では他のアプリがヒットする可能性があります
また、>>405で紹介されている所のようにahk_exeだけの指定では、DetectHiddenWindowsがオフであっても、アプリによってはサイズが0,0のサブウィンドウが存在したり
マルチプロセスによるウィンドウ内ウィンドウがヒットしたりする可能性もあるため、注意が必要です
具体例として、エクスプローラーの指定が"ahk_exe explorer.exe"では正常に動作しませんが、これはタスクバーとProgram Manager(デスクトップ)もexplorer.exeによるウィンドウであるためです
WinGetTitleの取得の成否にSleepの有無は関係ないかと思います
必要な情報がないので推測ですが、WinGetTitleの取りこぼしと言うのはウィンドウが見つからないとか取得に失敗しているのではなく
タイトルのない別のウィンドウを取得しているだけだと思います
AHKのウィンドウ指定では条件に当てはまるウィンドウが複数存在する場合、Z-Orderが若い方が優先され対象となります
ブラウザがChromeやEdgeであれば、ポップアップウィンドウのクラス名と実行ファイル名は同じになるので
例として、F1:: MsgBox(WinGetTitle("ahk_class Chrome_WidgetWin_1 ahk_exe chrome.exe"))
のような指定では実行時にコンテキストメニューやマウスオーバーによるツールチップのようなポップアップウィンドウが存在する場合、そちらが優先されるので、結果は空文字になります
これを回避するためには、WinGetListで該当するウィンドウのHwndを全て取得した後、ウィンドウスタイルで絞り込むなどの方法が必要になります
ついでに、ウィンドウ指定について述べておきますが、Chromium系のクラス名は通常「Chrome_WidgetWin_1」であるため、クラス名のみの指定では他のアプリがヒットする可能性があります
また、>>405で紹介されている所のようにahk_exeだけの指定では、DetectHiddenWindowsがオフであっても、アプリによってはサイズが0,0のサブウィンドウが存在したり
マルチプロセスによるウィンドウ内ウィンドウがヒットしたりする可能性もあるため、注意が必要です
具体例として、エクスプローラーの指定が"ahk_exe explorer.exe"では正常に動作しませんが、これはタスクバーとProgram Manager(デスクトップ)もexplorer.exeによるウィンドウであるためです
2024/10/01(火) 18:08:30.09ID:C+MHvTF60
>>426
あらゆる場所にSleepがないとまともに動作しないなんて仕様はありませんし、Sleepが必要な場合はほとんどがAHK側の問題ではなく、アプリ側またはシステム上の問題です
また、Sleepが必ずしも動作の安定に繋がるとは限りません
0以上のSleepが実行された場合、CPUのタイムスライスの割当てが次のスライス以降となるため、AHKに限らず他のスレッドによる割り込みが発生しやすくなり
コードの実行結果が一定ではなくなるなどの可能性が出てくるので、動作上でSleepが必要な場合は明確な意図と効果を伴って使用すべきです
>>427
おそらくアプリ側のメッセージ処理か入力処理の問題なので、とりあえず
SetKeyDelay(, 50)
SendEvent("abcdefghijklmnopqrstuvwxyz")
で入力が正常に行われるか試してみてください
あらゆる場所にSleepがないとまともに動作しないなんて仕様はありませんし、Sleepが必要な場合はほとんどがAHK側の問題ではなく、アプリ側またはシステム上の問題です
また、Sleepが必ずしも動作の安定に繋がるとは限りません
0以上のSleepが実行された場合、CPUのタイムスライスの割当てが次のスライス以降となるため、AHKに限らず他のスレッドによる割り込みが発生しやすくなり
コードの実行結果が一定ではなくなるなどの可能性が出てくるので、動作上でSleepが必要な場合は明確な意図と効果を伴って使用すべきです
>>427
おそらくアプリ側のメッセージ処理か入力処理の問題なので、とりあえず
SetKeyDelay(, 50)
SendEvent("abcdefghijklmnopqrstuvwxyz")
で入力が正常に行われるか試してみてください
2024/10/01(火) 18:14:22.46ID:lRpho0BS0
>>433
話を総合すると、仮想環境で動かしているにしてもだよ
500msのsleepで動かなくて、4000msだと95%の確率で動くってことでしょ
どういうコード書いているのか知らんけど、ちょっと挙動がおかしいよ
話を総合すると、仮想環境で動かしているにしてもだよ
500msのsleepで動かなくて、4000msだと95%の確率で動くってことでしょ
どういうコード書いているのか知らんけど、ちょっと挙動がおかしいよ
2024/10/01(火) 18:20:25.22ID:dY8/Ql770
クリップボードの中身を監視したら?
2024/10/01(火) 18:43:44.20ID:dwrWdzvE0
2024/10/01(火) 19:42:28.90ID:osCUHTkq0
2024/10/01(火) 20:38:22.05ID:C+MHvTF60
>>439
Pale Moonは使用してないので正しいか分かりませんが
FireFox系ならメインのウィンドウクラスは「MozillaWindowClass」
ポップアップウィンドウのクラスは「MozillaDropShadowWindowClass」なので
WinGetListを使わずともクラス名まで指定すれば区別できると思います
逆にクラス名で指定しているにも関わらず、タイトルが取得できないことがある場合は別の所に原因があります
Pale Moonは使用してないので正しいか分かりませんが
FireFox系ならメインのウィンドウクラスは「MozillaWindowClass」
ポップアップウィンドウのクラスは「MozillaDropShadowWindowClass」なので
WinGetListを使わずともクラス名まで指定すれば区別できると思います
逆にクラス名で指定しているにも関わらず、タイトルが取得できないことがある場合は別の所に原因があります
2024/10/01(火) 21:19:00.80ID:HV37rj8W0
2024/10/01(火) 21:19:20.25ID:HV37rj8W0
ごめんなさい書き直します
2024/10/01(火) 21:23:50.57ID:HV37rj8W0
途中で誤爆すみません
>>441
今はブラウザにアドレス送ったあとで4秒待ち、
WinGetTitle,palemoontitle,ahk_class MozillaWindowClass,
WinActivate,%palemoonTitle%
でタイトル取得、
Ctrl^sを送ったあとで4秒待ち、
WinGetTitle,savetitle,ahk_class #32770,
IfInString, saveTitle,Save
でSaveが含まれた保存ダイアログが出てくるのを待ち、Enterキー送ってます
>>441
今はブラウザにアドレス送ったあとで4秒待ち、
WinGetTitle,palemoontitle,ahk_class MozillaWindowClass,
WinActivate,%palemoonTitle%
でタイトル取得、
Ctrl^sを送ったあとで4秒待ち、
WinGetTitle,savetitle,ahk_class #32770,
IfInString, saveTitle,Save
でSaveが含まれた保存ダイアログが出てくるのを待ち、Enterキー送ってます
2024/10/01(火) 22:11:08.20ID:C+MHvTF60
>>444
palemoonのウィンドウタイトルが取れていないのではなく、ダイアログ待ちで別のダイアログがヒットしているような気がします
とりあえず、開いたウェブページを保存するという挙動で良いのであれば、以下のような方法で良いと思います
F1::
; Run, %URL%
; ここにSleepを入れるか、完全にページの読み込みを待つのであれば、ImageSearchかブラウザ系のライブラリ、またはAccかUIAなどのライブラリを使用する必要があります
ControlSend, ahk_parent, ^s, ahk_class MozillaWindowClass
WinWaitActive, Save ahk_class #32770 ahk_exe palemoon.exe ; 実行ファイルがpalemoon.exeではない場合変更してください
; Send, {Enter}
MsgBox, テスト
Return
palemoonのウィンドウタイトルが取れていないのではなく、ダイアログ待ちで別のダイアログがヒットしているような気がします
とりあえず、開いたウェブページを保存するという挙動で良いのであれば、以下のような方法で良いと思います
F1::
; Run, %URL%
; ここにSleepを入れるか、完全にページの読み込みを待つのであれば、ImageSearchかブラウザ系のライブラリ、またはAccかUIAなどのライブラリを使用する必要があります
ControlSend, ahk_parent, ^s, ahk_class MozillaWindowClass
WinWaitActive, Save ahk_class #32770 ahk_exe palemoon.exe ; 実行ファイルがpalemoon.exeではない場合変更してください
; Send, {Enter}
MsgBox, テスト
Return
446名無しさん@お腹いっぱい。
2024/10/01(火) 23:54:53.14ID:V0wY9dtV0 >>421
ブラウザのタイトルとは、ウェブページのタイトルのこと?
ウェブページのタイトルがセットされるタイミングは固定されていないので、
自分で監視する必要があるよ
JavaScript で動的にタイトルをセットしているウェブページもあるし
ブラウザのタイトルとは、ウェブページのタイトルのこと?
ウェブページのタイトルがセットされるタイミングは固定されていないので、
自分で監視する必要があるよ
JavaScript で動的にタイトルをセットしているウェブページもあるし
2024/10/02(水) 04:36:36.17ID:I/2evcvZ0
>>441
>>445
たびたびコードまで書いてアドバイス頂きありがとうございます。
保存先が色々異なるのでそのまま保存だと不都合が出てきてしまいます
WinGetTitleでMozillaWindowsClassで取り、
タイトルが空白で無いこと、Urlで無いこと、前のアドレスと同じでないことをまず確認して
1 Ctrl^s送出
2 4秒後待ってSaveのテキストを含む#32770のダイアログがあることを確認し、Ctrl^cでクリップボードにコピー
3 クリップボードを保存先フォルダ名とクリップボードに結合
4 クリップボードを禁則文字チェック←ここでhogehoge.com/hoge/hoge/などの禁則文字で保存時々嵌まってエラーMsgbox出力
5 禁則文字が無ければCtrl^vとEnterキー送って保存してます
多分2の時にChromeやFirefoxなどのブラウザでタブにマウスを合わせた時にWebpageタイトルが表示される小さなテキストをWindowと勘違いして空白か古いままのクリップボードを返してるだと思います
教えていただいたWinGetListなのですがVer1の場合、WinGetTitleでできませんか?
SpyかけてみたらSaveダイアログはMozillaDropShadowWindowClassではなく#32770と表示されます
こちらがアクティブになってからクリップボード操作やってるつもりなのですが時々コケます
>>446
Webページのタイトルです
でもリダイレクトはありますが途中でタイトルが変わるサイトではありません
リダイレクト対策も兼ねて長めにSleep入れてます
>>445
たびたびコードまで書いてアドバイス頂きありがとうございます。
保存先が色々異なるのでそのまま保存だと不都合が出てきてしまいます
WinGetTitleでMozillaWindowsClassで取り、
タイトルが空白で無いこと、Urlで無いこと、前のアドレスと同じでないことをまず確認して
1 Ctrl^s送出
2 4秒後待ってSaveのテキストを含む#32770のダイアログがあることを確認し、Ctrl^cでクリップボードにコピー
3 クリップボードを保存先フォルダ名とクリップボードに結合
4 クリップボードを禁則文字チェック←ここでhogehoge.com/hoge/hoge/などの禁則文字で保存時々嵌まってエラーMsgbox出力
5 禁則文字が無ければCtrl^vとEnterキー送って保存してます
多分2の時にChromeやFirefoxなどのブラウザでタブにマウスを合わせた時にWebpageタイトルが表示される小さなテキストをWindowと勘違いして空白か古いままのクリップボードを返してるだと思います
教えていただいたWinGetListなのですがVer1の場合、WinGetTitleでできませんか?
SpyかけてみたらSaveダイアログはMozillaDropShadowWindowClassではなく#32770と表示されます
こちらがアクティブになってからクリップボード操作やってるつもりなのですが時々コケます
>>446
Webページのタイトルです
でもリダイレクトはありますが途中でタイトルが変わるサイトではありません
リダイレクト対策も兼ねて長めにSleep入れてます
2024/10/02(水) 05:32:28.13ID:Iof94shX0
WinGetListで複数のWindowを全部列挙してウィンドウスタイルでマスクするようにしないと特にブラウザなんかは正しい動作しないぞ
2024/10/02(水) 07:28:11.75ID:bDszAASW0
Chrome なら、拡張機能 AutoControl が使いやすいんだけどね。
JavaScript で記述できるし、ページの読み込みイベントも拾ってくれる。
AHK で4秒待つとか、実現できてもスッキリしないよね。
JavaScript で記述できるし、ページの読み込みイベントも拾ってくれる。
AHK で4秒待つとか、実現できてもスッキリしないよね。
2024/10/02(水) 13:29:33.86ID:g4durnG80
リマップにしか使ってないけどv2に移行したほうがいいの?
たとえばキー押しっぱなしがなくなるとか安定性が高くなってるなら移行していいかと思ってる
たとえばキー押しっぱなしがなくなるとか安定性が高くなってるなら移行していいかと思ってる
2024/10/02(水) 14:36:41.30ID:Iof94shX0
一部V2にしかない機能もあるので、過去の遺産はV1のまま使い
改修が必要なものや新規に作るものはV2にしてる
改修が必要なものや新規に作るものはV2にしてる
2024/10/02(水) 18:00:55.97ID:Nya46nx90
前スレの225は事実
> v2はメリットしかない
> v1のヘンタイ構文は少しでもプログラミング経験がある人なら発狂して精神に異常をきたす
> v2に移行すれば精神が安定してコードを量産するようになる
リマップにしか使ってないなら移行してもメリットはない
スレでこれだけはやめてっていうのがv2を使えばいいのに使わずv1のヘンタイ構文を質問してくること
v1なんか触ってないっていう
> v2はメリットしかない
> v1のヘンタイ構文は少しでもプログラミング経験がある人なら発狂して精神に異常をきたす
> v2に移行すれば精神が安定してコードを量産するようになる
リマップにしか使ってないなら移行してもメリットはない
スレでこれだけはやめてっていうのがv2を使えばいいのに使わずv1のヘンタイ構文を質問してくること
v1なんか触ってないっていう
2024/10/02(水) 19:08:37.05ID:Za7Y0ZGq0
>>447
ウェブページを保存する際にメインブラウザからURLをpalemoonに渡して(またはその逆)保存しているという使い方をしていると推測します
そうであるなら、まずはWinGetTitleなどのコマンドのウィンドウ指定は全て ahk_class MozillaWindowClass ahk_exe palemoon.exe
のようにクラス名とExe名を併記するように指定してください
以前にも書きましたがFireFox系であればこの件についてはWinGetList + スタイルによる絞り込みは必要ありません
ちなみにv1のWinGetListは WinGet, OutputVar, List, WinTitle という記述になり、OutputVar1のように疑似配列として扱います
そもそもとして、ウィンドウタイトルの取得の目的が保存名に指定するためなのであれば、ウィンドウタイトルを取得する必要はないと思います
保存ダイアログのクラス名が#32770という事はWindowsの標準ダイアログが呼び出されているだけなので、ControlGetText、ControlSetTextなどが使用できます
通常であれば、ウェブページの保存名の初期値は禁則処理された状態のページタイトル + 拡張子がデフォルトなので、変更が必要な場合こちらを取得して改変したほうがスマートです
つまり、WinGetTitleも必要なければ、途中でコピペにウェイトが必要なクリップボードの操作も必要ないので、余計な要因が介入してくるのを減らすコーディングが可能と言う事です
全体の流れとしては下記のように出来るはずです
; Run, [palemoon.exeのフルパス] %URL%
; Sleep, 1000
ControlSend, ahk_parent, ^s, ahk_class MozillaWindowClass ahk_exe palemoon.exe
WinWaitActive, Save ahk_class #32770 ahk_exe palemoon.exe
ControlGetText, save_title, Edit1, ahk_class #32770 ahk_exe palemoon.exe
; 保存先を手動で変更するならここでsave_title内を編集出来るような処理を入れる
; 既存のフォルダがないとダイアログのEdit部分でパス指定できないのでとりあえずMyDocument\ウェブページ\にsave_titleから拡張子を除いたフォルダを作成
FileCreateDir, % save_path := A_MyDocuments "\ウェブページ\" RegExReplace(save_title, "i)\.[^\.]+?$")
ControlSetText, Edit1, % save_path "\" save_title, ahk_class #32770 ahk_exe palemoon.exe
; Send, {Enter}
ウェブページを保存する際にメインブラウザからURLをpalemoonに渡して(またはその逆)保存しているという使い方をしていると推測します
そうであるなら、まずはWinGetTitleなどのコマンドのウィンドウ指定は全て ahk_class MozillaWindowClass ahk_exe palemoon.exe
のようにクラス名とExe名を併記するように指定してください
以前にも書きましたがFireFox系であればこの件についてはWinGetList + スタイルによる絞り込みは必要ありません
ちなみにv1のWinGetListは WinGet, OutputVar, List, WinTitle という記述になり、OutputVar1のように疑似配列として扱います
そもそもとして、ウィンドウタイトルの取得の目的が保存名に指定するためなのであれば、ウィンドウタイトルを取得する必要はないと思います
保存ダイアログのクラス名が#32770という事はWindowsの標準ダイアログが呼び出されているだけなので、ControlGetText、ControlSetTextなどが使用できます
通常であれば、ウェブページの保存名の初期値は禁則処理された状態のページタイトル + 拡張子がデフォルトなので、変更が必要な場合こちらを取得して改変したほうがスマートです
つまり、WinGetTitleも必要なければ、途中でコピペにウェイトが必要なクリップボードの操作も必要ないので、余計な要因が介入してくるのを減らすコーディングが可能と言う事です
全体の流れとしては下記のように出来るはずです
; Run, [palemoon.exeのフルパス] %URL%
; Sleep, 1000
ControlSend, ahk_parent, ^s, ahk_class MozillaWindowClass ahk_exe palemoon.exe
WinWaitActive, Save ahk_class #32770 ahk_exe palemoon.exe
ControlGetText, save_title, Edit1, ahk_class #32770 ahk_exe palemoon.exe
; 保存先を手動で変更するならここでsave_title内を編集出来るような処理を入れる
; 既存のフォルダがないとダイアログのEdit部分でパス指定できないのでとりあえずMyDocument\ウェブページ\にsave_titleから拡張子を除いたフォルダを作成
FileCreateDir, % save_path := A_MyDocuments "\ウェブページ\" RegExReplace(save_title, "i)\.[^\.]+?$")
ControlSetText, Edit1, % save_path "\" save_title, ahk_class #32770 ahk_exe palemoon.exe
; Send, {Enter}
2024/10/02(水) 19:46:58.04ID:acuRfLjr0
>>452
触ってる人が答えれば良いと思うんだけど、なんでそんなに食ってかかってんだ???
触ってる人が答えれば良いと思うんだけど、なんでそんなに食ってかかってんだ???
455名無しさん@お腹いっぱい。
2024/10/02(水) 20:51:31.41ID:M9c5GeZ+0 >>450
安定性とかは変わらないんじゃないだろうか
現在使っているv1のスクリプトを編集せず使い続けるだけなら、移行は必要ないと思う
編集・新規作成の必要が生じたときに移行すればよいんじゃないだろうか
安定性とかは変わらないんじゃないだろうか
現在使っているv1のスクリプトを編集せず使い続けるだけなら、移行は必要ないと思う
編集・新規作成の必要が生じたときに移行すればよいんじゃないだろうか
2024/10/03(木) 00:16:46.17ID:Jt0Di29D0
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本のGDP、世界6位転落へ…薬物もやらない勤勉な日本人が貧しくなる屈辱は“完全な政策ミス”か? ★10 [ぐれ★]
- 【巨人】織田翔希 衝撃報道にネット騒然 MLB未登録に「江川と桑田を思い浮かべる」★2 [ぐれ★]
- 【芸能】『パックンマックン』パックン、最愛の妻が46歳で亡くなっていた 昨年に2人の子を遺し… 赤裸々に初告白 [冬月記者★]
- 【料理】おでんにウインナーは邪道? 「美味しい」「出汁の味が変わる」「全部ウインナー風味」★3 [ひぃぃ★]
- 【神奈川】秦野にツキノワグマ再び出没 放獣した個体と同一 捕殺を視野に対応を検討 [nita★]
- 【芸能】堀江貴文氏 結婚・子ども・家・車は「生涯にわたるバカ高いサブスク」 世間体に払う2億円の無駄 [冬月記者★]
- 【動画】7人殺した殺人鬼を産み出したふつうの日本人のお母さんがこちら… [668024367]
- 【悲報】眼鏡をかけた女さん、防衛大学の入試でカンニングして受験会場から追い出されてしまうwwwwwwwwwwwwwwwwwwww [257926174]
- iPhoneDuo買ったやつが真っ先にやりそうなことw
- 蒙古タンメン中本食っていいか?
- 非ホロライブvtuber「iPhoneDuo私は買わないけど母親が買いました」←やばすぎるだろ
- アーティストのMISIA、名前の由来は、家族が「みんな(M)医者(ISHA)」の略