AutoHotkey スレッド part30 IDのみ

■ このスレッドは過去ログ倉庫に格納されています
2022/02/08(火) 18:38:19.33ID:UTRGyCNl0
元々がIDのみの表示で番号の始まっているスレを途中から別の表示で乗っ取るのは「背乗り」行為に当たるので、IDのみの表示で進行とします

■配布元
https://autohotkey.com/download/

■前スレ
AutoHotkey スレッド part29
https://egg.5ch.net/test/read.cgi/software/1620768466/

■日本語解説等
AutoHotkey Wiki
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://hdd.s300.xrea.com/ahk/
AutoHotkeyJp(過去ログdatあり)
https://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
https://www6.atwiki.jp/eamat/

■スクリプト投稿
Autohotkey専用うpろだ
https://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
https://pastebin.com/

■その他のテンプレ(5chのURL規制が厳しいのでpastebinに退避しました)
https://pastebin.com/raw/bWipuNmt
2023/08/07(月) 18:56:52.04ID:AjxfGTno0
>>356
離した時じゃなくて押した時ちゃう?右クリで ~RButton:: へ行って、
同時にホイールを触ると~RButton & WheelUp/Down:: が動き出す。

ワシの場合は、~RButton:: の処理内容が右ダブルクリック。
設定時間内にダブルクリックを検出しなければ何もせずに終了、と
していたので特に問題は起きていない。

そこまでテストコードを書いていないからできるかどうか自信ないけれど、
~RButton:: 内に WheelUp/Down のチェックを入れるとかで
回避できそうではある。
358名無しさん@お腹いっぱい。
垢版 |
2023/08/08(火) 00:02:10.85ID:2tx9nkkk0
~RButton::
KeyWait, RButton, T1
If (ErrorLevel)
{
While GetKeyState("RButton", "P")
{
Click
Sleep, 20
}
}
else
{
Send, {Escape}
}
return
~RButton & WheelUp::
{
Sleep, 500
Click
}
return
~RButton & WheelDown::
{
Sleep, 1000
Click
}
return
処理内容は簡略化されてますがこんな感じです。
右クリックしながらホイールを動かすとクリックが処理されて、その後右クリックを離した所でエスケープが入力されてしまいます。
それを防ぐために~RButton::の中でホイール状態を取得しようとした結果>>352。それぞれを独立して動作させたいのですが無理なんでしょうか(ヽ´ω`)
2023/08/09(水) 03:34:35.28ID:xviYZMnK0
MouseGestureLなら簡単に出来そうだから本家でも出来るんじゃね
2023/08/09(水) 18:25:52.85ID:syUydIU00
スレッド周りの設定を変にいじってなければ
こんな感じで希望しているような動作になると思う

~RButton & WheelUp::IsWheelUp := True
~RButton & WheelDown::IsWheelDown := True
~RButton::
IsWheelUp := IsWheelDown := False
KeyWait, RButton, T1
if(IsWheelUp){
ToolTip, WheelUp
}else if(IsWheelDown){
ToolTip, WheelDown
}else if(ErrorLevel){
While(GetKeyState("RButton", "P")){
a++
ToolTip, % a
Sleep, 20
}
}else{
ToolTip, Escape
}
return
361名無しさん@お腹いっぱい。
垢版 |
2023/08/12(土) 00:09:18.32ID:O1uhjaQy0
>>360
あなたが神か……ありがとうございます
GetKeyStateでうまく動かない所はこれでなんとかなりそうです(・∀・)
2023/08/12(土) 00:12:17.13ID:bDvu5aai0
タブキーを押しながら C キーを押したのを
4に割り当てるにはどのように書けばいいんでしょうか?
2023/08/12(土) 00:16:11.70ID:yq4dIsr+0
普通に入力されるキーをモディファイアにするんじゃない
2023/08/12(土) 06:13:36.00ID:nmj8+2WF0
"A"で指定してるのに
Error: Target window not found.
になるのは何なんだろう
2023/08/12(土) 11:15:30.71ID:pQJSgS+a0
A じゃなく "A" で指定してるからじゃね?
実際のスクリプト見てないから分からんけど
2023/08/12(土) 11:32:35.55ID:nmj8+2WF0
"A"で合ってる
大半は動いて特定のウィンドウだけエラーになる
2023/08/12(土) 11:48:12.98ID:LsOfcGj10
だから"を抜けという話なの
2023/08/12(土) 11:57:58.01ID:ZMeXwxNY0
よかれと思って分かりやすい表記をするのはコード実行において難しい問題よね

若い頃コマンドラインの-- <set numbers>の<>を入れなくていいの解らず一日溶かしたことある
2023/08/12(土) 12:07:58.71ID:nmj8+2WF0
"を抜くと
Warning: This variable appears to never be assigned a value.
そもそも実行できない
2023/08/12(土) 12:10:30.17ID:D5LFJTyY0
具体的に書かない奴はスルー
2023/08/12(土) 13:07:33.77ID:nmj8+2WF0
要は、アクティブウィンドウが無い、という状態になっている
そんなことはあるのか?
2023/08/12(土) 16:33:19.42ID:srAYYviQ0
Release v2.0.5 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.5
2023/08/13(日) 10:31:50.59ID:dS54wA3a0
https://www.autohotkey.com からv1.1落とそうとするとボタンが [Download v1.1 (deprecated)]となってるな、初めて気づいた
https://www.autohotkey.com/download/ の方は特に変わった様子無いけどv1.1はもう打ち止めってことかなあ(´・ω・`)
2023/08/13(日) 23:17:51.19ID:wbZBZ9Ux0
アナウンスされてから半年以上たつ気がするけど
2023/08/15(火) 09:46:17.85ID:RO47lguz0
メニューを開いた瞬間に何故かフォーカスが外れて操作できないことがたまにあるけど、
何が原因なんだろう
2023/08/16(水) 03:18:07.49ID:L2eBlJqO0
>>371
ループで状態を取得しつづけていると、
たまにそのようなアクティブウィンドウがないかのような状態になることはありますね…
2.0にして気がついたんだけど、多分1.1の時はエラーにはならずに適当に済ませられていたのが、
厳密にエラーをスローするようになったという感じな気がする

