[過去ログ] AutoHotkey スレッド part33 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(5): 名無しさん@お腹いっぱい。 [sage] 01/23(火)16:30 ID:VpJPb0gB0(1) AAS
■公式サイト
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のみ
2chスレ:software
2: 名無しさん@お腹いっぱい。 [sage] 01/23(火)19:27 ID:FnsvWRx00(1) AAS
>>1

3: 名無しさん@お腹いっぱい。 [sage] 01/24(水)01:41 ID:T3tCzO230(1) AAS
>>1
1乙
4: 名無しさん@お腹いっぱい。 [sage] 01/24(水)05:56 ID:pxFSyCzv0(1) AAS
>>1


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

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

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

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

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

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

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

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

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

ToolTip txt1 `ntxt2 `ntxt3

としたところすべて一行で表示されてしまいました
どうすれば改行し表示されるようになりますか?
19
(4): 名無しさん@お腹いっぱい。 [sage] 02/07(水)18:42 ID:LvdfwSaP0(1) AAS
>>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かぐらいは書いといてください
20: 名無しさん@お腹いっぱい。 [sage] 02/07(水)19:18 ID:DnEjmR7K0(2/2) AAS
>>19
すみませんv2です
ありがとうございます出来ました
21: 0016 [] 02/09(金)07:17 ID:tdwV/Yte0(1) AAS
>>19
アドバイスありがとうございます。
0016です。
win+d動作しました。
ですが、※を外すと、CTRLキーが押されっぱなしになってしまいます。
v1です。
22: 17 [sage] 02/09(金)19:51 ID:TlIRmc760(1) AAS
>>19
アドレスバーだけしかならないしスクリプト最小限にしても同じだからChrome側の問題のような気がしてる

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

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

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

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

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

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

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

他に方法ある?
40
(1): 名無しさん@お腹いっぱい。 [sage] 02/20(火)22:40 ID:2f/D4TF30(1) AAS
>>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 := "".
41: 名無しさん@お腹いっぱい。 [sage] 02/21(水)14:37 ID:piaLdJEi0(1/2) AAS
GUI,ADDでSECTIONを設定した場合、以降に配置されたコントロールはSECTIONで指定した場所に配置されますが、SECTIONをリセットして元の配置にする場合はどうすれば良いですか?
42: 名無しさん@お腹いっぱい。 [sage] 02/21(水)15:14 ID:piaLdJEi0(2/2) AAS
ああ自己解決しました。
43: 名無しさん@お腹いっぱい。 [sage] 02/22(木)05:56 ID:jHoqPNQr0(1) AAS
>>40
ふむ

配列は大丈なのかな?
大丈夫な気はするが…
44: 名無しさん@お腹いっぱい。 [sage] 02/22(木)19:55 ID:BXwIPoxz0(1) AAS
ChromeのパチモンブラウザのInspectでSourcesを見てると
Consoleの入力欄からちょいちょいフォーカスが外れて困ってるんだが、何かいいアイデアはないだろうか
45: 名無しさん@お腹いっぱい。 [sage] 02/25(日)16:46 ID:qujSbJD80(1/2) AAS
現在のGUIの特定のコントロールがDisableかEnableかを知る変数的な機能ってありますか?
46: 名無しさん@お腹いっぱい。 [sage] 02/25(日)17:28 ID:hLJfR+190(1) AAS
https://ahkscript.github.io/ja/docs/v2/lib/GuiControl.htm#Enabled
47: 名無しさん@お腹いっぱい。 [sage] 02/25(日)17:46 ID:qujSbJD80(2/2) AAS
解決しました、有難うございます。
48
(1): 名無しさん@お腹いっぱい。 [sage] 02/25(日)18:03 ID:tGG481cl0(1) AAS
ぼちぼちv2に移行するか…
多すぎてめんどくさい…
49: 名無しさん@お腹いっぱい。 [sage] 02/25(日)18:10 ID:CCZOt+Ta0(1/2) AAS
V1.1時代に作ったのはもうそのままにしてる。改修が必要なものや新規に書くものはV2にしてるけど。
50: 名無しさん@お腹いっぱい。 [sage] 02/25(日)18:46 ID:npuliHf90(1) AAS
V1 と V2 共存できるの?
51: 名無しさん@お腹いっぱい。 [sage] 02/25(日)19:38 ID:CCZOt+Ta0(2/2) AAS
先にV1入れてあればV2インストール時に同居の設定とか選べたと思うけど
コンパイルする時のバッチファイルで元になるバイナリもしくは実行モジュールを
パス指定すりゃいいだけなのでバージョン違いをいくつでも同居できる
52: 名無しさん@お腹いっぱい。 [sage] 02/25(日)20:37 ID:JaTrMCi10(1) AAS
拡張子変えて管理してるのはダサいの?
V1はそのままでV2の拾い物には .ahk2 にしているが。
53
(1): 名無しさん@お腹いっぱい。 [sage] 02/26(月)06:28 ID:UI6RVr1a0(1) AAS
スクリプト置くフォルダを変更すればいいんじゃ?
54
(1): 名無しさん@お腹いっぱい。 [sage] 02/26(月)15:05 ID:jxZkTh8B0(1) AAS
winhookがv2化してくれたら完全移行する
55
(1): 名無しさん@お腹いっぱい。 [sage] 02/27(火)19:41 ID:EXLLOPxc0(1/2) AAS
https://github.com/AHK-just-me/Class_SQLiteDB

