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/01/23(火) 19:27:40.61ID:FnsvWRx00
>>1
2024/01/24(水) 01:41:47.32ID:T3tCzO230
>>1
1乙
2024/01/24(水) 05:56:14.39ID:pxFSyCzv0
>>1


まだまだv1.1使ってる人いるしWikiの方は古いからこれも有った方が良いんでない?
英語だけどv1とv2のReferenceがワンタッチで切り替えられるからv1からv2への移行にも役立つと思う

Quick Reference | AutoHotkey v1
https://www.autohotkey.com/docs/v1/
NGNG
あぼーん
2024/01/25(木) 09:24:50.14ID:GOgjMqwJ0
次スレ立つ前に埋めるバカってもう手遅れなの?
7名無しさん@お腹いっぱい。
垢版 |
2024/01/25(木) 11:16:52.55ID:uinKnG8v0
生まれてきた時点で手遅れだよ
2024/01/27(土) 04:38:11.88ID:OYYfCLct0
一気にv2に移行するの大変だから
別にインストールしてv1と共存させておくことってできる?
2024/01/27(土) 07:54:52.45ID:I7ixFwtU0
普通にできる。V2インストールの段階でそういう選択肢が出てくる。
2024/01/28(日) 17:38:09.93ID:CFvYYNxZ0
>>1
以前スクリプトかなんかで埋められた時スレ立てられなかったから無事復活してなにより
2024/02/03(土) 02:32:48.04ID:IMR03lFg0
解決法が分からなかったからホットキーを総当たりにしてゴリ押し解決したでござる

上手い人なら5行とかで終わるであろうものを150行くらい書いた

動作問題ないし思い通りに動いた 嬉しい~~~
2024/02/03(土) 07:48:58.75ID:LhSpej1Q0
忘れた頃に変な副作用出そう
2024/02/05(月) 21:14:34.37ID:ihl53dSU0
>>12
上手くなった未来の自分に託した(キレながら作業していそう)
2024/02/05(月) 22:07:05.15ID:c+A6I04o0
キーを長押ししないと反応してくれないパターンがあるアプリがあるんだけどどうしたら良い?

スクリプトの中身は単純に↓の1行だけ
a::Send('{F1}')

長押ししないと反応しない右辺のパターン
・ファンクションキー全部
・MouseClickのLeftとRight
・Escキー

正常に反応する右辺のパターン
・MouseClickのWheelUpとWheelDown

Sleepも試したけど効果無かった
2024/02/05(月) 22:42:57.45ID:AkVUYdXx0
setkeydelay
16名無しさん@お腹いっぱい。
垢版 |
2024/02/06(火) 06:10:42.05ID:zlCqbpOK0
d長押しでCTRLキーを設定している。
この状態でwin+dが反応しないんだけどどうしたらよい?

;;長押し割り当て
*d::
Send {Blind}{LCtrl DownTemp}
return
*d Up::
Send {Blind}{Ctrl Up}
If (A_Priorkey=="d"){
Send {d}
}
return
2024/02/07(水) 11:48:53.47ID:BNBk3/1R0
Chromium系のブラウザでアドレスバーの文字をコピーすると
ClipboardChangeが2回呼ばれるみたいで困ってるんだけど、おま環?
なんとか1回しか通さないようにできないものか
2024/02/07(水) 17:24:34.50ID:DnEjmR7K0
txt1〜の変数に文章を格納してこれをToolTipで各変数ごとに改行、複数行で表示させたいと思い

ToolTip txt1 `ntxt2 `ntxt3

としたところすべて一行で表示されてしまいました
どうすれば改行し表示されるようになりますか?
2024/02/07(水) 18:42:28.48ID:LvdfwSaP0
>>14
>>15の指摘通りSetKeyDelayを試してください。ただし、v2はデフォルトのSendモードがInputになっているため
そのままではSetKeyDelayが効かないので、SendMode("Event")を指定するか、Sendの代わりにSendEventを使用してください


>>16
単純にホットキーの*を外してください。そうしてしまうと他キーとの組み合わせで影響が出る場合は
ホットキーとして#d::を追加し、#dをSendすると共にフラグをたて、*d UpでdをSendしないように判定を入れ、フラグを消す


>>17
まず、コピーする際の動作(Ctrl+cなど)で他のホットキーや他の常駐アプリのショートカット等が発動してないか確認してください
その他の原因として思い当たるのはコールバックを重複して登録している可能性があります
また、v1でラベル式のOnClipboardChangeを使用している場合は、スクリプト起動時にも無意味に発動するので
その辺りも考慮したコーディングをしてください。それ以外ならコード見ないとなんとも言えません

別の方法としては、2回呼び出しが起こるものと断定し、コールバック関数の方でクリップボードの前の内容を変数にキープしておいて
同じ内容ならなにもせずreturnするとかしておく方法もあります


>>18
v1なら ToolTip, % txt1 "`n" txt2 "`n" txt3
または ToolTip, %txt1%`n%txt2%`n%txt3%
v2なら ToolTip(txt1 "`n" txt2 "`n" txt3)


あと、皆さんv1かv2かぐらいは書いといてください
2024/02/07(水) 19:18:02.49ID:DnEjmR7K0
>>19
すみませんv2です
ありがとうございます出来ました
210016
垢版 |
2024/02/09(金) 07:17:34.49ID:tdwV/Yte0
>>19
アドバイスありがとうございます。
0016です。
win+d動作しました。
ですが、※を外すと、CTRLキーが押されっぱなしになってしまいます。
v1です。
2217
垢版 |
2024/02/09(金) 19:51:14.43ID:TlIRmc760
>>19
アドレスバーだけしかならないしスクリプト最小限にしても同じだからChrome側の問題のような気がしてる

