■公式サイト
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/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
2024/10/03(木) 00:54:28.74ID:Tz6rTMiT0
UTF8ファイル読み込む時とかBOMの有無とかV1だと制限があった気がする
2024/10/03(木) 01:09:21.08ID:WYl35//N0
2024/10/03(木) 02:42:29.78ID:Jt0Di29D0
2024/10/04(金) 03:38:03.71ID:NhPmv6xu0
>>453
たびたびありがとうございます
palemoon本体には教えていただいたコードできちんと操作できました
ダイアログへControlGetText,SetTextやコンボボックスの選択はできるのですがボタン押したり、キー送出ができないです
これはSendコマンドでやるしかないでしょうか
ControlSend, ahk_class #32770 ahk_exe palemoon.exe,!y,
これだとAlt+!送られないです
たびたびありがとうございます
palemoon本体には教えていただいたコードできちんと操作できました
ダイアログへControlGetText,SetTextやコンボボックスの選択はできるのですがボタン押したり、キー送出ができないです
これはSendコマンドでやるしかないでしょうか
ControlSend, ahk_class #32770 ahk_exe palemoon.exe,!y,
これだとAlt+!送られないです
2024/10/04(金) 18:36:12.70ID:V34s0CwZ0
>>460
パラメータの指定が間違っています
ControlSend [,Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText]
!yを送りたいと言う事であれば、たぶん上書き確認のダイアログだと思うのですが
この手の確認ダイアログは、アクティブ最前面で表示されるので単に Send, y でも大丈夫なはずです
ControlSendでボタンを押すのであればControlに 「Button1」 などのClassNNか 「はい(Y)」 などのテキストを指定してください
送るキーは{Enter}や{Space}などでも構いません
ControlSendはWin32 APIによるGUI以外では、親ウィンドウに対してしか効果がないですが
Win32GUIの場合、フォーカスが対象ウィンドウの別のボタン等にある場合、大抵はフォーカスがあるボタンが指定したControlよりも優先されて押されます
YesNoダイアログの場合、初期状態では通常はNoにフォーカスがあるのでControlSendを送る前にYesにフォーカスをセットする必要があります
また、いずれにせよWinWaitで対象ウィンドウの出現を待ったほうが良いです
その際に、前に書いた時は省きましたがWinWait系のコマンドはタイムアウトを指定しておいた方が良いでしょう
まとめると下記のようになります。firefoxの部分は書き換えてください
; ファイルダイアログで保存を押した後に
WinWait, 名前を付けて保存の確認 ahk_class #32770 ahk_exe firefox.exe, , 2
if(ErrorLevel){
MsgBox, タイムアウトしました
Return
}
ControlFocus, Button1, 名前を付けて保存の確認 ahk_class #32770 ahk_exe firefox.exe
ControlSend, Button1, {Enter}, 名前を付けて保存の確認 ahk_class #32770 ahk_exe firefox.exe
パラメータの指定が間違っています
ControlSend [,Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText]
!yを送りたいと言う事であれば、たぶん上書き確認のダイアログだと思うのですが
この手の確認ダイアログは、アクティブ最前面で表示されるので単に Send, y でも大丈夫なはずです
ControlSendでボタンを押すのであればControlに 「Button1」 などのClassNNか 「はい(Y)」 などのテキストを指定してください
送るキーは{Enter}や{Space}などでも構いません
ControlSendはWin32 APIによるGUI以外では、親ウィンドウに対してしか効果がないですが
Win32GUIの場合、フォーカスが対象ウィンドウの別のボタン等にある場合、大抵はフォーカスがあるボタンが指定したControlよりも優先されて押されます
YesNoダイアログの場合、初期状態では通常はNoにフォーカスがあるのでControlSendを送る前にYesにフォーカスをセットする必要があります
また、いずれにせよWinWaitで対象ウィンドウの出現を待ったほうが良いです
その際に、前に書いた時は省きましたがWinWait系のコマンドはタイムアウトを指定しておいた方が良いでしょう
まとめると下記のようになります。firefoxの部分は書き換えてください
; ファイルダイアログで保存を押した後に
WinWait, 名前を付けて保存の確認 ahk_class #32770 ahk_exe firefox.exe, , 2
if(ErrorLevel){
MsgBox, タイムアウトしました
Return
}
ControlFocus, Button1, 名前を付けて保存の確認 ahk_class #32770 ahk_exe firefox.exe
ControlSend, Button1, {Enter}, 名前を付けて保存の確認 ahk_class #32770 ahk_exe firefox.exe
2024/10/04(金) 19:19:10.83ID:fR4T6nrD0
>>461
また詳しく教えていただきありがとうございます
出先なのであとでチェックします
名前をつけて保存ダイアログにSend,!sを送って保存しようとすると1%ぐらいの確率で保存ボタンにフォーカスが移るだけで押せないことがあるので嵌まってます
教えていただいたWinWaitのhelp見たらWinWaitCloseコマンドあったのでどちらも実装して試してみます
また詳しく教えていただきありがとうございます
出先なのであとでチェックします
名前をつけて保存ダイアログにSend,!sを送って保存しようとすると1%ぐらいの確率で保存ボタンにフォーカスが移るだけで押せないことがあるので嵌まってます
教えていただいたWinWaitのhelp見たらWinWaitCloseコマンドあったのでどちらも実装して試してみます
2024/10/05(土) 01:29:49.17ID:ffwymIic0
v2使ってみたらもう戻れないくらい便利です
ぐい周りは感動した
ぐい周りは感動した
2024/10/05(土) 11:12:03.05ID:wFIatvKw0
指定のアプリ群をグルーピングして、それらだけまとめてキー操作を統一的に扱いたい
こんな要望を実現できるのはV2だけ
こんな要望を実現できるのはV2だけ
2024/10/05(土) 17:46:33.00ID:EvXhaPGA0
v2で文法がマシになったと聞いてドキュメント見たらif文の等価条件が=なのかよ
そこは==だろう
そこは==だろう
2024/10/05(土) 18:08:10.14ID:ABL2Y4hI0
==は既に使われているし、代入が:=なんだから
別に文句付けるようなことじゃないな
代入が=なら==で分かるけど
別に文句付けるようなことじゃないな
代入が=なら==で分かるけど
2024/10/05(土) 19:45:14.72ID:7uPQ3bfS0
v1もv2も==も等価条件で=と==の用途の違いは同じ
下手に変えるほうが混乱する
下手に変えるほうが混乱する
2024/10/05(土) 21:04:53.07ID:BfmCDP890
簡単にGUIが作れるからいいね〜
そこに情報いれてデバッグ的なことも
そこに情報いれてデバッグ的なことも
2024/10/05(土) 21:20:26.81ID:ZqQVtnYk0
自分はデバッグにToolTipを多用してるわ
2024/10/05(土) 22:06:03.49ID:Em/TLP060
比較はだいたいCase Sensitiveの==を使っているなあ
それにあわせてNot equalもCase Sensitiveで書くと!==になるが…
それにあわせてNot equalもCase Sensitiveで書くと!==になるが…
2024/10/06(日) 12:24:53.26ID:7QdW2jH00
Enter::
WinClose,A
Return
こういう単純な処理の場合にreturnって必要ですか
WinClose,A
Return
こういう単純な処理の場合にreturnって必要ですか
472名無しさん@お腹いっぱい。
2024/10/06(日) 12:57:01.02ID:1y8Ea0fn0 コパイロットにautohotkeyでディスプレイ切り替えの質問したらアナログな方法しか教えてくれなかったわ…
DisplaySwitch.exeなんて便利なコマンドあるんじゃねーか。
マイクロソフト製なくせにwindowsコマンド優先しないとか…
俺が学習することを優先したとか言いやがってAIはまだまだだな。
DisplaySwitch.exeなんて便利なコマンドあるんじゃねーか。
マイクロソフト製なくせにwindowsコマンド優先しないとか…
俺が学習することを優先したとか言いやがってAIはまだまだだな。
473名無しさん@お腹いっぱい。
2024/10/06(日) 13:00:16.93ID:1y8Ea0fn0 >>471
AutoHotkeyのスクリプトで、単純な処理の場合でもReturnは必要です。Returnはスクリプトの終了を明示的に示すため、スクリプトの動作を予期せぬエラーから守る役割があります。
コパイロットより
AutoHotkeyのスクリプトで、単純な処理の場合でもReturnは必要です。Returnはスクリプトの終了を明示的に示すため、スクリプトの動作を予期せぬエラーから守る役割があります。
コパイロットより
474名無しさん@お腹いっぱい。
2024/10/07(月) 00:02:46.97ID:cU7U0bdE0 >>471
必要
1行で書くなら return は不要
Enter::WinClose,A
v2 だと以下のように書けてとてもわかりやすい
```
Enter::{
WinClose('A')
}
```
必要
1行で書くなら return は不要
Enter::WinClose,A
v2 だと以下のように書けてとてもわかりやすい
```
Enter::{
WinClose('A')
}
```
475473
2024/10/07(月) 08:46:31.72ID:7zfB35Dh0 コパイロットも1行では不要です、AutoHotkey v2では、ブロック構文を使うことでReturnを省略できます、だって
コパイロットよ、どっちなんだい
コパイロットよ、どっちなんだい
2024/10/08(火) 07:11:01.64ID:PJm4zAM/0
477名無しさん@お腹いっぱい。
2024/10/08(火) 07:44:51.38ID:a+1T31eg0 新手の荒らしか?
2024/10/08(火) 11:24:24.22ID:g9vwOZ7j0
>>461
その後、色々試したのですが保存ボタンを押せないことが稀にあります
なのでLoopをかけて#32770がまだあったら2秒sleepかけて再度保存ボタンを押すのLoopを5重ぐらいにかけたらほぼノンストップで運用できるようになりました
実コードなど詳しい解説ありがとうございました
その後、色々試したのですが保存ボタンを押せないことが稀にあります
なのでLoopをかけて#32770がまだあったら2秒sleepかけて再度保存ボタンを押すのLoopを5重ぐらいにかけたらほぼノンストップで運用できるようになりました
実コードなど詳しい解説ありがとうございました
2024/10/08(火) 11:29:37.32ID:f7+Mss5f0
CPU利用率が高く処理が追いついてないときにWindowsはマウスやキーボードで行ったユーザー命令を無視する説ですべての説明がつく
2024/10/09(水) 12:32:31.05ID:cX4bOXdE0
これをAHKv2でどうやって実装すればいいじゃろか
直前に入力した単語を大文字にする
https://zenn.dev/vim_jp/articles/2024-10-07-vim-insert-uppercase
直前に入力した単語を大文字にする
https://zenn.dev/vim_jp/articles/2024-10-07-vim-insert-uppercase
2024/10/09(水) 12:59:44.57ID:ljiV3D/d0
How to Describe a Person in English: Phrases For Appearance
2024/10/09(水) 13:47:02.71ID:EDPVs9XS0
>>480
真面目に実装しようとすると AHK だけじゃ無理(のはず)。
"autohotkey get text cursor position" あたりでググるか(多分 v2 でお手軽に
使えるリソースは見つからないと思う。cursesライブラリィみたいな巨大なもの
ならあったかな?)、
https://www.scintilla.org/index.html が使えるエディタ環境なら、SciTE を
DllCall 経由で使う。
「単語単位を適当でいいや」にするなら、"^{Right}"、"^{Left}" で代用。
真面目に実装しようとすると AHK だけじゃ無理(のはず)。
"autohotkey get text cursor position" あたりでググるか(多分 v2 でお手軽に
使えるリソースは見つからないと思う。cursesライブラリィみたいな巨大なもの
ならあったかな?)、
https://www.scintilla.org/index.html が使えるエディタ環境なら、SciTE を
DllCall 経由で使う。
「単語単位を適当でいいや」にするなら、"^{Right}"、"^{Left}" で代用。
2024/10/09(水) 14:10:59.27ID:Ni5X0cgM0
2024/10/09(水) 15:50:52.36ID:jbkbVU700
AHKV1でtest_で始まる関数を列挙するってできる?
ソースコードをスキャンするというのはなしで
#include込みのすべてのソースコードを合体して文字列配列で取得する方法があるならそれでもいいけど
ソースコードをスキャンするというのはなしで
#include込みのすべてのソースコードを合体して文字列配列で取得する方法があるならそれでもいいけど
2024/10/10(木) 01:57:48.90ID:gju2+YZb0
>>480
んーむずかしいかー
とりあえず、
・IMEで文字列を選択して再変換
・普通に選択して置換 RegExReplace("asdf-fdsa-hauhntkl", "s).+", "$U{0}")
・エディタのマクロ
んーむずかしいかー
とりあえず、
・IMEで文字列を選択して再変換
・普通に選択して置換 RegExReplace("asdf-fdsa-hauhntkl", "s).+", "$U{0}")
・エディタのマクロ
2024/10/10(木) 02:25:42.96ID:FDERPLBs0
>>480
>直前に入力した単語を大文字にする
これは例えばメモ帳使ってる時に実現したい、、、ってこと?
要するに『IMEが日本語入力状態だと思って書き込んだら英小文字が入力されていたので、再入力せずに直前の文字を日本語に直したい ※』
の日本語にするんじゃなく英小文字を英大文字にするってこと?
だとしたらかなり前の過去スレに ※ のv1用コード貼られてるからそれを改造すればいけそう
https://web.archive.org/web/20181230010420/http://anago.5ch.net/test/read.cgi/software/1367725658/
の164-165
ちなみに個人的にこれ改造してv1で今も使ってる(MGLのプラグイン化して)
よく分からずレスしてるんでやりたいことと違ってたらすまん
>直前に入力した単語を大文字にする
これは例えばメモ帳使ってる時に実現したい、、、ってこと?
要するに『IMEが日本語入力状態だと思って書き込んだら英小文字が入力されていたので、再入力せずに直前の文字を日本語に直したい ※』
の日本語にするんじゃなく英小文字を英大文字にするってこと?
だとしたらかなり前の過去スレに ※ のv1用コード貼られてるからそれを改造すればいけそう
https://web.archive.org/web/20181230010420/http://anago.5ch.net/test/read.cgi/software/1367725658/
の164-165
ちなみに個人的にこれ改造してv1で今も使ってる(MGLのプラグイン化して)
よく分からずレスしてるんでやりたいことと違ってたらすまん
2024/10/10(木) 12:40:28.96ID:ellHKC8G0
>>480
www.autohotkey.com/boards/viewtopic.php?f=83&t=132338
ちょっと前に見かけたこのライブラリを使えば出来るんじゃないかな? と思って、試しにいじってみたらそれっぽいことはできました
細かい検証とかはしていないので使用上の弊害などは分かりません
#Include XHotstring.ahk
XHotstring.ResetKeys := "{Left}{Right}{Up}{Down}{Next}{Prior}{Home}{End}{Space}{Enter}" ; 適用範囲をリセットするキー デフォルトでは{Space}{Enter}がなかったので追加
XHotstring(":*:(.+)@@", "$U1") ; 任意の文字列入力後、@二度押しで適用範囲内文字列を大文字に変換
>>484
AHKのプロセスメモリ内をスキャンすれば可能かもしれませんが、ソースコードの解析が一番簡単だと思います
Includeファイルについては#IncludeがあればInclude先もスキャンすれば良いだけです
v2なら特定クラス内のメソッドとかであれば列挙可能ですが、スクリプト全体から列挙する方法はv1と同様です
www.autohotkey.com/boards/viewtopic.php?f=83&t=132338
ちょっと前に見かけたこのライブラリを使えば出来るんじゃないかな? と思って、試しにいじってみたらそれっぽいことはできました
細かい検証とかはしていないので使用上の弊害などは分かりません
#Include XHotstring.ahk
XHotstring.ResetKeys := "{Left}{Right}{Up}{Down}{Next}{Prior}{Home}{End}{Space}{Enter}" ; 適用範囲をリセットするキー デフォルトでは{Space}{Enter}がなかったので追加
XHotstring(":*:(.+)@@", "$U1") ; 任意の文字列入力後、@二度押しで適用範囲内文字列を大文字に変換
>>484
AHKのプロセスメモリ内をスキャンすれば可能かもしれませんが、ソースコードの解析が一番簡単だと思います
Includeファイルについては#IncludeがあればInclude先もスキャンすれば良いだけです
v2なら特定クラス内のメソッドとかであれば列挙可能ですが、スクリプト全体から列挙する方法はv1と同様です
488名無しさん@お腹いっぱい。
2024/10/13(日) 16:38:44.70ID:PDT1mwa30 MPRESSがもうダウンロードできなくなってるけど誰かくれんかね?
489名無しさん@お腹いっぱい。
2024/10/14(月) 03:02:35.98ID:KcUraxAC0 USキーボードのCAPSLOCKキーをIME切り替えにしたいのですが、
CAPSLOCKをF14にした上で
;;;IME切り替え
F14::
send,!{vkC0}
return
で今まで切り替えていたのですが、IME切り替えがよくバグってALTキーが押しっぱなしにされてしまいます。
!{vkC0}を使わずにIME切り替えする方法ないでしょうか?
CAPSLOCKをF14にした上で
;;;IME切り替え
F14::
send,!{vkC0}
return
で今まで切り替えていたのですが、IME切り替えがよくバグってALTキーが押しっぱなしにされてしまいます。
!{vkC0}を使わずにIME切り替えする方法ないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【モンゴル草原火災】モンゴル当局が賠償請求検討 KDDI「法令違反ない」 [煮卵★]
- 【サッカー】鈴木彩艶が好セーブ連発でマンC撃破 アストン・ビラが首位の連勝を7でストップ…攻撃面でも存在感 [ゴアマガラ★]
- 【クマ】秦野市でツキノワグマが再出没…捕獲・放獣されたクマと同一個体と確認 [少考さん★]
- 【芸能】堀江貴文氏 結婚・子ども・家・車は「生涯にわたるバカ高いサブスク」 世間体に払う2億円の無駄 [冬月記者★]
- 【大阪IR】カジノディーラー3千人確保へ養成スクール 海外プロ年収1千万円超も国内は… [煮卵★]
- セブンイレブンからの客離れが止まらない ローソン、ファミマ最高益の裏で「ひとり負け」巻き返しの切り札は★3 [♪♪♪★]
- この時間にお散歩してるハゲいるでしょ
- 5ちゃんねる、専ブラで書き込めなくなってる模様。いよいよ閉鎖かwww [743999204]
- VIPって中高年層がメインなんだろ
- 1番強そうな料理はビーフストロガノフだけど
- 【ジャップ悲報】モンゴル🇲🇳大規模火災、損害賠償請求を検討する方針変わらず………。 非常にまずい状況に🥺 [683137174]
- 夢乃あいかって職歴ながいし可愛いしおっぱい大きいのにAV代表選抜的なランキングに全然入らないのなんで?