これをv2でも動くようにしようとエラーが出るたびにチマチマと修正していったが修正箇所多すぎて投げた
「AHK v2からSQLiteのDLLを使う単純なコード」の例がネットにないんだよな
ChatGPTやGeminiに聞いても正しい回答は出てこないし
56: 名無しさん@お腹いっぱい。 [sage] 02/27(火)20:24 ID:EXLLOPxc0(2/2) AAS
というか、DLLを使ってデータベースを操作するという処理が、そもそも単純ではないんだろうな
なんとなくデータベース処理用の組み込み関数を使うのと大差ないやろと思っていたが、
抽象度が一段下がるから。
「SQLiteをちょっと使いたい」程度なら、CLIからsqlite3.exeを呼び出す方がいいんやろね
このライブラリがv2に対応してくれれば一番いいけど
57
(1): 名無しさん@お腹いっぱい。 [sage] 02/27(火)20:50 ID:lR48cM5c0(1) AAS
>>54
https://www.autohotkey.com/boards/viewtopic.php?f=82&t=121990&hilit=winhook

>>55
https://www.autohotkey.com/boards/viewtopic.php?f=83&t=95389&hilit=Class_SQLiteDB
58: 名無しさん@お腹いっぱい。 [sage] 02/28(水)01:52 ID:R36ZnXWQ0(1) AAS
>>57
もちろん知ってるんだが、微妙ーーに挙動がおかしいのよ
完全版待ち
59: 名無しさん@お腹いっぱい。 [sage] 02/28(水)11:57 ID:+Zia7VdD0(1) AAS
絶対知らなかっただろw
60: 名無しさん@お腹いっぱい。 [] 02/28(水)22:56 ID:DfbbpxMO0(1/3) AAS
v1系で
文字列の中にxとかabcとか任意の文字列が何回登場するか?ってどうやって取得するべき
ダイレクトに何番目は此処って変数ある?
61: 名無しさん@お腹いっぱい。 [] 02/28(水)23:19 ID:DfbbpxMO0(2/3) AAS
ん? 3行目おかしいな
何番目は此処 じゃなくて 何個ある だ
62: 名無しさん@お腹いっぱい。 [] 02/28(水)23:20 ID:DfbbpxMO0(3/3) AAS
ん? 3行目おかしいな
何番目は此処 じゃなくて 何個ある だ
63: 名無しさん@お腹いっぱい。 [sage] 02/28(水)23:37 ID:K4I/JOut0(1) AAS
変数?
64: 名無しさん@お腹いっぱい。 [sage] 02/29(木)00:41 ID:QwHRer9Q0(1) AAS
regexmatchのオプションにあったような
サブマッチをオブジェクトにまとめる奴
65: 名無しさん@お腹いっぱい。 [sage] 02/29(木)00:44 ID:nI7TypkK0(1) AAS
https://www.autohotkey.com/docs/v1/lib/StrReplace.htm
66
(1): 名無しさん@お腹いっぱい。 [] 03/01(金)14:19 ID:DFO14fjw0(1/6) AAS
60だけどありがとう 参考にするね

ABC1234/ABC2345/BCD1234/CBD3456/ABC1234/・・・・と

アルファベットと数字で構成された6文字以上の文字列が/でつながった長い一つのテキストになっています。
これを/を区切り文字にして一旦
ABC1234 ABC2345 BCD1234 CBD3456 [ABC1234] にわけ、かつ重複[]をなくし元の形の様に戻そうと思っています。

前:ABC1234/ABC2345/BCD1234/CBD3456/ABC1234/・・・・
後:ABC1234/ABC2345/BCD1234/CBD3456/・・・・