なのでとりあえず
>前の内容を変数にキープしておいて同じ内容ならなにもせずreturn
これで対処することにします。ども
2024/02/11(日) 23:48:06.21ID:5c25RQBT0
キーの指定でvk○○だとエラーが出るんですがなぜでしょうか(sc○○では大丈夫)
1.1.37.01です
2024/02/12(月) 00:26:10.06ID:290Vlkp20
>>23
それだけの情報だと何ともいえない。
実際のソースとか、エラーのスクショとか。
2024/02/12(月) 05:46:59.18ID:E8Ir8oKs0
>>23
AHKファイル読込時に、何行目がエラーなのか表示されてない?
2024/02/12(月) 11:47:58.12ID:EprOlHxI0
すみません、確認したらエラーが出るのは「vk○○sc○○」とつなげて書いたときでした
vkのみ、scのみならエラーが出ません
なんかだいぶ前の更新でこの書き方は駄目になったそうですね…
2024/02/14(水) 19:54:18.85ID:jMLz7Vo+0
マニュアル読んでたらv2ってseed入れた疑似乱数作れなくなってたのか
なんか良い代用方法ないかなぁ
2024/02/15(木) 06:59:13.36ID:Rd7uFc2Q0
seedに依存した再現性のある疑似乱数列が欲しいんだとしたら
質を気にしないなら、線形合同法をwikipediaとかの短所の説明を読んで実装するのが簡単だと思う
質が必要ならいろいろあるんで疑似乱数で検索してみて

もし同じ出力になるのを心配してるなら、RandomはRtlGenRandomを呼んでるみたいで
https://en.wikipedia.org/wiki/CryptGenRandom
によるとGetCurrentProcessID, GetCurrentThreadID, GetTickCount, GetLocalTime, QueryPerformanceCounter
とかでいい感じになってるらしいんで気にしなくてもいいみたい
2024/02/15(木) 20:04:16.47ID:yNUglGyv0
>>28
組む手間省略出来るなら使おうかと思ってただけなんだ
ありがとう、やっぱ無いなら組まないといかんよね
30名無しさん@お腹いっぱい。
垢版 |
2024/02/17(土) 01:22:17.31ID:ztG2f5Qz0
本末転倒
覚悟出来たか?
2024/02/17(土) 01:23:30.07ID:G57Rr8lw0
>>6
無理してない
32名無しさん@お腹いっぱい。
垢版 |
2024/02/17(土) 01:23:50.07ID:2tzVNVy50
信者が朝から出動するスレか
マジで明日上げんじゃねーの?
2024/02/17(土) 12:56:19.64ID:yswOq45Q0
GOM Playerという動画再生ソフトで総再生時間と経過時間は表示されるのですが
残り時間が表示されないためAHKで残り時間を取得して表示させたいのですが何かよい方法はないでしょうか

自分が考えたのは
@OCRで画面上の総再生時間と経過時間を読み取り引き算して残り時間を取得

AGOMのメモリ内の総再生時間と経過時間を読み取り引き算して残り時間を取得
AHKからプロセスメモリエディタのような複雑なことは出来る?

ぱっと考えただけでも自分のスキルでは無理そうなのですが何かよい方法はないでしょうか
2024/02/17(土) 14:34:01.17ID:bSDNcPvm0
>>33
オレ環に入れてるプレーヤー → mpc-hc・VLC・mpv は全て「再生時間」のところクリックすると切り替わって残り時間表示してくれるけどなー
ゴムはそうなってないのか?

>自分のスキルでは無理そうなのですが…
ahkで何とかする方法はおれは分からんけど、この機会にプレーヤー乗り換えるかそのまま我慢して使い続けるかどっちかにした方が良いような気がする
2024/02/17(土) 20:15:26.04ID:yswOq45Q0
>>34
GOMは「再生時間」のところクリックしても何も起こりません

この際プレイヤーを変えてみる事も考えているのですが mpc-hc・VLC・mpv の中で
現在の再生速度を画面に常に表示しておけるものはありますか?
2024/02/18(日) 01:52:32.46ID:hXlJtIKd0
かなり昔にahkスレでmpv教えてもらったな。あいがとう当時のおっさん
面倒くさいけどlua覚えたよ
2024/02/18(日) 20:38:08.51ID:C98TabMg0
Luaなんか何に使ってたんだ
2024/02/19(月) 09:50:25.92ID:dq0vnJ5b0
mpvのconfigや制御がluaなのよ
Rainmeterもluaなので助かった
postmessage経由でahkとも相性が良い
2024/02/20(火) 21:59:56.96ID:gDbz9l5/0
配列で、例えば
my_list := [13, 4, 8]
を初期化したい場合、
my_list := []
ってやったらメモリリークする?

他に方法ある?
2024/02/20(火) 22:40:00.31ID:2f/D4TF30
>>39
Variables and Expressions - Definition & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/Variables.htm
> A variable cannot be explicitly deleted, but its previous value can be released by assigning a new value, such as an empty string:

Variables and Expressions - Definition & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/Variables.htm#cap
> The memory occupied by a large variable can be freed by setting it equal to nothing, e.g. var := "".
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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