そして"A"とAの違いは2.0と1.1の違いではないですかね
2023/08/16(水) 06:23:05.41ID:B5Recerj0
"A"を参照する前にメニューを出しているので、メニューが閉じてから直前にアクティブだったウィンドウが
再びアクティブに戻るまでに一瞬の間がある
参照する前に一瞬sleepを入れるとエラーにならなくなった
2023/08/18(金) 11:43:00.99ID:oTZ9q3EL0
メニューを2つ作っていて、片方は頻繁にフォーカスが外れるけど、もうひとつは外れたことがない
やってることは大差ないのに何が違うんだろう
2023/08/18(金) 12:04:12.80ID:Q7ZhVJTA0
いいかげん独り言は余所でやれ
2023/08/18(金) 12:14:34.24ID:6chi+Qaa0
頑なにスクリプトを見せるの拒む限り自己解決するしかないだろうな
2023/08/18(金) 12:19:24.68ID:6chi+Qaa0
んんーなんかこのスレというか5ch重いような…書き込みボタン押してからページ反映まで5,6秒ほど掛かるう、オマ環かなあ(´・ω・`)
独り言スマン
2023/08/18(金) 12:21:11.45ID:6chi+Qaa0
>>381
x5,6秒
○15 6秒
2023/08/18(金) 13:29:28.79ID:MXhu+9P00
>>381
今日遅いね
2023/08/18(金) 13:41:02.30ID:oTZ9q3EL0
コードさえ見れば解決できるという自身はどこから出てくるんだ
解決できずに別スクリプトを起動してマウスでクリックしてフォーカスを戻してる人もいるくらいで、
多分今も直ってないahkのバグなんだろう
知りたいのは回避方法ではなく原因
2023/08/18(金) 13:51:37.99ID:yGxZYDcS0
5chは攻撃受けてるから重い
2023/08/18(金) 13:54:35.13ID:yGxZYDcS0
>>384
コード見ずに判断付くはずねーだろ
コードは間違ってないって自信こそどこから来るのか
自分でコード見て自分で考えるならここじゃなく、xなりnoteなりnationなりで好きにやってくれ
2023/08/18(金) 14:02:47.28ID:oTZ9q3EL0
ああ、menuね、あれはどうやっても駄目だったよ、とか、
こういう上手い方法があったよとか、知見のある人が反応すればいいんだよ
何も情報を持ってないのにとにかく何か回答しなければという質問スレによく巣食ってる癌は、
S/N比下げるだけなのでミュートしてて欲しい
2023/08/18(金) 15:13:36.08ID:HkO0/SET0
>>387
そういうことやりたいなら5chは向かないから余所でやれってそんなに難しい話か?
ミュートしてて欲しいならコテハン付けてくれ
2023/08/18(金) 15:36:46.27ID:Z7SU+ZYe0
>>378を見る限り、二つとも自分で書いているのに、原因となる
それらの差分を読み取れないってどういうことなのかと
今流行りのAIにお願いで作ったのか?
2023/08/19(土) 19:26:49.91ID:37zB30Y00
winキーとか何かが押しっぱなしになって、押して離してをやっても直らなくて、
一旦ahkを終了して再度立ち上げないとどうしようもない、というケースにたまに遭遇する
その手続き自体をahkからやれないもんか
2023/08/19(土) 19:52:39.80ID:PhJHVGEu0
監視させるしかないんじゃないの
down状態が5秒続いたら、強制的にupにするとか
それが利かないくらいバグってたら、スクリプト再起動に移行するとか
明らかにdown状態なのに、up返しちゃうくらいおかしいなら
別のアプローチが必要だけど
2023/08/19(土) 20:03:51.32ID:k3nzvT+I0
>>390
この過去スレにあったやつ(だったかどうかは忘れた)

Alt・Ctrl・Shiftキー押されっぱなし対処.ahk
Send, {Alt Up}{LAlt Up}{RAlt Up}{Ctrl Up}{LCtrl Up}{RCtrl Up}{Shift Up}{LShift Up}{RShift Up}{LWin Up}{RWin Up}{LButton Up}{RButton Up}{MButton Up}
Send, {ESC}

変だなぁと思ったら実行
オレはいつもこれで直してる、常駐してるahkは終了しなくても良いと思うよ
2023/08/19(土) 20:09:59.50ID:37zB30Y00
ESCは何で押すの?
2023/08/19(土) 20:23:47.88ID:37zB30Y00
{RButton Up}が入ってると、右クリックが押されちゃうな
2023/08/20(日) 00:05:33.73ID:uFCBx9Pl0
reboot
2023/08/20(日) 07:46:57.56ID:+NO2vz+70
>>390
その辺のキーが押しっぱになる現象って、CapsLock を Ctrl と入れ替えを
やってるとか?AHK はもちろん PowerToys でやっても起こる(多分、他の
リマップ系でも)。

それならこれがおすすめ。今のところ押しっぱ現象も他の妙な副作用もない。
※ただしキーボードから CapsLock の機能がなくなるw
Ctrl2cap - Sysinternals | Microsoft Learn
https://learn.microsoft.com/ja-jp/sysinternals/downloads/ctrl2cap
2023/08/21(月) 06:52:36.46ID:ynMBgfwj0
おお、MS純正デバイスドライバなんだ
Capsはモディファイアに変更してるけど、定番のChangeKeyでレジストリを変えてる
押しっぱなし現象はみんなフック同士の干渉が原因だと思っていて、根本的には避けられない
デバイスドライバ版ahkみたいなのがシェアウェアで出たら買うのに
現状そういうのはのどか一択で、書きやすさはahk v2が勝ってる
2023/08/26(土) 13:40:30.41ID:e6Z469D70
Sticky Keys対策でShiftやCtrlを押し終わるたびにShiftを5回空打ちさせてる
2023/08/29(火) 15:17:03.33ID:Jbveauwv0
右下ろのキーを押した時_にしたくて
¥::
send,+¥
return
としたのですが変わらず¥で出ます
¥::+¥
としても変わらず
簡単な事だと思うのですが、何故出来ないのかヒント頂けないでしょうか?
よろしくお願いします
2023/08/29(火) 15:18:53.87ID:Jbveauwv0
あ、V1です
401399
垢版 |
2023/08/29(火) 15:31:39.18ID:Jbveauwv0
すみません、検索で例を色々見てたら丁度見付かりました
vkE2::_
で出来る様になりました
スレ汚し失礼しました
2023/08/29(火) 15:32:11.68ID:X8K0rgTu0
\は右上のキーだからろの方はキーコードで指定しないとダメ

sc073::_
403399
垢版 |
2023/08/29(火) 16:52:46.65ID:Jbveauwv0
>>402
そうなんですね
良かったです、教えて頂きどうもありがとうございました
2023/08/30(水) 17:19:47.77ID:Ryl/SOdu0
Release v2.0.6 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.6
2023/08/30(水) 18:11:41.37ID:oxpZC/QU0
v2.0.6
2023/08/31(木) 22:40:51.14ID:vlAyug6p0
yキーを押してもSend, abcが送信されません。
何が駄目なんでしょうか。
Send, abcの処理はsub.ahk側でしたいです。

;main.ahk------------------
global test

y::
Sleep, 1000
test := "yes"
Sleep, 1000
Return


;sub.ahk------------------
#Persistent
#Include main.ahk

SetTimer, mitukeru, 100

mitukeru:
if (test = "yes") {
Send, abc
}
Return
2023/09/01(金) 02:23:36.87ID:6AcEfkHF0
y::
を見てみなよ
処理内容は、ただ代入しているだけだ
次にSetTimerでサブルーチンに飛ばさないと
ただこのタイマーいつ終わるの?
終了処理が何もないようだけど
2023/09/01(金) 07:19:25.96ID:qhzzshke0
会社のノートPCにmenuキーが無いのが不便すぎる
フリーソフトとか禁止なので、regeditだけで解決したった
2023/09/01(金) 07:37:42.70ID:dbcMt4Cv0
>>408
スレ違い
2023/09/01(金) 12:03:41.12ID:fxBmgcCa0
>>407
ありがとうございます。
まだ理解できてませんが教えてくださった通りやったらできました!
2023/09/01(金) 12:08:50.00ID:fxBmgcCa0
すみません。まだ出来てないかもです。
がんばってみます。
2023/09/01(金) 12:12:26.82ID:qhzzshke0
っていうか、複数のahk間でプロセス間通信しようとしてるんでしょ
そんなの無理だよ
2023/09/01(金) 12:33:22.63ID:YJ2o2ktm0
幾つか突っ込みどころあるが、とりあえず #Include行の位置が悪いな
まあ、#Include行の位置を直しただけじゃまともに動かん…と言うか変数「test」をクリアする行を加えないと暴走するよ
2023/09/01(金) 12:39:44.02ID:fxBmgcCa0
>>412
はい。FindTextの処理が重いのでマルチスレッドを実現したかです。
この方法では不可能なんですか?
clipboardやFileReadでやるしかないですかね。
2023/09/01(金) 12:43:11.43ID:fxBmgcCa0
>>413
ありがとうございます。
ごちゃると見にくいと思ったので、暴走は完成してからにしようと思ってました 笑。
2023/09/01(金) 12:44:19.26ID:6AcEfkHF0
sub.ahkってのをライブラリとして使ってるんじゃないの?
includeが逆でなんだかなあって感じだけど
本来は関数化した方が遥かに融通性が高いんだけど
まあ学習の順序があるから
2023/09/01(金) 12:57:45.45ID:qhzzshke0
includeするならプロセスは1つだけど
両方動かすんじゃないの?
2023/09/01(金) 19:29:28.33ID:aCFUmNnL0
v2で
a := 1
b := &a
%b% := 2
と同じように
tmp := {a:1}
b := &tmp.a
%b% := 2
でbにtmp.aのVarRefがほしいんだけど&tmp.aでエラーが出ちゃう
これどうやったらいいの?
2023/09/01(金) 20:46:26.25ID:0/jYgXFo0
>>418
直接にはできない。

関数 - 定義と使用法|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/Functions.htm#ByRef
2023/09/01(金) 21:17:49.17ID:aCFUmNnL0
>>419
仕様でできなかったんですね
オブジェクトの方を持ち歩くようにします
ありがとうございました
> 既知の制限事項:
> オブジェクトのプロパティ(foo.barなど)やA_Clipboardなどの 組み込み変数に対してVarRefを構成することはできないので、これらをByRefで渡すことはできない。
2023/09/02(土) 17:26:28.26ID:xDVNYmLx0
何か V2.0.4/2.0.6 でエンバグしてるんやって。
スクリプトが動かんようになったって人はアップデートしてみるのも手。

Release v2.0.7 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.7
2023/09/02(土) 18:33:36.19ID:X8oxdeT80
v2.0.7
2023/09/03(日) 14:39:01.92ID:dL6VhtA+0
ヒアドキュメントの仕様が変わってわけわからん

ver.1の頃は
MsgBox, % "
(
 さて、
 あなたのバージョンは 「" A_AhkVersion "」ですわね。
 オホホ
)"

でよかったのがver.2になってから

MsgBox("
(
さて、
あなたのバージョンは「
)"A_AhkVersion "
(
」ですわね。
オホホ
)")

とかしないといけなくなって可読性がー
2023/09/03(日) 15:01:38.43ID:8zusJ6RA0
理解しているのにわけわからん
とは、どういうことなのか?
長文の文字列は変数に格納するのが通例なんで
関数化されたmsgboxに直接使わなければいいんじゃね
2023/09/03(日) 15:20:17.21ID:0KBNlEKj0
v2 仕様やとこんな感じやろ(場合よって「"」の位置に気を使う必要がある)。

MsgBox "
(
Here Document,
HERE!!!
)"
2023/09/03(日) 15:31:18.57ID:Xi/Z1aW+0
改行が意味持ってたり、括弧無しでもokだったり、未だに古臭い
v3に期待
2023/09/03(日) 15:39:07.37ID:0KBNlEKj0
変数絡みやとちょっと面倒くさいことになるかな?
%VarRef% なパターンやと埋め込めるみたいやけど。

MsgBox "
(
AutoHotkey version is`s
)" A_AhkVersion "
(
.
Here Document,
HERE!!!
)"
2023/09/03(日) 16:01:47.82ID:0KBNlEKj0
ああ、v2 やと %VarRef% も埋め込まれへんみたい。
2023/09/03(日) 16:48:50.59ID:dL6VhtA+0
いやMsgBoxとの取り合わせが悪いとかじゃなくて
式を埋め込めなくなってるのが個人的に致命傷
%VarRef%もだめだしさ