方法としては、
文字を頭から/で切り分けて、
1.先頭の区切った単位(ABC1234等)を配列に入れ
2.2番目以降の切り分け作業は、重複を検出するため配列のループで回し対象の文字が配列と同じなら重複である変数を吐き同じなら配列に格納しない
67: 名無しさん@お腹いっぱい。 [] 03/01(金)14:20 ID:DFO14fjw0(2/6) AAS
ARは配列、txtがABC1234/ABC2345/BCD1234/CBD3456/ABC1234/・・・・

これまでで切り分け先頭をtxtに代入

Loop, % AR.Length()
{
if(txt = AR[A_Index])
{
duplicate:=1
break
}
}

その後また連結作業

で if(txt = AR[A_Index]) が適用されてこの中の{}はmsgboxなり入れてそれは動くのにduplicateが1にならないんです
そもそも今まで動いていた(1になってた)のにPCをインストールしなおして同じahkのverで動かなくなったのが本当にわかりません
思い当たることはないですか?
68: 名無しさん@お腹いっぱい。 [] 03/01(金)14:55 ID:DFO14fjw0(3/6) AAS
あーーーめちゃくちゃだー、変数txtがかぶってた

これまでで切り分け先頭をtxt2に代入

Loop, % AR.Length()
{
if(txt2 = AR[A_Index])
{
duplicate:=1
break
}
}

その後また連結作業

に替えます すみません
69: 名無しさん@お腹いっぱい。 [sage] 03/01(金)17:31 ID:dndzOKFQ0(1) AAS
なんかパッケージマネージャーきてる
https://ahkpm.dev/
70: 名無しさん@お腹いっぱい。 [sage] 03/01(金)17:43 ID:dwdauD5+0(1/2) AAS
v1越えてないのはちょっと…
71: 名無しさん@お腹いっぱい。 [] 03/01(金)18:12 ID:DFO14fjw0(4/6) AAS
ここに常駐して回答している人はそうかもしれないけど
昔作って動いてるのをちょっとずつ改良をし続ける人にとってはv2に変えるメリットが弱すぎるからね
機能需要が飽和すれば更新なんて興味ないし、v2のほうがいいってレスはあまりに人によると思うよ
72
(1): 名無しさん@お腹いっぱい。 [sage] 03/01(金)20:39 ID:AcOl4pP90(1/2) AAS
何かの弾みで「ひらがな」モードが「カタカナ」になって地味に困るんだけど原因が未だにわからん・・・
おそらく無変換キーを半角全角キーに割り当ててるのが何かしら関係してるとは思うけど
73
(1): 名無しさん@お腹いっぱい。 [sage] 03/01(金)20:40 ID:dwdauD5+0(2/2) AAS
いやパッケージマネージャーの方
74
(3): 名無しさん@お腹いっぱい。 [sage] 03/01(金)20:48 ID:qDNmBvdA0(1) AAS
Alt空打ちでIME切り替えスクリプトをv2に移行しようとしているとしているんだけど
ここの行の設定の必要性が全くわからない。。
https://github.com/karakaram/alt-ime-ahk/blob/6cd6a99f983fdd65ef3fa475ee72a5b09616f5cf/alt-ime-ahk.ahk#L14-L108

こっちだけ設定すれば動くんだけど上のはないとどういう不都合があるんですかね
https://github.com/karakaram/alt-ime-ahk/blob/6cd6a99f983fdd65ef3fa475ee72a5b09616f5cf/alt-ime-ahk.ahk#L110-L112
75: 名無しさん@お腹いっぱい。 [] 03/01(金)21:33 ID:DFO14fjw0(5/6) AAS
>>73
ごめんね勘違いした
76
(1): 名無しさん@お腹いっぱい。 [sage] 03/01(金)21:36 ID:LHVN5T6E0(1) AAS
>>74
5行目の
; Alt キーを押している間に他のキーを打つと通常の Alt キーとして動作
のためじゃねーの、確認してないから分からんけど
77
(1): 名無しさん@お腹いっぱい。 [sage] 03/01(金)22:12 ID:ctjUE+gH0(1) AAS
>>72
IMEキー設定「無変換」=かな切替=あ→カ→_カ→
これが誤動作してる?
78
(1): 名無しさん@お腹いっぱい。 [sage] 03/01(金)22:44 ID:AcOl4pP90(2/2) AAS
>>77
ごめん半角全角は変換キーだった
そして無変換キーも使って、実際はこんな感じ

; 無変換+hjklでvim的上下左右
sc07B & k:: Send "{Blind}{Up}"
(略)
; 変換→半角全角
*vk1C:: Send "{vkF3}"

