探検


AutoHotkey スレッド part29

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。
垢版 |
2021/05/12(水) 06:27:46.35ID:d0RqdHRN0
!extend:vvvvv:1000:512
!extend:vvvvv:1000:512
↑スレ立てする時は3行にして下さい

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

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

■日本語解説等
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

※テンプレここまで
VIPQ2_EXTDAT: default:default:1000:512:: EXT was configured
2021/11/07(日) 14:43:43.76ID:ukl3041V0
これすごい関数集。テンプレ化どうでしょう?
https://github.com/Ixiko/AHK-Rare
2021/11/10(水) 02:37:02.28ID:XA04+P+o0
クリップボードを使わずに、選択したテキストをSendするにはどうすればいいでしょうか?
2021/11/10(水) 12:21:23.58ID:+K+yKC8g0
無理
2021/11/11(木) 16:46:41.71ID:D1UCgsJI0
>>447
クリップボードを使うとしてもスクリプト実行直後(処理前)にクリップボードをバックアップしといて処理終了時に復元すれば良いと思うけどな
2021/11/11(木) 18:58:19.53ID:5liI+TA/0
XInputの入力を検出したいのですが
https://www.autohotkey.com/board/topic/35848-xinput-xbox-360-controller-api/
こちらのページにある XInput.ahk for AutoHotkey 1.1 を使えば出来るのでしょうか?
使い方がさっぱり分からないのですが

Joy1::
Send, z
Return

これをXInputのAボタンで行うにはどうすればいいのでしょう?
451450
垢版 |
2021/11/12(金) 22:19:17.20ID:MxdkahLq0
XBOX360コントローラーからXBOX ONE コントローラーに乗り換えたら
ahkでパッドのボタン入力を検出できなくなりました
最初はOneコントローラーがXInput専用でDirectInput出力されなくなったのかと思い>>450の質問をしたのですが
その後色々調べたところOneコントローラーもXInputとDirectInput両方出力されていることを確認しました
しかし何故かどうやってもAHKではOneコントローラーの入力を検知できず、
Joy1::
msgbox, GAMEPAD
Return
なども一切動きません
何が原因でしょうか?
またXBOX ONE コントローラーを使っていてAHKで検知できると言う方居ますか?

※コンパネ画面
https://i.imgur.com/BqEiRBV.jpg
2021/11/13(土) 01:13:04.89ID:v6ICOWJR0
JoyToKey
453451
垢版 |
2021/11/14(日) 14:24:55.17ID:EIIGuHrF0
検知できないのがおま環かどうかだけでも知りたかったけど、XBOX ONEコントローラー使ってる人いませんかね?
2021/11/14(日) 19:10:08.01ID:ZtzAi/yX0
Win10がアップデートで仕様が変わったらしく取得できなくなったらしいよ
xinput1_3.dll経由なら取得できるようだけど
https://www.autohotkey.com/board/topic/35848-xinput-xbox-360-controller-api/
455450
垢版 |
2021/11/15(月) 01:44:24.23ID:p8P7kH1j0
>>454
やはりOneコントローラーのドライバの仕様で検出できないんですね
XInput.ahkは私のレベルでは使い方がよく分からないので今は暫定的にJTK経由でAHKを動かしてるけど
出来れば直接XInputの入力をAHKで検出させたいですね
2021/11/15(月) 14:39:37.18ID:nGVwoqmF0
>>449
あーなるほど動作が解りました。
こういうことか

OnClipboardChange("ClipChanged",0)
Backup := ClipboardAll
Clipboard := String
処理
Clipboard := Backup
OnClipboardChange("ClipChanged",1)
2021/11/15(月) 19:04:56.79ID:gzGB/cbK0
2021/11/18(木) 14:48:03.44ID:ODAxHICs0
StringSplitで文字列を書き出す時につまずいたんですがこれをStringSplitを実行すると

