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/09/08(金) 07:45:00.03ID:GbWsAhNI0
>>457
AHK にはないやろ。

autohotkey bluetooth on off - Google 検索
https://www.google.com/search?q=autohotkey+bluetooth+on+off
2023/09/08(金) 08:55:55.00ID:+ULrgBan0
runがあるんだからahkだけで何でもできる
2023/09/08(金) 09:32:53.12ID:GbWsAhNI0
>>459
>>458 の上位にヒットするエントリの中にその辺りの tips もある。
2023/09/08(金) 09:38:25.14ID:MNBExYpU0
runしないといけないってことはahkで出来ないことじゃね?
2023/09/08(金) 09:58:48.37ID:YMO30/bT0
ただの言葉遊びだが、>>457の質問の仕方もちょっとあれだな
恐らくAHK経由で制御できるかを知りたいんだろうが
コマンドと書いてしまっているから、存在しないので、「ない」
という答えが返ってくるはめになる
制御スイッチとしてのスクリプトを書けるかといえば書ける
2023/09/08(金) 13:21:18.66ID:suMaKzxk0
>>462
質問の仕方が悪くて失礼しました
「AHK経由で制御する方法」を知りたかったです

>>458 >>460
参考にさせて貰います
ありがとうございました
2023/09/08(金) 17:58:23.82ID:+ULrgBan0
::の後{の前に改行がいるルールは、何の役に立ってるの?
続けて書いても誤解は無いと思うけど
2023/09/08(金) 18:43:25.14ID:i4UroxiT0
v2の話?
v2ならホットキーは関数だから、そういう書式ルールなんでとしか
ただOTBも許容しているから、別に前でなくてもいいよね

F1::{
Run "Explorer"
}
2023/09/08(金) 18:52:15.25ID:gx8PwsTd0
>>464
パーサの役に立ってるよ
2023/09/08(金) 21:28:52.01ID:GbWsAhNI0
>>464
ちゅうかさ、AHK v2 にそんな「ルール」はないやろ。

「行末の{」に対して、オブジェクト or OTB の判定が入るだけで。

Scripts - Definition & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/Scripts.htm#continuation-expr
2023/09/08(金) 21:38:01.87ID:+ULrgBan0
OTBで書けるケースが限定されている、というルールでしょ
そんなややこしいことにするメリットが判らん
2023/09/08(金) 22:05:34.06ID:zFwuV2d30
>>467
ところが行末でなくてもいいだな、これが

F1::
{ Soundbeep
Run "Explorer"
}
2023/09/08(金) 22:35:10.31ID:GbWsAhNI0
>>468
そもそも論としてホットキー等の記述として「XX:: ~」が原則になっているので
OTBとしての記述が限定されるというのは合理的やとと思うで。
「XX:: {」に対してどう判定する?
>>466でパーサーの都合と書かれているけれど、まさにその通りやと思うで。

>>469
>>467 のリンク先を読めばわかるが「行末の{」に対する判定、エラー吐きの
基準であって、「{は行末に限る」としているわけじゃない。
2023/09/08(金) 22:43:00.25ID:+ULrgBan0
全然判らん
何と何を誤解するという具体例とかあるの
2023/09/08(金) 22:55:06.64ID:zFwuV2d30
>>470
後から読んだんでしょ
正直に言いなさいw
2023/09/09(土) 08:49:36.22ID:pR8NjTB70
v1みたいに処理が一つなら省略できるんだから別にいいじゃん
スクリプトの改行で文句言う奴なんて初めて見たぜ
2023/09/09(土) 13:53:20.96ID:xOfvB+/e0
なんかよく分からないその人なりのこだわりがあるんだろ。
2023/09/09(土) 15:42:27.29ID:feDxAAkf0
何かの互換性の維持の為とかならまあ仕方ないけど、
そんなの関係なくて単に面倒くさいという理由で合理性が欠如してたら、
もうちょっと頑張れよと思うのは仕方ない
2023/09/09(土) 21:56:07.18ID:dR4zuzdz0
>>472
>>467を読んでも{が行末に限るって言ってるとは思わないけど、>>467ではそう主張してたでしょってこと?
2023/09/10(日) 15:58:51.93ID:ZkN65p7R0
AutoHotkeyって、ネーミング通りホットキーに操作を割り当てるだけの物かと思ってスルーしてたけど
調べたら色々出来るんだね

こんなことならUWSC(作者死亡、6年更新ない)に手を出さず、最初からAutoHotkeyにしとけば良かった。
2023/09/10(日) 16:09:06.76ID:oMtz/ggC0
今からでも遅くはありません
勇者よ、学ぶのです
2023/09/10(日) 16:11:04.10ID:ItMWkI4Z0
ImageSearchまだ使ったことないけど、使いこなすと可能性が広がりそうだな
2023/09/10(日) 16:24:59.90ID:oXJfo1RU0
>>477
pythonと組み合わせるのをおすすめする

UIはAHK、処理はpython
2023/09/10(日) 16:36:29.30ID:ApyovvyA0
Keyhac って Python だったよな
2023/09/10(日) 16:46:52.42ID:ItMWkI4Z0
のどかにラッパーを追加してpythonのモジュールみたいにできないかな
ぶっちゃけ、キーの入れ替え以外は全部pythonでできる
2023/09/10(日) 16:57:15.43ID:ItMWkI4Z0
ラッパーていうか、アプリそのものだな
のどかはデバイスドライバとそれを使う本体で構成されてるので、
APIを解析してのどか以外からデバイスドライバを使うことも可能
APIの全機能をカバーしただけの低レベルpythonモジュールをまずこさえて、
それを利用してahkのスクリプトを理解できる上位モジュールから呼び出す
2023/09/11(月) 11:00:53.01ID:ia7g+DFl0
>>481
keyhacは修飾キー周りの設定がめんどいのと更新止まってるから使ってないな
2023/09/11(月) 20:36:49.65ID:AdChF0Gh0
Release v2.0.8 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.8
486322
垢版 |
2023/09/11(月) 20:38:32.90ID:tG+HBWzg0
>>485
2.0移植するか…

数万行の移植… w
2023/09/11(月) 20:39:27.89ID:tG+HBWzg0
>>485
v1.0は
あんまり更新されないな…
2023/09/11(月) 20:51:26.09ID:H9PG0Vk20
メンテナンスだけなんだから
そりゃ当然だわ
2023/09/11(月) 21:17:56.44ID:AdChF0Gh0
公式のダウンロードページでも「Download v1.1 (deprecated)」になってるしな。
セキュリティ絡みかよっぽどなバグでもない限りアップデートはないやろ。
2023/09/11(月) 21:27:50.78ID:tG+HBWzg0
>>480
Pythonと組むって、
具体的に何やるの?

Pythonを使う意図は?
2023/09/11(月) 21:28:32.59ID:tG+HBWzg0
>>490
Pythonは
AI作ってるとこだわ…
492名無しさん@お腹いっぱい。
垢版 |
2023/09/12(火) 02:41:12.62ID:ZxfrDDhW0
漠然とした質問ですがAHKって何に使ってますか?
自分はpython書くくらいしかPCで作業しないので
Pythonであまり使わない@に()を割り当てたり
=と""を打ちやすくしたりしてみたのですが
他に割り当てるほどのことが何も思いつきません

何でもできるツールなので、使い方がわかってないだけだと思うのですが……
切り取り貼り付けなどのショートカットをワンプッシュでできるようにしてみたのですが元々Ctrl+C、Vとかはかなり押しやすい配置なのであまり便利になりませんでした

皆さんが複雑な作業でホットキー設定して便利だと感じているものって何かありますか?
2023/09/12(火) 03:06:37.00ID:TCPOB/1O0
>>492
文書を保存したときに、
.ahk なら再読み込み
.html ならブラウザで表示
セットで操作するショートカットをまとめておく
2023/09/12(火) 04:30:06.97ID:48RxhFtI0
>>492
JISキーボードをUS104ドライバで動作でANSI配列化してるけど、
USには無い5キー(無変換、変換、かな、\、\)は、AHKの「SC::VK」でキードライバ代替させてる
2023/09/12(火) 07:42:20.39ID:Nluft5rv0
mayu -> yamy -> ahk と流れてきて、設定を連綿と引き継いでいる
最初にやりたかったのは、ダイヤモンドカーソル
CapsLock+esdxがカーソルキーになる

他にも極力ホームポジションから動かなくていいように、ファンクションキーとか、
かな入力の一部を別のキーに追加

あとは特定アプリ限定で、マウスでしか操作出来ない機能にキーアサインを追加
2023/09/12(火) 08:32:49.30ID:GBoxE6db0
関数ライブラリ廃止がクソすぎる やってられん
2023/09/12(火) 11:28:42.32ID:qk3wwP0M0
>>492
IMEオンオフ切り替えを含め、遠いキーをなるべく手元に
アクティブウィンドウ枠をIMEオンオフに応じて色付け
再変換:半角文字列を未確定全角に‖未確定全角文字列を確定英数字に
アクティブタイトルバーに暗記したい英単語を順次表示
発音記号、欧文文字ダイレクト入力
アプリ一発起動
各種メディアプレーヤーのホットキーを統一
ClipboardHisoryをAHK版にして、カスタマイズ

自分のスクリプトを点検したら、こんな感じでした。
2023/09/12(火) 11:49:46.07ID:UAm/ijNJ0
>>496
人のコードを使ったりするときに意図せず読み込まれて名前空間が、って開発の気持ちもわかるけど
自分で管理できる分には気楽に使えてAHKをカスタマイズしてる感もあったもんね
2023/09/12(火) 12:43:04.65ID:uIyr4Ei90
別に新規作成のテンプレに必ず使うライブラリ書くとかしておけば
良いだけでしょ
大げさに騒ぎすぎ
2023/09/12(火) 13:14:01.88ID:Nluft5rv0
使ったことないけど、includeするのとは違う名前の管理してくれるの?
2023/09/12(火) 13:56:53.17ID:0mkXggI90
>>492
こういうの読んで参考にしてみては?
https://qiita.com/ryoheiszk/items/092cc5d76838cb5a13f1
2023/09/12(火) 21:03:09.06ID:V/2CrKsZ0
>>496
わかりみしかない

>>492
日時・曜日・年号、記号、使い捨てパスワード生成、ウィンドウ切替、ランチャ、ショートカットのリマップ
2023/09/12(火) 22:19:12.36ID:48RxhFtI0
>>492
左手側に置いたテンキーパッドをAHKでリマップして
マウスボタン、チルト&ホイール、ポインタ1pix移動、矢印Page系キー。
右手のマウス本体ボタンは殆ど使わなくなった
2023/09/13(水) 15:48:09.66ID:m4N6UCY60
>>392
>>395
なんか笑った

再起動を避けるメリットって具体的に何ですか?
2023/09/13(水) 17:24:56.06ID:5W893Rfo0
>>503
おもしろいね

ドラッグドロップできるの?
2023/09/13(水) 17:30:46.12ID:Wgwsv5oV0
そもそもブラウザ以外でマウスを使わない
2023/09/13(水) 17:46:36.73ID:el7ZvXLi0
シェルもCUIかよ
男らしいなw
2023/09/13(水) 21:54:54.11ID:Ep4twdpZ0
>>505
出来るよ。キーリピート防いで、長押保持
NumPad◆::
Click,Left,D
KeyWait,NumPad◆ ;リピート連打防止長押保持
Click,Left,U
Return

それとドラッグ用に、クリックON/OFFトグルも
NumPad▼::
Click,Left,D
Sleep 200 ;×無いと即OFF誤動作
KeyWait,NumPad▼,D ;押込検知
Click,Left,U
Return
2023/09/14(木) 08:58:24.57ID:yiUXLhWC0
a::
Click,L,D
KeyWait,%A_ThisHotKey%
Click,L,U
Return

これ系のホットキー、自前ウィンドウ(GUIやListLines)のタイトルバーに対して押すと
クリックされっぱなしになっちゃうんだけどおま環?
2023/09/14(木) 11:25:43.09ID:KPv1xtwM0
かきこめるのかな
511名無しさん@お腹いっぱい。
垢版 |
2023/09/14(木) 11:38:55.24ID:KPv1xtwM0
https:〜〜=99 というある99番目のページurl があって
StringTrimLeftとStringTrimrightで、https:〜〜= までと 99 に切り分けて
99を数値処理して、再結合して98番目をひらき、97番目をひらき・・・を繰り返したいんですが
https://ahkwiki.net/-Concat で結合すると*の箇所でlist_numが数値ではなく文字列になってしまい実現できません
どうやって解決できるでしょうか?

StringGetPos, OutputVar, url_list,=, R1 ,
StringTrimLeft,list_num,url_list,OutputVar+1
StringTrimRight,url_list,url_list,StrLen(list_num)

Loop,5
{
Sleep,1000
list_url := url_list list_num *
Run,%list_url%
list_num =list_num-1
2023/09/14(木) 11:47:07.84ID:KJr2fbsG0
どこにキー入力の要素が
2023/09/14(木) 12:05:09.94ID:qDtiR+3o0
>>509
まずそのコードだけのスクリプト作って動かしてみればいい
それで正常に動作するなら既存スクリプトのコードの問題、そうでなければおま環

>>511
そのコードの一番下の代入が=になってるからでしょ
2023/09/14(木) 12:17:00.09ID:KPv1xtwM0
>>513
凡ミスでしたありがとうございます。
2023/09/14(木) 12:27:01.77ID:KJr2fbsG0
=と==を大文字小文字の区別の為だけに使い分けて、
そのせいで代入を:=にするのはどう考えてもデメリットが大きいので、
=は代入にしてしまった方がいい
2023/09/14(木) 13:11:14.76ID:yGaUQqIl0
>>508
ん?
これで、どうやってドラッグ&ドロップするの?
具体的に

マウスポインタを動かすのは?
2023/09/14(木) 17:42:45.40ID:DzQdSu6f0
>>516
>>503
右手マウス左手キーボードのスタイルでしょ
俺も腱鞘炎対策にクリック連打とかはキーボードに割り当ててる
2023/09/14(木) 19:58:28.52ID:dC0vICTI0
外部スクリプトよく呼び出すなら

ret := RunScript("
(
#!cmd
echo hello
)")
msgbox % ret ; ==> "hello"
なんてラッパー作っとくと楽だぞ
2023/09/14(木) 20:43:03.47ID:yiUXLhWC0
これほんとに俺だけ?>>509
これだけの記述でも100%再現する
----------------
ListLines

LButton::
Click, L, D
KeyWait, LButton
Click, L, U
Return
----------------
2023/09/14(木) 22:14:28.70ID:qDtiR+3o0
>>519
スマンかった。おま環じゃないなこれ
昼に軽く試したときはならなかったんだが、今やったら確実に再現するわ
むしろ昼にやった時ならなかったのが謎

KeyWaitの有無は関係なく、DownとUpを別々にした場合に発生する模様
タイトルバーを対象とした時のみDown後にUpが送られずスタックして
Escを押すか、タイトルバー以外の場所でLButton押下時にUpが送られてる
Send, {LButton Down} に変えても同様
なんでこうなるかは分からん
2023/09/14(木) 22:39:00.29ID:yiUXLhWC0
検証ども おま環じゃなくてよかった

ちなみにv2でも同じだった
2023/09/14(木) 22:43:30.80ID:/4keP4wt0
>>509
>>508では、それ発生したこと無いなあ
2023/09/15(金) 09:56:11.88ID:8lJJsAOr0
>>517
あー

マウス自体は動かすのか…
2023/09/17(日) 04:25:54.62ID:sHFSptxP0
質問よろしいでしょうか?
Spotifyにグローバルショートカットを送るスクリプトです
これだと最小化している時は反応しません どう修正すればよいでしょうか?

getSpotifyHwnd() {
WinGet, spotifyHwnd, ID, ahk_exe spotify.exe
Return spotifyHwnd
}
spotifyKey(key) {
spotifyHwnd := getSpotifyHwnd()
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%
Return
}

Pause::
{
spotifyKey("!+{B}")
Return
}
2023/09/17(日) 04:31:37.96ID:sHFSptxP0
もうひとつ質問がありまして

上記のスクリプトを改変し、コンパイルしたexeを呼び出した際にSpotifyに !+{B} を自動で送信
その後AHKのexe自体を終了させたいのです

何がしたいかと言うと、遠隔で該当exeを実行するコマンドを送る度に !+{B} をSpotifyに送りたいという事なのですが
可能でしょうか・・・ 宜しくお願い致します。
2023/09/17(日) 05:22:22.98ID:AK0a2owI0
Spotifyを使ってないので適当に書くけど、普通にアクティブにしてから
キー送信するのはダメなの?

getSpotifyHwnd() {
WinGet, spotifyHwnd, ID, ahk_exe spotify.exe
Return spotifyHwnd
}

spotifyKey(key) {
spotifyHwnd := getSpotifyHwnd()
WinActivate ahk_id %spotifyHwnd%
Send %key%
Return
}

spotifyKey("!+{B}")
ExitApp

あと、送信するキーはBじゃなくてbじゃないの?
2023/09/17(日) 05:30:12.82ID:sHFSptxP0
>>526
ありがとうございます!できました!

ええ、Bじゃなくてbですね・・・ ググって出てきたスクリプトを書き換えたダケなんで色々理解していません・・・
{ } で囲う意味も分かって無くて、動かなかったから囲ったら動いた ぐらいのスキルです汗
2023/09/17(日) 05:52:40.93ID:AK0a2owI0
一つ目の関数が冗長なので単純化した

spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinActivate ahk_id %spotifyHwnd%
Send %key%
Return
}

spotifyKey("!+{b}")
ExitApp

getSpotifyHwnd()は消していい
2023/09/17(日) 06:06:33.03ID:sHFSptxP0
ありがとうございますー 完璧ですわ・・・

あとコレ >>524 になんとか改良加えようとしてます
これだとフォアグラウンドでもバックグラウンドでも発動するんですが、spotifyを最小化してると無理なんですよね
毎回フォアグラウンドにアクティブ化されると邪魔なので最小化している時だけアクティブにしたいカンジですがなかなかムズく・・・

>>528は外にいる時に呼び出す用なのでこのままで使い勝手がいいです
2023/09/17(日) 06:38:43.23ID:AK0a2owI0
これで良いんじゃないの?

spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinGet winMM, MinMax, ahk_id %spotifyHwnd% ;ウィンドウの最大化最小化を調べる
if (winMM = -1) ;最小化しているなら
WinRestore ahk_id %spotifyHwnd% ;最小化を解除
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%
Return
}

spotifyKey("!+{b}")
ExitApp

WinRestoreで正しく送信されないなら、WinActivateに変更
2023/09/17(日) 07:35:15.03ID:sHFSptxP0
>>530
おはようございます。ありがとうございます!
でもすみません、>>528は一回実行したら終了する遠隔操作用で、>>524は常駐させるヤツなのでExitAppせずにPauseボタンに"!+{b}"を割り振っておきたいんですよね
ExitApp消したりpause組み込んで修正したんですがうまくいきませんでした 申し訳ないです!
2023/09/17(日) 07:42:33.32ID:sHFSptxP0
ああ、こうですね できました。
が、細かいことですがフォアグラウンドに来てる時だけはキー無効になってしまいますね なんでだろ

spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinGet winMM, MinMax, ahk_id %spotifyHwnd% ;ウィンドウの最大化最小化を調べる
if (winMM = -1) ;最小化しているなら
WinRestore ahk_id %spotifyHwnd% ;最小化を解除
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%
Return
}
Pause::
{
spotifyKey("!+{b}")
Return
}
2023/09/17(日) 07:57:47.81ID:AgjEWBqI0
タブの選択とか実行とかをマウスでしかできないソフトにショートカットキーを追加する
前は座標を測って押してたけど、画像認識に変更した
画像ファイルを引数に指定すると押してくれる関数化したのですっきり
押した後、元のマウスカーソルに戻すので、そのうちahkでやってることを忘れる
2023/09/17(日) 13:24:44.00ID:FD5+4qql0
>>518
いいなーv2はrunscript()なんてあるんだ
dllcallでattachしてとか地味に長い関数書いてた

Run, %exec_command% %arg%,, Hide, pid
WinWait, ahk_pid %pid%
DllCall("AttachConsole", "UInt", pid)
WshShell := ComObjCreate("Wscript.Shell")
exec := WshShell.Exec("%ComSpec% /u /c " . exec_command . " " . arg)
output := exec.StdOut.ReadAll()
DllCall("FreeConsole")
2023/09/17(日) 14:08:18.16ID:RotPmQmd0
Release v2.0.9 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.9

> Fixed stacking of hotstrings with the X option.
> Fixed debugger not listing local vars if the function is at the bottom of the stack.
> Fixed Gui threads to show on the debugger's call stack.
> Fixed some combinations of &/ByRef causing stack overflow in ExitApp.
2023/09/17(日) 14:14:03.80ID:MyPIJBxa0
当分fix祭り終わらなそうだな
2023/09/17(日) 14:21:57.49ID:AgjEWBqI0
さっさとpython化しようぜ
2023/09/17(日) 14:40:09.89ID:vOzAWoz00
>>537
pythonにする理由は何?

ahkでできないこと?
2023/09/17(日) 14:41:24.90ID:AgjEWBqI0
スクリプト再発明してオーバーフローしたー、とか困らなくていい
2023/09/17(日) 15:00:43.17ID:RotPmQmd0
>>534
いや、ないだろ。
2023/09/17(日) 15:05:55.08ID:vOzAWoz00
>>534
これで
何やるの?
2023/09/17(日) 15:09:11.40ID:AgjEWBqI0
ahkのコア部分だけpythonのモジュール化して、キーの置き換えとかいろんな処理はpythonで書く
世界中の人が寄ってたかって便利にすることができる
で、コアだけのどかと差し替えると、スクリプトそのままで安定性が向上する
2023/09/17(日) 15:16:12.59ID:vOzAWoz00
>>542
それを
AHKでやらない意味がよくわかんない…

具体的に
2023/09/17(日) 16:40:52.99ID:ejOMxxCZ0
宗教だから触らない
2023/09/17(日) 16:59:13.01ID:FD5+4qql0
>>540
ないんかいw
2023/09/17(日) 17:23:24.31ID:RotPmQmd0
あらへんねんw
Run/RunWait は普通にあるけど、んなもんあったっけ?と公式リファレンスで見たけどない。
多分、Unix系のスクリプト実行よろしく1行目を見て実際に走らせる shell なりを
変えられるものちゃうか?
2023/09/17(日) 18:11:00.58ID:vOzAWoz00
>>546
Runとやりたいことが違うの?
何が違うの?
2023/09/17(日) 18:55:52.94ID:RotPmQmd0
>>547
それをワシに聞かれても知らんがな。
2023/09/17(日) 21:20:13.01ID:6mVDQMFc0
v2はいつになったら押しっぱが解消されるんだろう…
2023/09/18(月) 00:44:41.37ID:MCvojQwt0
>>549
ちょっと前のレスでもkey upさせる手法出てたけど、処理に装飾キー含まれるときに全部のkeyをupする関数とか入れたら?

holdup_key() {
local keys = ["Ctrl", "Shift", "Alt", "LWin", "sc079", "sc07B"]
for key in keys {
SendInput, {key up}
}
}
2023/09/18(月) 02:13:47.11ID:jPhetF1l0
それローカルの宣言する意味あるの?
2023/09/18(月) 07:32:17.17ID:DiSScFBT0
sleep 1 を入れた方がいいっぽい
ループ処理がそれに代わってるかもしれないけど
2023/09/18(月) 07:39:40.16ID:G+And54K0
*XButton1::
{
while GetKeyState("XButton1", "P")
{
Send {Blind}{WheelDown}
Sleep 10
}
}

v1は正常に動く
v2だと稀にGetKeyStateの状態が更新されずに永久ループする
2023/09/18(月) 07:50:20.70ID:DiSScFBT0
確率の問題なんだろうな
アトムであって欲しい処理のスリットが、v1よりv2の方が広い
ダーティでなくなった分だけ脆弱になってしまうっていう

どこでフックの奪い合いが起きても本質的に問題ない
という作りになってないと、どうしても不安定になる
2023/09/18(月) 13:07:34.00ID:cSd5nxXI0
>>553
これはダメだな

治るのか?
2023/09/18(月) 22:46:50.69ID:oUaH/YqD0
>>553
俺の環境ではそんなこと起こったことないが、公式フォーラムのバグレポート(未解決)に似たような報告があるな
v2ではSendMode("Input")がデフォルトになったが、このモードがGetKeyStateに干渉しているのではないかと推測されている
とりあえずEventモードなら発現しないらしいので
Send("{Blind}{WheelDown}")の所をSendEventにするか、SendModeをEventにしてしばらく様子を見てみて
2023/09/21(木) 18:09:14.32ID:/qgZEuhq0
お世話になっております!また教えて頂けませんか?すみません・・・

NumLock::Run,calculator:

Numロックで電卓を起動したいんですが、「既に起動している場合は、そのプロセスをアクティブにする」にあったコレを追加した時の全体の記述がわからないです・・・
単純に追加しただけだと無限に開けてしまいます

Process,Exist,calculator: ;起動しているかどうかを調べる
If ErrorLevel <> 0 ;起動していた場合(ErrorLevel変数にプロセスIDが格納される)
WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする
Else ;起動していなかった場合
calculator: ;起動する
■ このスレッドは過去ログ倉庫に格納されています
大学生アイラと影の怪物と戦うリョウが、深夜3時3分の静止した世界で交錯する超常スリラーの概要

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