タイピングが荒くてほぼ同時に押したりしちゃうからそれで変な入力入るのかも・・・
ソフト的なレイテンシとかに左右されるってんなら厄介だな、LLフックの限界か
79
(1): 名無しさん@お腹いっぱい。 [sage] 03/01(金)23:14 ID:fOGOehZS0(1) AAS
>>66
やりたいことは理解できましたが、簡潔に説明できそうにないので
求めている結果を返す方法で思いついたのを3つほどサンプルとして提示しておきます
https://pastebin.com/rckthybE

>>74
>>76の言うように、それらの記述がないと例えばAlt+Escなどを押したときにもIMEの状態変換が起きてしまいます
多くの場合、Altキーとの組み合わせショートカットはアクティブウィンドウかフォーカスが変わるため気付きにくいだけです
または、Altショートカットを使用したときにIMEが勝手にオンオフ切り替わってても構わない場合はなくても構いません

ただし、その該当キーを羅列する力技とも呼べる方法はあまりお勧めしません
単体で使用するなら問題はありませんが、個人用のスクリプトに組み込む場合は問題が発生する可能性があります
例として動的にホットキーを変更するHotkey関数を使用した場合、ほぼ確実に何らかの予想外の動きが発生します
他にも#Hotifの条件次第では予期してない所に影響がでる可能性もあります

よって、InputHook()を使用するのが良いと思います
興味があったので作って見ましたが、ざっと作ったので不具合があるかもしれません
https://pastebin.com/MhiHkFgT
80
(1): 名無しさん@お腹いっぱい。 [sage] 03/01(金)23:19 ID:0cGOWjK10(1) AAS
>>6
並びが変わってもいいならsortのuオプション使えば重複は削除される
変わっちゃだめならforで回せばいいのでは?
81: 名無しさん@お腹いっぱい。 [] 03/01(金)23:50 ID:DFO14fjw0(6/6) AAS
>>79-80
ありがとう

代案はありがたいし、今後によってはそれを参考にさせてもらいたいけど
まずそもそも変数が1にならないことの原因は何か思いつきませんか?
やってることはめちゃくちゃ簡単な動作だし、動かない要因のほうが根底で興味がある
そうじゃないと代案も動くかどうかわからないし
82: 名無しさん@お腹いっぱい。 [sage] 03/02(土)00:22 ID:vKnzdR7D0(1) AAS
>>74
該当キーを羅列する力技を削除して、A_PriorHotkeyチェックをA_Priorkeyチェックにするのはどうでしょう。こんな感じ。不具合あったらごめんなさい。

#InstallKeybdHook
#UseHook
#MaxThreads 255
#MaxThreadsPerHotkey 20
#Include IME.ahk

*~LAlt::Send {Blind}{vk07}
*~RAlt::Send {Blind}{vk07}
LAlt up::
if (A_Priorkey == "LAlt")
{
IME_SET(0)
}
Return
RAlt up::
if (A_Priorkey == "RAlt")
{
IME_SET(1)
}
Return
83
(1): 名無しさん@お腹いっぱい。 [sage] 03/02(土)01:23 ID:lYh5+D0F0(1/2) AAS
>>78
取り敢えず、SC指定からVK指定に替えてみたらどうかな?
VK1D & k:: Send "{Blind}{Up}"
84: 名無しさん@お腹いっぱい。 [sage] 03/02(土)12:11 ID:upJ2H/t00(1/2) AAS
GetKeyStateだと特定のキー入力を判別できますが、キーボードのどのキー入力でも判別できる様にするにはどうしたら良いですか?
85: 名無しさん@お腹いっぱい。 [sage] 03/02(土)12:24 ID:bUfdpSjA0(1) AAS
GetKeyboardState で監視とかじゃね
86: 名無しさん@お腹いっぱい。 [sage] 03/02(土)12:46 ID:upJ2H/t00(2/2) AAS
GetKeyboardState?
autohotkeyにそのようなコマンドがある事を知りませんでしたが、私には検索しても分かりませんでした。
87
(1): 名無しさん@お腹いっぱい。 [sage] 03/02(土)15:51 ID:dGeKUive0(1/2) AAS
v2
Chromiumのキャレットも取れるライブラリ見つけた
https://github.com/Tebayaki/AutoHotkeyScripts/blob/main/lib/GetCaretPosEx.ahk
88: 名無しさん@お腹いっぱい。 [sage] 03/02(土)16:30 ID:dGeKUive0(2/2) AAS
>>87
マルチモニタだとメインモニタ意外は取得できないっぽい
おま環かな?
89
(1): 名無しさん@お腹いっぱい。 [sage] 03/02(土)18:12 ID:MAh6Wu/O0(1) AAS
>>83
ありがとう
全然理解できてないけど基本的にSCよりVKのほうが安定してるんだっけ?
とりあえず試して様子見します
90: 名無しさん@お腹いっぱい。 [sage] 03/02(土)19:32 ID:lYh5+D0F0(2/2) AAS
>>89
キー名指定が無難だね
SC指定だとKeyWait検知がダメで、長押しや、ON/OFFトグルができず
キー名指定に変えただけで動作したことがある
91
(1): 名無しさん@お腹いっぱい。 [sage] 03/04(月)22:21 ID:t/mXsID10(1) AAS
v1
GuiのTextコントロールにgラベル割り当ててダブルクリックすると
サブルーチンで何もしてなくてもコントロールのテキストが勝手にコピーされるのは仕様?阻止できない?
92
(1): 名無しさん@お腹いっぱい。 [sage] 03/04(月)23:25 ID:uwztLYUv0(1) AAS
>>91
仕様ですが、下記で無効化できます