F1::
test = +1+2+3+4+5 +6
StringSplit,word,test,%A_Space%`r,`r`
send,%word1%_
send,%word2%
return

sendで書き出されるものが 「+1+2+3+4+5_+6」 ではなくて 「!"#$%_&」 になりますが
+1が! +2が" +3が# +4が% +6が& になってます
数字キーをshift押しで出力されるキーがそのままでてきてます
これって何の機能なんですかね?どこかにこの説明がされているところありますか?
sendではなくsendrawにすれば 「+1+2+3+4+5_+6」 となるのはわかってるんですが
2021/11/18(木) 15:09:12.65ID:RZBaMAWA0
sendに+食わせたら、ホットキー同様にshiftになる仕様なんだから当たり前では?
基本的なことだから、どこにでも書いてあると思うけど
2021/11/18(木) 22:00:47.57ID:PMpaZla20
>>458
test := +1+2+3+4+5+6
461458
垢版 |
2021/11/23(火) 06:57:57.14ID:bdrNXIAY0
多分こっから色々質問してもこんがるがるからレスありがとうとだけ言っときます
ありがとう
2021/11/23(火) 07:01:38.39ID:5Ej+6TIU0
何がしたいんだ
2021/11/23(火) 09:42:18.86ID:FsLBOOY30
>>461
sendの仕様なんだから>>459の通り

1)+ を文字列扱いにしたいなら {} で囲って {+} にするか > test = {+}1 〜 {+}5 {+}6
2)sendコマンドで {raw} を付けるか > send,{raw}%word1%_%word2%

Send / SendRaw / SendEvent / SendInput / SendPlay - AutoHotkey Wiki
http://ahkwiki.net/Send
2021/11/23(火) 11:32:51.83ID:eqWXLOs/0
wikiの書式見ながら書いたんですが動かない。
複数指定って || と("")以外にありますか?
あんまり良くわかってないですがLoop処理とかなのでしょうか?

Process, wait, 001.exe || 002.exe || 003.exe, 1
NewPID = %ErrorLevel%
if NewPID = 0
{
MsgBox, 64, , 1秒の間に指定のプロセスが見つからなかった。
Return
}
; 見つかった場合
Process, Priority, %NewPID%, Low
MsgBox, 64, , 完了

ExitApp
2021/11/23(火) 20:03:41.04ID:3MPpb6Xl0
>>464
AutoHotkeyのコマンドは1つで複数を指定できない。
条件分岐は別。if (p="001.exe") or (p="002.exe") or (p="003.exe")
なのでLoopで1つずつ処理する。

サンプルコード
https://pastebin.com/e44AEHNi
2021/11/24(水) 15:43:11.73ID:227OclMX0
>>465
ありがとうございます!
Loop,parseの使い方が理解できました。いただいたサンプルがおま環で動かなかったのでがんばって直してみました。
https://p.ahkscript.org/?p=534c332a

;これからそのプロセスが起動する場合
の処理が難しくて、、、今のところ使わないですがこういうの覚えたい。
2021/11/24(水) 19:53:15.88ID:bsPs+xrf0
>>466
※返信内容考えるの大変だろうから返信はしないでくれ

動かない原因は関数名の重複かもしれない。
サンプルコードでは2つともを p() にしていたから。
そうでないならバージョンが最新でない。

;これからそのプロセスが起動する場合 
↑このコードについて修正点がある。
あのコードでも目的は果たせるが、
.RemoveAtじゃなくて.Deleteが目的に合っているし、
Forループ中にキーを削除してはいけない仕様を忘れていた。

その仕様は英語版wikiに書いてある
deeple翻訳"
既存のキーと値のペアはループ中に変更することができますが、
キーを挿入または削除すると、一部のアイテムがスキップされたり、複数回列挙されたりする可能性があります。
これを回避するには、削除するキーのリストを作成し、
最初のループが完了した後、2つ目のループを使用してキーを削除する方法があります。
"
修正版とForループ中にキーを削除するとどうなるか確認用コード
https://p.ahkscript.org/?p=7e8ec33b

オブジェクトは変数管理に超便利だから、気が向いた時にでも試してみるといいぞ!
2021/11/24(水) 20:03:20.61ID:TDKs5fj70
日本語で変数作るとびっくりするほど見づらいw
2021/11/24(水) 20:51:43.26ID:bsPs+xrf0
一応修正点…
上記URLの12行目、p2(p,,t:=1000) 引数が3つになっていた => p2(p,t:=1000)

>>468
見づらい原因はフォントかもしれない。
俺はUD デジタル 教科書体 N-Rというwin10に標準搭載されているのを使っている。
日本語がとても綺麗だ。その上 英文字と馴染んでいる。欠点は 1とl 0とO の見た目が同じであること。

…というのは置いといて、
俺がahk学び初めの頃はwikiの
For k, v in colours
Object := Object()
を見て、A_Indexのように決められた文字列を使わないといけないと思ったから、
例で自由であることを そっと示すため採用したぜ。
まぁ言わずもがなか
2021/11/24(水) 22:35:07.06ID:TDKs5fj70
確かにこのフォントはきつい
特にイタリック
471466
垢版 |
2021/11/25(木) 19:55:26.07ID:yyaQ6B9A0
>>467
おやさしい、ありがとうございます!
難しいのでしばらく眺めてます。。
PIDを扱うという点で、いただいたloop処理で既存EXEのPID取得できるし、RunコマンドでOutputVarPID出せるようですが、obj扱った複雑な処理をする必要ってあるのでしょうか?
2021/11/25(木) 20:03:43.09ID:yyaQ6B9A0
本家wikiの通りに書いたんですが動かないです。
URLorそれ以外の文字列で分岐させたいんですが、全部Elseの処理に行ってしまいます。
/:*-+なども文字列として扱ってくれてるようなんですが、%Clipboard%にすると動かない。

よくわかってないですがRegExMatch()などが必要でしょうか?

https://p.ahkscript.org/?p=a05fd77c
2021/11/25(木) 20:22:08.69ID:ZLlSenf80
2行目にMsgBox入れてHaystackの中みてみなよ
474472
垢版 |
2021/11/25(木) 20:46:32.09ID:yyaQ6B9A0
>>472
自己解決しました。
:=じゃなくて=でした。。。

>>473
なるほどーそうやってデバックすればいいですね。
ブレークポイントってやり方見つけたのでやってみます。
2021/11/27(土) 09:34:05.33ID:X/CvUa8D0
>>468 がキッカケで4年ぶりにフォントを見直した。
太字に変えてフォントの合成で欠点を補い目に優しくなったぜ。ありがとう

>>471 必要はない。自由。
2021/11/28(日) 18:32:30.94ID:NjpolW2I0
過去スレより、エクスプローラーでカレントディレクトリ/ファイルのフルパスを取得するコードなのですが、ファイルのフルパスのみクリップボードにコピーしたいです。
どこを直せばいいでしょうか?
このコードを実行するとディレクトリしかコピーしてくれません。StringTrimRightかなーとイジるも全然効果なく。

https://p.ahkscript.org/?p=fe3b8ff3
2021/11/28(日) 18:59:40.38ID:HXl4GVE50
>>476
なんか小難しいことしてるけど
俺はフルパスのコピーはこうしてるよ(Win10 explorer)

!c::
Send, {Blind}{Alt}h
Sleep, 100
Send, {Blind}cp
Return

Sleepの間隔やSetKeyDelayは環境に合わせて適宜調整
2021/11/28(日) 22:58:45.67ID:uKCO3E5d0
>>476
WinExistの引数を"ahk_class CabinetWClass"にする
2021/11/29(月) 08:22:11.40ID:ElbSLFC80
>>476
GetSelectItemPath()だけど、この関数のコピペが間違っているか
やっつけで関数化してない?
WinExist()の引数が指定なしなのは、Last Found Windowを利用しているからなんだけど
そこら辺の調査コードがごっそり抜けているように見える
そのせいで必ず空が返ってくるから、最初の分岐でパス取得に移行してしまう
2021/11/29(月) 15:26:28.55ID:HqT4yVL/0
RemoteViewのあるバージョンからyamyが使えなくなったので(キーが二重入力される)、
乗り換えを検討してるけど、RemoteViewで使ってる人いる?
2021/11/29(月) 18:06:25.10ID:HqT4yVL/0
F13 & 7::+7
とすると'が入力されるのに、
F13 & 8::+8
だと8のままになってしまう
なんで?
2021/11/29(月) 18:31:48.66ID:1X5thnOt0
>>481
他で何か重複してんじゃねえの
その2行のみのスクリプトなら正常にShift+8で ( が入力されるぞ
2021/11/29(月) 18:39:25.18ID:HqT4yVL/0
うちだと2行だけにしても駄目だな
2021/11/29(月) 19:01:35.96ID:HqT4yVL/0
#1でタスクバーの1番目のアプリに切り替えたい時に、
それが複数あると画面が変になって切り替わらない
2021/11/29(月) 19:35:05.25ID:QDoWvE290
ビットマップを回転させたら背景が黒くなってしまいました。背景を透過させたいんですが分かる人いますか?

https://pastebin.com/xwCpnhCk
2021/11/29(月) 22:12:53.38ID:HqT4yVL/0
F13というのはChangeKeyで入れ替えたcapslockなので、
そのへんの取り扱いかもしれない
2021/11/29(月) 22:15:54.44ID:1X5thnOt0
>>486
F1とかで試せば?
2021/11/29(月) 22:29:01.24ID:HqT4yVL/0
F1をモディファイアにするのは困難というのと、
F1でうまく行ってもうまく行かなくても何も解決しない
2021/11/29(月) 22:34:04.86ID:1X5thnOt0
>>488
何が原因かを調べるために試せと言ってんだよ
原因絞り込まなきゃ対処のしようもないだろ
トラブルシューティングの基礎すら分かってないのか
2021/11/30(火) 04:24:08.31ID:pkfHBW+i0
自分の環境(Win10 64bit Pro)だと ^+2 や +!s を割り当ててもまったくきかず、エラーが出るわけでもなく
keymillでみても押されてる気配がなく、かと言って何かが起動するわけでもないんですが
AHKより優先度の高いショートカットを誰が抱えてるか調べる方法あったら教えて下さい
2021/11/30(火) 05:58:15.28ID:lL0PDyxC0
原因判明

正確には
F13 & 7::+7
ではなく
F13 & 7::+7 ; 7 = ゃ
と書いていて、このコメントが原因だった
F13 & 7::+7 ; 7 = ゃ
にすると正しく動く
エンコードをsjisからutf8にすると、そんなことしなくても動く
2021/11/30(火) 06:13:11.45ID:lL0PDyxC0
>>484 について画像で説明
https://i.imgur.com/jRUsblu.png

左はwin-1を押したところ、右はそれと同じことをahkでやったところ
描画されていないだけではなく選択もできないので、機能が使えない
2021/11/30(火) 09:39:23.86ID:jlZuK9e00
教える方も教えられる方も妙に偉そうでw
2021/11/30(火) 09:52:32.40ID:lL0PDyxC0
そもそものremote viewで二重入力される件は、
ahkでもやっぱりおかしい
ahkが効かない時のキーと効いた時のキーが両方入力される

remote view起動後にahkを再設定すると正常になる
同期か何かが要るのかもしれない
2021/11/30(火) 11:01:43.38ID:XSJCj9/h0
呼ばれた気がした

教えて君五大要素
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない(礼も言わない)
2021/11/30(火) 12:35:00.34ID:OLJVMNBV0
ahkスプリクトをいまだにsjisエンコードで保存してる人がいたことに驚く
つうかFAQに書いてなかったっけ?
2021/11/30(火) 12:45:37.44ID:7XQZIVR60
>>494
そもそも何がしたいのか、そのためにどのようにスクリプトを組んだ結果、
どの部分が意図と違う動作になるのか
ここにいる人たちはエスパーじゃないから見る人に伝わるように説明しないと
2021/11/30(火) 13:51:40.39ID:E/PMKhJe0
>>496
新規作成すればUTF-8で作られるから
普通あり得ないと思うわ
2021/11/30(火) 14:05:14.22ID:4N2zSQnu0
それはEditorしだいでしょ
2021/11/30(火) 14:16:24.68ID:4Drza8/x0
何を言ってるんだ?
2021/11/30(火) 14:49:25.45ID:wyV4RiOW0
>>500
だから何?
2021/11/30(火) 15:31:13.29ID:4Drza8/x0
ああ何もわかってないパターンか
だから>>491みたいなことをやらかすんだ
2021/11/30(火) 16:04:14.55ID:CaIulUqf0
>>499
winならInstaller.ahkでインストールすれば右クリ→新規作成からahkファイル作成できたと思う
2021/11/30(火) 16:17:54.86ID:4N2zSQnu0
>>503
ただ空のテキスト新規作成した時点では文字コードはないよね
編集して保存する際のエディタの設定次第かと
最近のエディタなら大抵デフォルトUTF-8のはずだけど
2021/11/30(火) 16:46:16.36ID:CaIulUqf0
>>504
ZIP付属のUTF-8(BOm有り)のTemplate.ahkが所定のフォルダにコピーされると思ったが
2021/11/30(火) 17:01:10.52ID:4N2zSQnu0
>>505
あーそんなんだすまん
Installer.ahkというのの挙動を知らなかった
2021/11/30(火) 18:30:18.76ID:lL0PDyxC0
yamyもremote viewの起動後に起動すれば二重入力が起こらない
同期とかではなくて、ベクターの奪い合いとかそんなことになってるのだろう
後から起動した方が勝つ

yamyよりもahkの方が再起動が簡単なので、ahkに乗り換えることにする
殆どの機能は移植完了したけど、>>492だけが未解決
どう見てもバグなのになんで放置されてるんだろう
508476
垢版 |
2021/12/01(水) 02:30:18.35ID:Ov1zVr780
>>478
>>479

結局わからず、、悔しいですがショートカットキーで対応しました。ありがとうございましたm(_ _)m
2021/12/01(水) 02:35:04.58ID:+FEAQudb0
>>508
結果として同じことが出来れば悔しいも糞もねえだろ
2021/12/01(水) 02:38:09.77ID:v0rXvTjv0
あなたが書いたコメントのソース見ればわかると思うけど
2021/12/01(水) 02:52:56.56ID:TqyF4v6F0
>>507
原因も切り分けもせずに想像だけで勝手にバグと決めつけてる様な阿保には一生解決無理に決まってる
2021/12/01(水) 08:19:47.03ID:lzwkZUzl0
#1で複数起動中のアプリへの切り替えに失敗する件は、
GroupAddとGroupActivateを使ってくれという方針なのだろう

GroupActivateでも似たようなことができて、しかも最後に使っていたアプリが
最初に現れるので大抵の局面で使いやすい
win-1でやると、常に起動順に選択されるので、さっきの箇所に戻るには何番目かを記憶しておかないといけない
逆に、それに慣れれば、1番目のexplorerはホーム、2番目がワーク、3番目が臨時用、みたいな使い方もできる

そこまでであればどちらでもいい感じなんだけど、
リモート環境を扱う時にはGroupActivateは使用不可能なので、win-1しか選択肢がない
しかしそれはバグっているので、そこだけはahkには頼らずにwin-1を押すしかない
やってみると判るけど、実用になるのはwin-1, win-2, win-3くらいまで
2021/12/03(金) 18:11:18.89ID:QNsznfiS0
OSでホイールスクロールを3行に設定してる時に
特定のアプリでのみスクロール量を1行にできないかな?
514名無しさん@お腹いっぱい。
垢版 |
2021/12/03(金) 19:04:10.22ID:7ECx2rZY0
増やすのはできても減らすのは無理じゃばい?
2021/12/03(金) 19:29:11.60ID:8pZEeA2/0
OSの設定は1行にして、加速ホイール系のライブラリを利用して
通常は三倍速、特定アプリでは等倍ってやるのが楽だと思う
ライブラリは>>1のろだに幾つか転がってる
2021/12/03(金) 19:39:21.88ID:QNsznfiS0
>>515
天才か
それでやってみる
サンクス
2021/12/04(土) 16:23:10.37ID:TXSMN11I0
wheelup::up
wheeldown::down
とかでいいんじゃないの
wheeldown::send,{pgdn}{up 5}
みたいな調整することもある
2021/12/04(土) 17:05:03.51ID:l3lIxS000
>>517
それは挙動が全然違うだろ
2021/12/04(土) 19:45:51.17ID:xsgzjDWA0
このspy亜種むちゃくそ便利。公式と置き換えてほしいな。
https://www.autohotkey.com/boards/viewtopic.php?f=6&;t=52872
2021/12/04(土) 20:13:20.86ID:tPgx3/DO0
コード長っ!
だけどきれいなコーディングだわ、読みやすい
トップの古めかしいAAが醸し出すハッカー臭が
ロシア語と相まってFPSのSTALKERっぽいわ
521名無しさん@お腹いっぱい。
垢版 |
2021/12/04(土) 23:28:47.21ID:eVtHh9Vq0
>>519
urlあってる?
何もないけど
The requested topic does not exist.
2021/12/04(土) 23:53:24.52ID:zw+XlZjU0
URLの途中に「;」入ってるならそれを除去でOK
オレ使ってるvivaldiで見たら入ってた
2021/12/04(土) 23:57:04.06ID:zw+XlZjU0
連投スマン
みんなではないかもしれないがBOM無しになってたら有にしないと起動しない
2021/12/06(月) 12:42:18.22ID:Y1AeLgGm0
5つの数字をランダムで出したいんだけど
重複しない乱数の表示ってどうすればいいですか?
2021/12/06(月) 13:55:42.03ID:sWj4dAeW0
重複してたらやり直す
2021/12/06(月) 14:07:26.47ID:gYPqUlP90
https://textuploader.com/t5ykk
2021/12/06(月) 22:58:11.14ID:PcUOy4Tj0
a=1,2,3,4,5
sort,a,random d,
2021/12/07(火) 05:50:44.41ID:WyG5fNHu0
FisherYatesっていうものなのか...
ありがとうございます。解決しました。
2021/12/07(火) 12:17:12.45ID:n6Qn6AZg0
Chromeのタブ切り替えをウィンドウをアクティブにせずに行うにはどうしたらいいのでしょうか?

↓これでは非アクティブ時は動作しませんでした
ControlSend,,{Ctrl Down}{Tab}{Ctrl Up}
2021/12/07(火) 12:21:54.63ID:N3Ch/Emm0
Chrome.ahk
2021/12/07(火) 14:08:20.46ID:Fqj2EQed0
ブラウザ系はフォアグラウンドじゃないと動かせなかったような
control sendは万能じゃないんでソフトによっては効かないし
2021/12/07(火) 16:08:47.53ID:5gejvHG10
>>530-531
ありがとうございます
Chrome ahkを立ち上げてみましたが、使い方が分からず挫折orz
ブラウザはアクティブじゃないと動かせないんですね
2021/12/07(火) 16:13:21.54ID:P1h/EC2/0
>>529
そもそもそれChromeを指定すらしてないじゃん
2021/12/08(水) 04:45:33.32ID:QpHl+see0
質問
マウスの拡張キー2つにA(Win+Shift+Left)とB(Ctrl)を登録してて、
A単独を押したときはウインドウを左に遷移、
B+Aの時はウインドウを右に遷移させたいと思ってるんですが、
うまくいかないのでアドバイスいただけないでしょうか

^+#Left::
Send +#Right
return
535534
垢版 |
2021/12/08(水) 05:03:27.50ID:QpHl+see0
^+#Left::
Send, {LWin Down}
Send, {LShift Down}
Send, {Right}
Send, {LWin Up}
Send, {LShift Up}
return

で右遷移いけました、が、
一回目だけ右に移動して、そのまま繰り返すと左に入れ替わってしまいます

^+#Right::
Send, {LWin Down}
Send, {LShift Down}
Send, {Right}
Send, {LWin Up}
Send, {LShift Up}
return

これで上書きできるかと思ったらだめでした…
2021/12/08(水) 08:06:53.31ID:sBOEfi+c0
拡張ボタンA → XButton1, 拡張ボタンB → XButton2 だと想像して↓の方法じゃダメだろうか?
つまり拡張ボタンを決まった操作するとあらかじめ決めておいたキーを送出するようにする(ボタンにキーを割り当てるのじゃなく)

;拡張ボタンBを押しながら拡張ボタンAをクリックすると +#{Right} キーが創出される
;Bを押したまま離さずAをクリックする度に +#{Right} キーが創出される
#If GetKeyState("XButton2", "P")
XButton1::
KeyWait, XButton1
send, +#{Right}
return
#If

スマンケド、こっちで動作検証してないので動く保証はない
2021/12/08(水) 15:48:31.60ID:931f2NpG0
PostMessageを知って一発でキー割り当てできると知り数百行くらい簡略化できたんですが、たまにうまく効かないことがあります。
Lines most recently executedでは問題なく送ってるようですが効かない。番号はinspect.exeで確認。
どういうことが考えられるでしょうか?
PostMessage用のデバッグ法などあれば知りたいです。
2021/12/08(水) 23:15:46.11ID:sBOEfi+c0
>>537
とりあえず、書いたコード晒したら?…何をしたいかも分からんし
PostMessageで一発でキー割り当てできる…キー割り当て?何処で知ったどういう情報なんだろう?
2021/12/10(金) 16:07:30.30ID:xgatJWOa0
>>538
記載の通りで、動くものと動かないものがあって、その理由と有効なデバッグ方法が知りたいです。コード自体は大したことやってません。
PostMessageはID番号分かれば5,6行くらいのsendを1発で指定できることが多いのでメリットを感じています。

#IfWinActive, ahk_exe aaa.exe
{
a::
PostMessage, 0x111, ID番号,,, A
Return
}
Return
#IfWinActive
2021/12/10(金) 19:41:34.92ID:260otisW0
>>539
>動くものと動かないものがあって
なら、その動くものと動かないもののコード貼って貰わないと

あと、その例の書き方は無駄がある書き方なんだが、ちゃんとリファレンス読んで書いてんの?
ハッキリ言って3行で済むぞ
2021/12/10(金) 21:14:34.94ID:kQNS93Ls0
直接デバッグということではないけど
PostMessageやSendMessageを使うなら
まずは最初に
SPY++(Win32SDKやVisualStudioの付属ツール)で
メッセージと対応する挙動を見て
送る内容が適切なのか確かめたいところ
542539
垢版 |
2021/12/10(金) 22:47:55.32ID:b8S9pzE50
>>541
spy++は古いらしく、windowsSDKのinspect.exeで調べました。
今は >>519 のspy.ahk使ってます。
念の為UIAutomation系のaccevent.exeでも確認しましたが同じ番号だったので合ってるだろうという理解です。

この辺りを見てなんとなーく理解しましたが、仰っしゃる対応する挙動とはどういうことですか?
http://chokuto.ifdef.jp/urawaza/message/index.html
2021/12/10(金) 23:20:14.08ID:kQNS93Ls0
SPY++ は現行ツールで最新の
Visual Studio Community (個人使用無償版)にも
入ってる(オプションインストール)と思います

Visual Studio 2022
https://visualstudio.microsoft.com/ja/downloads/

Spy++ の概要
https://docs.microsoft.com/ja-jp/visualstudio/debugger/introducing-spy-increment?view=vs-2022
2021/12/10(金) 23:27:50.49ID:kQNS93Ls0
でクラス名やウィンドウスタイルを調べたりすることもできるんですが
それは1機能に過ぎません

見たいといったのは
ある操作をしたときに
ウィンドウにどんなメッセージが入ってきてるのか
ということです

Capturing with spy++
https://www.youtube.com/watch?v=WL8rk7pNGo0
これでイメージがつかめるといいのですが
下のウィンドウを指定して
そのスクロールボタンを押すと
下のウィンドウに入ってきているメッセージが
上のウィンドウに(ほぼ)リアルタイムで表示されています
操作中にどんなメッセージが発生しているかが見えるということです
545名無しさん@お腹いっぱい。
垢版 |
2021/12/10(金) 23:29:52.11ID:FIy0gY1U0
https://egg.5ch.net/test/read.cgi/software/1524647289/196-221
前からバカでおかしな奴がいることに気づいてる人は多いみたいだけど
そいつけっこう前からここにいて、今はMouseGestureL.ahkスレにもいる荒らしなんだ
追い出されて次は本格的にここを荒らすと思うから気をつけてな
■ このスレッドは過去ログ倉庫に格納されています