あとオプション周りの挙動がだいぶ変わったように見えて混乱中
2023/09/03(日) 17:16:51.07ID:dL6VhtA+0
ヒアドキュメントに式を埋め込めて、実際に表示されるメッセージを想像しやすいのがよかったのに…
できるっぽい説明あったけど、実際の書き方がまるで理解できなかったし、いま読み返すと全然別の説明っぽい

> If ( or ) appears in the options of a potential continuation section (other than as part of the Join option), the overall line is not interpreted as the start of a continuation section. In other words, lines like (x.y)() and (x=y) && z() are interpreted as expressions. A multi-line expression can also begin with an open-parenthesis at the start of a line, provided that there is at least one other ( or ) on the first physical line. For example, the entire expression could be enclosed with (( ... )).

> ( or ): If an opening or closing parenthesis appears to the right of the initial opening parenthesis (except as a parameter of the Join option), the line is reinterpreted as an expression instead of the beginning of a continuation section. This enables expressions like (x.y)[z]() to be used at the start of a line, and also allows multi-line expressions to start with a line like (( or (MyFunc(.

そしてこういうのに限ってサンプルがない。詰んだ。寝る
2023/09/03(日) 18:24:58.98ID:lC0PTvot0
>>423
Format関数使えば多少見やすくなるかも

MsgBox(Format("
(
さて、
あなたのバージョンは「{1}」ですわね。
オホホ、{2}年ですわ。
)", A_AhkVersion, A_YYYY))
2023/09/03(日) 18:46:21.42ID:Xi/Z1aW+0
pythonでf文字列の実装が妙に遅かったのと同様に、
なんか埋め込むのを嫌う風習があるんだよな
便利なのはperlとかでとっくに判ってたのに
2023/09/03(日) 21:59:50.39ID:PW2pKi2Q0
2系の押しっぱ病はいつになったら治るんだ…
2023/09/03(日) 22:09:25.95ID:0KBNlEKj0
>>433
>>396 な話じゃなくて?
2023/09/03(日) 22:14:39.29ID:Xi/Z1aW+0
なんでもないビュアーがすごい行儀悪くキーをフックしてるみたいで、
それを起動した状態で他のソフトを使うと高確率で押しっぱなしになる

開いたまま他のことをしない、しか回避方法が無い
2023/09/03(日) 22:38:34.74ID:8zusJ6RA0
そういうアプリはどんどん名前出していこうぜ
情報共有してこその掲示板なわけだし
2023/09/04(月) 12:28:15.52ID:K09FILDQ0
epubビュアーのKinoppyだけどね
ahkからKinoppyを何か制御するでもなく、ただいるだけでいろいろおかしくなる
2023/09/04(月) 21:28:18.16ID:dQWiiGqe0
>>437 解決の参考にならんかもだが、Kinoppyをインストールして俺環で常駐しているMyScriptに下記のホットキーを追加し
メインアプリとビューアー起動した状態で他のアプリ色々起動したり、しばらく別のことやってたけど特に問題は発生しなかった

問題になりそうな点をあげるとclass名が独特でGUID部分が起動毎に変わるのと
ビューアーの方はExplorer等と同様にahk_exeではhwndが取得できなかったくらい
なのでこれらを含めたウィンドウ指定を直接じゃなくてもGroupやExcludeTitleなんかで行っているとおかしくなる
そうでないなら残念ながらおま環の可能性が高い

; 俺環での関係ありそうな設定
SetTitleMatchMode("RegEx")
InstallKeybdHook()
InstallMouseHook()
A_MenuMaskKey := "vkFF"
return

; メインアプリ
; Kinoppy for Windows
; ahk_class HwndWrapper[Kinoppy.exe;;feff14f8-8819-45a6-9cc5-5edbb2951528]
; ahk_exe Kinoppy.exe
#HotIf WinActive("Kinoppy for Windows ahk_class HwndWrapper\[Kinoppy.exe;; ahk_exe Kinoppy.exe")
XButton1:: MsgBox(WinGetTitle("A"))
LCtrl:: MsgBox(WinGetTitle("A"))
#HotIf

; ビューアー 本は最初から付いてた奴
; [1/160] scripta 18号(2011年冬号、紀伊國屋書店
; ahk_class HwndWrapper[Viewer20.exe;;5f512ab6-52a1-4bc8-8445-abdb7c67f500]
; ahk_exe Viewer20.exe
#HotIf WinActive("ahk_class HwndWrapper\[Viewer20.exe;;")
XButton1:: MsgBox(WinGetTitle("A"))
LCtrl:: MsgBox(WinGetTitle("A"))
#HotIf
2023/09/05(火) 23:11:23.66ID:uAjrKV030
質問なのですが ctrl+マウス左クリック で 左クリック を送りたいのですが

^lbutton::
mouseclick,left, , , , 0
return

と書いても左クリック単発ではなくctrl+左クリックになってしまいます
どのように書けばいいですか?
2023/09/05(火) 23:27:03.44ID:fMQvsfZE0
Send,{LButton}
2023/09/05(火) 23:29:11.87ID:08fzEwC60
>>439
MouseClick - Syntax & Usage | AutoHotkey
https://www.autohotkey.com/docs/v1/lib/MouseClick.htm
2023/09/05(火) 23:50:46.44ID:uAjrKV030
>>440, 441
ありがとうございます
試したところそのスクリプトでだいたいは上手くいくのですが10回に1回ぐらいはctrl+左クリックになります

具体的にはブラウザのリンクをこのスクリプトをオンにしてctrl+左クリックするとだいたいは元のタブで開くのですが
10回に1回くらいは別タブで開いてしまいます(左クリックだと元タブでリンクが開き、ctrl+左クリックだと別タブで開く)。

これを防止するためにも ^lbutton:: の開始から終了までは強制的にctrlを押していない状態に出来ないでしょうか?
2023/09/05(火) 23:57:06.56ID:U/8+P8mP0
クリックする前に
Send {Ctrl Up}
でも書いておけば?
うまくいくかは知らんけど
2023/09/06(水) 00:04:12.54ID:9rLt8Dwp0
>>443
試したけどだめでした

https://keyboard-test.space/jp/

このサイトでキーの入力状態見てたら Send {Ctrl Up} の瞬間だけ ctrlの入力がオフになっても
次の瞬間またctrlが押された状態になるのでスクリプトが終わるまでずっと {Ctrl Up} の状態を保たないとだめそう
2023/09/06(水) 00:11:36.92ID:GGW0aUGl0
すごいサイトだな
ahkにも似たような機能あるけど
2023/09/06(水) 07:15:27.62ID:Yei4EXvP0
Getkeystateってマウスもいけたっけ?
いけるなら物理的に離されてからup打つとか
2023/09/06(水) 07:53:03.76ID:sYM0CPD00
>>442
Remarks に書いてあることまでちゃんと読んだ?
Remarks
This command uses the sending method set by SendMode.
The Click command is recommended over MouseClick because:
 1. It automatically compensates when the left and right mouse buttons are
swapped via the control panel.
 2. It is generally easier to use.
To perform a shift-click or control-click, use the Send command before and
after the operation as shown in these examples:



The SendPlay mode is able to successfully generate mouse events
in a broader variety of games than the other modes. In addition,
some applications and games may have trouble tracking the mouse
if it moves too quickly. The speed parameter or SetDefaultMouseSpeed
can be used to reduce the speed (in the default SendEvent mode only).

Some applications do not obey a ClickCount higher than 1 for the mouse wheel.
For them, use a Loop such as the following:



The BlockInput command can be used to prevent any physical mouse activity by the user from disrupting the simulated mouse events produced by the mouse commands. However, this is generally not needed
for the SendInput/Play modes because they automatically postpone
the user's physical mouse activity until afterward.

There is an automatic delay after every click-down and click-up of
the mouse (except for SendInput mode and for turning the mouse wheel).
Use SetMouseDelay to change the length of the delay.
448439
垢版 |
2023/09/06(水) 12:17:42.07ID:9rLt8Dwp0
以下で問題無く動くこと確認しました

^lbutton::
BlockInput, on
send, {click, left}
BlockInput, off
return

しかしBlockInput, onが管理者権限でないと機能しないので使用はためらっています
2023/09/06(水) 12:58:50.79ID:ltUQDciW0
>>448
ブラウザ何使ってるか知らんけど、chrome(chromium系)ならchromeのwebストアで「open link same tab」で検索するとやりたい系の拡張出てくるから拡張導入で実現すれば?
2023/09/06(水) 13:01:25.15ID:ltUQDciW0
>>449
あ、スマン ctrl+左クリックかー
>>449は取り消し
2023/09/06(水) 18:44:01.82ID:Yb6yqz+60
>>448
要はCtrlが物理的に押し下げられている間に発生するキーリピートを止めればいいので下記のような方法でもできるが
これだとKeyNameと同名の既存のホットキーがある場合上書きしてしまうため、既存のホットキーをOnにし直す必要がある
あと >>444 のサイトは物理キーと論理キーの区別がされてないのでこの様なケースではテストして使うには不適切だと思うぞ

^LButton::
Hotkey, LCtrl, disable_key, On
Hotkey, RCtrl, disable_key, On
Send, {LButton}
Hotkey, LCtrl, disable_key, Off
Hotkey, RCtrl, disable_key, Off
return

disable_key:
return
2023/09/06(水) 20:22:25.18ID:X26chPwY0
数日パソコンつけっぱにしたら暴走する事ってありますか?
昨日から入力で文字出なかったり重く感じて来たと思ったら今日「っっっっっっっっ」以上の連打状態になったり日本語オンオフが連打状態になったりして、文字入力関係で何かあるとすればこれだけかなって
パソコン再起動で直ったんですがおま環でしょうか?
それか何か記述がおかしくて影響する事とか
ただ今まで問題無くここ数日で追記した事もありません
Win11
V1
2023/09/06(水) 20:25:31.25ID:lmw46YqV0
ただのahkあるある
2023/09/06(水) 21:25:42.58ID:uFzGHYTO0
>>452
そういう時はPC再起動の前にIMEの再起動だね
ググればバッチ書いてるのがすぐ出てくると思う
原因は1回だけでは何とも…
2023/09/06(水) 22:09:08.69ID:9rLt8Dwp0
>>451
ありがとうございます

試すとそのスクリプトを単独の.ahkファイルに書くと問題なく動作するのですが
自分が普段使ってる他にも長々と別のスクリプトが書いてある.ahkファイルの中に書くと
5回に1回ぐらい失敗(ctrl+左クリックが送られる)します

何かの処理が間に合わずに物理ctrlキーが割り込んできているのかと思い以下のようにsleepを挿入しても同じように失敗します

^LButton::
Hotkey, LCtrl, disable_key, On ;LCtrl::return と同じ
Hotkey, RCtrl, disable_key, On
sleep, 500
Send, {LButton}
sleep, 500
Hotkey, LCtrl, disable_key, Off ;上で定義したLCtrlのホットキーを削除
Hotkey, RCtrl, disable_key, Off
sleep, 500
return
disable_key:
return

何でctrlが割り込んで来ちゃうんですかね?
2023/09/06(水) 23:02:51.49ID:Yb6yqz+60
>>455
そうなるとコード全体を見てみないと分からんが
全コード晒すのもそれを解析するのも現実的でないのでとりあえず適当に思い当たるのを挙げとくと
・同条件でトリガーされるホットキーで他に干渉しているものがないかチェックして、あればHotkeyで無効にする
・SetKeyDelay 及び SetMouseDelay を変更しているなら戻す
・SendInput もしくは SendPlay を使用する
・Send, {LButton} の前に Send, {Blind}{LCtrl Up}{RCtrl Up} を入れ明示的に押し上げる
・Hotkey, LCtrl, disable_key, On P100 のように優先度を上げる
・#UseHook を使う
・ホットキーやスレッド周りの設定で極端な設定をしているものがあれば戻す
とまあ基本手当たり次第かな、がんばって
2023/09/08(金) 00:16:48.01ID:suMaKzxk0
質問させてください
AHKでWin10のBluetoothをオン/オフ切り替えるコマンドってありませんか?
■ このスレッドは過去ログ倉庫に格納されています
大学生アイラと影の怪物と戦うリョウが、深夜3時3分の静止した世界で交錯する超常スリラーの概要

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