OnMessage(0x203, "WM_LBUTTONDBLCLK")
WM_LBUTTONDBLCLK(wParam, lParam, Msg, hwnd){
Return 0 ; デフォルト動作を無効化するには0を返す
}
93: 名無しさん@お腹いっぱい。 [sage] 03/05(火)01:10 ID:lb+5r09t0(1) AAS
なかなかいいアイデアを思いついたぞ

...
#if WinActive("myapp1")
sc7B & F1:: ShowHelp(A_LineFile, A_LineNumber)
a:: ;; ページアップ
Send,{PgUp}
return
d:: ;; ページダウン
Send,{PgDn}
return
#if WinActive("myapp2")
...

で無変換+F1を押すとA_LineFile, A_LineNumber周辺をスキャンして

msgbox %
(
myapp1のヘルプ
a : ページアップ
d : ページダウン
)
というテキストを生成して操作ヘルプを表示する
ちなみにShowHelp(A_LineFile, A_LineNumber)はException使ってコールスタック調べれば
ShowHelp()と省略して書ける
94: 名無しさん@お腹いっぱい。 [sage] 03/05(火)07:41 ID:dTxxRdxg0(1) AAS
>>92
ありがとう
ただそれ足しただけだとダブルクリックそのものが無効化されて
(A_GuiControlEvent = "DoubleClick")が処理できなくなってしまったので、gラベルを外して

WM_LBUTTONDBLCLK() {
 MouseGetPos,,,, CNN
 if (CNN ~= "^Static\d+$")
 (略)

で解決
95
(2): 名無しさん@お腹いっぱい。 [sage] 03/07(木)14:21 ID:Nyl4exhm0(1) AAS
Xbox Oneコントローラーってautohotkeyで認識できない?

Xboc360とPlaystation3のコントローラーは認識できたが…
96: 名無しさん@お腹いっぱい。 [sage] 03/07(木)18:12 ID:LAcrkOWk0(1) AAS
>>95
AHK単体ではできませんが、XInput.ahk または JoystickWrapper.ahk などのライブラリを使えば入力の検出はできます
2つともかなり古いライブラリですが、Win10でv1ならそのまま、v2でも変換すれば使えます(Win11の場合は分かりませんがたぶん使えるでしょう)
ただ、いずれにせよAHKのジョイスティック(DirectInput)用のホットキーのように手軽ではなく、使用にある程度のコーディングが必要になります
97: 名無しさん@お腹いっぱい。 [] 03/07(木)22:04 ID:Q1TT3U1X0(1) AAS

98: 名無しさん@お腹いっぱい。 [] 03/07(木)22:04 ID:jhTULChQ0(1) AAS

99
(2): 名無しさん@お腹いっぱい。 [sage] 03/07(木)22:13 ID:6a5XeRiW0(1) AAS
>>95
https://github.com/evilC/UCR
100
(3): 名無しさん@お腹いっぱい。 [sage] 03/08(金)10:51 ID:bnA+RqVn0(1/5) AAS
日本語キーボード+AutoHotKeyで
Caps Lock+IJKLでカーソル移動に割り当てることってできますか?

Change KeyなどでCtrlとCaps Lockを入れ替えることなく、
Caps Lockそのものをトリガーにしたいのです
(Ctrlは変換用のキーボードショートカットで使うので)
1-
あと 902 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.208s