MouseGestureL.ahkとはAutoHotkey_L上で動作する凡用マウスジェスチャーソフトです。
作者様のユーザーインターフェース大幅な改良にともない設置も簡単になりました。
基本的な用途であればスクリプトを意識せず全てのWindowsソフトでジェスチャー操作が可能になります。
使い方について語ったり、スクリプトについての質問・解答・提案等を書き込みましょう。
配布元 公式:
http://hp.vector.co.jp/authors/VA018351/mglahk.html
Autohotkey関連ファイル専用アップローダー:
http://ux.getuploader.com/autohotkeyl/
前スレ:
http://anago.2ch.net/test/read.cgi/software/1384313234/
テンプレは>>2-10くらい 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
探検
MouseGestureL.ahkを流行らせるスレpart2 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2015/05/06(水) 09:47:16.51ID:8dtFG10E0
2020/03/26(木) 07:57:46.19ID:7Xk6Jh4P0
「ターゲットとなるウィンドウの特定の位置を左クリック」というアクションをさせたいのですが、
どのようなスクリプトにすればいいのか教えてください
どのようなスクリプトにすればいいのか教えてください
812名無しさん@お腹いっぱい。
2020/03/26(木) 16:27:46.31ID:vtlEeX2I0 >811
実際に使っているものです。
適当なジェスチャーに割り当てて使ってください。
私はRB_RLRD_に割り当てています。
CoordMode, Mouse, Relative
If (GetKeyState("Shift", "P"))
{ ;Shiftを押していれば、ターゲットのIDと座標を記録
MouseGetPos, , , WindowID
BackClickMouseX := MG_X
BackClickMouseY := MG_Y
} Else
{ ;Shiftを押していなければ、記録していたターゲット上の座標をクリック
CoordMode, Mouse, Relative
ControlClick, X%BackClickMouseX% Y%BackClickMouseY%, ahk_id %WindowID%
}
実際に使っているものです。
適当なジェスチャーに割り当てて使ってください。
私はRB_RLRD_に割り当てています。
CoordMode, Mouse, Relative
If (GetKeyState("Shift", "P"))
{ ;Shiftを押していれば、ターゲットのIDと座標を記録
MouseGetPos, , , WindowID
BackClickMouseX := MG_X
BackClickMouseY := MG_Y
} Else
{ ;Shiftを押していなければ、記録していたターゲット上の座標をクリック
CoordMode, Mouse, Relative
ControlClick, X%BackClickMouseX% Y%BackClickMouseY%, ahk_id %WindowID%
}
2020/03/26(木) 23:21:39.15ID:7Xk6Jh4P0
これまんまコピペしてから
Shift押しながらアクション→アクションで合ってます?
動いてくれないんですが
Shift押しながらアクション→アクションで合ってます?
動いてくれないんですが
2020/03/27(金) 00:28:06.46ID:HqAAAAv50
815名無しさん@お腹いっぱい。
2020/03/27(金) 02:44:26.14ID:5jIiQ0sD0 test
816名無しさん@お腹いっぱい。
2020/03/27(金) 02:46:59.00ID:5jIiQ0sD0 >>812です。
俺環で使えてたけど致命的におかしかったので修正。
トリガー(RB_など)に後述@を設定して、
適当なジェスチャー(RB_RLRD_など)に後述Aを設定する
多分これでいいはず。。。
;@
If (GetKeyState("Shift", "P"))
{
CoordMode, Mouse, Relative
MouseGetPos, startRelativeX, startRelativeY, startWinID
}
;A
CoordMode, Mouse, Relative
If not (GetKeyState("Shift", "P"))
{
ControlClick, x%startRelativeX% y%startRelativeY%, ahk_id %startWinID%
}
俺環で使えてたけど致命的におかしかったので修正。
トリガー(RB_など)に後述@を設定して、
適当なジェスチャー(RB_RLRD_など)に後述Aを設定する
多分これでいいはず。。。
;@
If (GetKeyState("Shift", "P"))
{
CoordMode, Mouse, Relative
MouseGetPos, startRelativeX, startRelativeY, startWinID
}
;A
CoordMode, Mouse, Relative
If not (GetKeyState("Shift", "P"))
{
ControlClick, x%startRelativeX% y%startRelativeY%, ahk_id %startWinID%
}
817名無しさん@お腹いっぱい。
2020/03/27(金) 02:48:25.89ID:5jIiQ0sD0 >>814 ありがとう。過去に自分も丸投げ質問してしまった引け目から、
贖罪のつもりで回答しています。
ところで、
"Shift"の部分を変数で指定したいのですが、ダブルクオーテーションの都合なのかうまくいきません。
解決策わかる方教えて下さい。
startVarKey := Shift
If (GetKeyState("%startVarKey%", "P"))
のような感じで書きたいです
"の位置を変えてみたり2個つけてみたり、いろいろ調べたんですけど解決できず。。。
贖罪のつもりで回答しています。
ところで、
"Shift"の部分を変数で指定したいのですが、ダブルクオーテーションの都合なのかうまくいきません。
解決策わかる方教えて下さい。
startVarKey := Shift
If (GetKeyState("%startVarKey%", "P"))
のような感じで書きたいです
"の位置を変えてみたり2個つけてみたり、いろいろ調べたんですけど解決できず。。。
818名無しさん@お腹いっぱい。
2020/03/27(金) 02:54:02.77ID:5jIiQ0sD0 startVarKey := Shift
If (GetKeyState(startVarKey, "P"))
で出来ました。当たり前ですね。失礼しました。
If (GetKeyState(startVarKey, "P"))
で出来ました。当たり前ですね。失礼しました。
819名無しさん@お腹いっぱい。
2020/03/27(金) 02:55:20.71ID:5jIiQ0sD0 startVarKey := "Shift"
If (GetKeyState(startVarKey, "P"))
Shiftに"をつけ忘れたので修正。連投失礼
If (GetKeyState(startVarKey, "P"))
Shiftに"をつけ忘れたので修正。連投失礼
2020/03/30(月) 00:02:47.30ID:1hrAK9ux0
>>816
希望通りの動作なことを確認できたよありがとう
ただ使いたかったゲームの場合、クリックさせたいアイコンの上にマウスポインタを乗せて選択状態にしてないと反応しないようで
残念ながら使えなかった
希望通りの動作なことを確認できたよありがとう
ただ使いたかったゲームの場合、クリックさせたいアイコンの上にマウスポインタを乗せて選択状態にしてないと反応しないようで
残念ながら使えなかった
2020/03/30(月) 07:24:15.93ID:XfNzI6FN0
えぇ… 95%まで作ってもらったのに自分でほんの少しのひと工夫もするつもりないんかい
使えないって、あとは選択状態にできればいい話じゃないの
そういうことされると教えてくれる人が減ってしまうがな
ありがとうとは言ってるけど、多少なりとも自分で何とかしようとしてるかどうかは伝わるもんだよ
使えないって、あとは選択状態にできればいい話じゃないの
そういうことされると教えてくれる人が減ってしまうがな
ありがとうとは言ってるけど、多少なりとも自分で何とかしようとしてるかどうかは伝わるもんだよ
822名無しさん@お腹いっぱい。
2020/03/30(月) 15:17:28.69ID:ZIKSgGud0 損するのは彼ですし、自分のすべきことはしたので気にしていませんよ^^;
ところで別件の質問です。
AHKで、キーボードでマウスカーソルを動かすスクリプトを作りました。
変換キーを押すたびに、キー入力モードとマウスモードで入れ替わります。
マウスモードでは、LキーDownを右クリックDown、LキーUpで右クリックUpにしています。
このLキーをトリガーとしてMGLのジェスチャーを使うために、
MGLにLキートリガーのジェスチャーを登録したいのですが、
Lトリガーアクションの発動条件を、変換キーによるトグル状態によって分岐したいわけです。
(つまり、マウスモードのときのみそのトリガーを有効化する)
そのトグル状態さえ取得できれば、Lトリガー単体のアクションで、
単にLを入力するか、ジェスチャーを認識するか分岐できることになりますよね。
しかしAHKとMGLは別として実行しているので、変数の共有はできないと、私は認識しています。
ではどうするか。次の方法を考えましたが、スマートとは言えません。何かご教示頂けると幸いです。
@ MGLに変換トリガー単体のジェスチャーを登録して、そこでトグルする。
→AHKとMGLの起動・終了タイミングを揃える必要がある。
→モードトグルのトリガーを変更したいとき、AHK,MGL両方で書き換えが必要になる。
➁AHKでマウスモードになったとき、同時に適当なMsgBoxを出しておき、MGL側でそれを認識する。(WinExist)
→ダサい
BAHK側で、マウスモードになったときにToolTipを右下で常駐する設定にしてあるため、そのツールチップを取得する。
→書きながら思いついたけど、これが可能なら結構イケてる。
ところで別件の質問です。
AHKで、キーボードでマウスカーソルを動かすスクリプトを作りました。
変換キーを押すたびに、キー入力モードとマウスモードで入れ替わります。
マウスモードでは、LキーDownを右クリックDown、LキーUpで右クリックUpにしています。
このLキーをトリガーとしてMGLのジェスチャーを使うために、
MGLにLキートリガーのジェスチャーを登録したいのですが、
Lトリガーアクションの発動条件を、変換キーによるトグル状態によって分岐したいわけです。
(つまり、マウスモードのときのみそのトリガーを有効化する)
そのトグル状態さえ取得できれば、Lトリガー単体のアクションで、
単にLを入力するか、ジェスチャーを認識するか分岐できることになりますよね。
しかしAHKとMGLは別として実行しているので、変数の共有はできないと、私は認識しています。
ではどうするか。次の方法を考えましたが、スマートとは言えません。何かご教示頂けると幸いです。
@ MGLに変換トリガー単体のジェスチャーを登録して、そこでトグルする。
→AHKとMGLの起動・終了タイミングを揃える必要がある。
→モードトグルのトリガーを変更したいとき、AHK,MGL両方で書き換えが必要になる。
➁AHKでマウスモードになったとき、同時に適当なMsgBoxを出しておき、MGL側でそれを認識する。(WinExist)
→ダサい
BAHK側で、マウスモードになったときにToolTipを右下で常駐する設定にしてあるため、そのツールチップを取得する。
→書きながら思いついたけど、これが可能なら結構イケてる。
823名無しさん@お腹いっぱい。
2020/03/30(月) 15:21:06.87ID:ZIKSgGud0 あ、あとスレ立て慣れてる方いましたら、AHKスレPart28立ててくれませんか?(小声)
立て方も、しきたりも、よくわからず…
立て方も、しきたりも、よくわからず…
2020/03/30(月) 16:05:47.29ID:h0Q71eu70
onMessage()でよくね?
スレ建てはできなかったので他の人よろしく
スレ建てはできなかったので他の人よろしく
825名無しさん@お腹いっぱい。
2020/03/30(月) 23:23:36.99ID:t84U6ILp0 特に何もしていない人間が「教えてくれる人が減ってしまう」って気にするのも余計なお世話だよな。
ならお前がなれば?
ならお前がなれば?
2020/03/30(月) 23:35:39.78ID:FggYZTxA0
丸投げする奴が言いそうな理屈だ
827名無しさん@お腹いっぱい。
2020/03/30(月) 23:56:03.21ID:t84U6ILp0 仮定で叩くほど怒らせてすまん
828名無しさん@お腹いっぱい。
2020/03/31(火) 00:47:21.75ID:lXJjPuR50 というか状態が問題ならマウスカーソル実際に移動させりゃいいんじゃないの?
俺はマウント民の821や826とは違うから書いてあげるね。
; アクティブウィンドウ左上からの相対座標にする。
CoordMode, Mouse, Relative
; マウスを指定した座標に移動する。3つ目は 移動速度。
MouseMove, ???, ???, 0
Send, {LButton}
; マウスを元の位置へ戻す。
MG_Move()
???は座標の数字ね。
俺はマウント民の821や826とは違うから書いてあげるね。
; アクティブウィンドウ左上からの相対座標にする。
CoordMode, Mouse, Relative
; マウスを指定した座標に移動する。3つ目は 移動速度。
MouseMove, ???, ???, 0
Send, {LButton}
; マウスを元の位置へ戻す。
MG_Move()
???は座標の数字ね。
829名無しさん@お腹いっぱい。
2020/03/31(火) 02:45:08.68ID:N0ueqK480 >>828
ありがとうございます。
マウスを動かすスクリプトは既に書いておりまして、
左ホームポジションにカーソル移動、右HPにマウスボタンを当てています。
ただ、例えばRB_xxxをMGLに認識させるためには、
Lキーで{RButton Down}にした状態で動かせばよいわけではなく、
実際にマウスの右クリックを押さなければならないんですよね。
(GetKeyStateで判定されている?)
そのために、トリガーをRBと分離して定義して、
ジェスチャーもトリガーラベルを書き換えたものをちまちま追加していかないといけないのかなと思っています。
(例えばRB_UD_があれば、LKey_UD_を、同じアクションのジェスチャーに追加)
MGLの元ファイル群はできればいじりたくないので、その方法を思案中です。
(いじりたくないのは、コードの理解できていないため
エラーが起きても対処ができないからです。)
ありがとうございます。
マウスを動かすスクリプトは既に書いておりまして、
左ホームポジションにカーソル移動、右HPにマウスボタンを当てています。
ただ、例えばRB_xxxをMGLに認識させるためには、
Lキーで{RButton Down}にした状態で動かせばよいわけではなく、
実際にマウスの右クリックを押さなければならないんですよね。
(GetKeyStateで判定されている?)
そのために、トリガーをRBと分離して定義して、
ジェスチャーもトリガーラベルを書き換えたものをちまちま追加していかないといけないのかなと思っています。
(例えばRB_UD_があれば、LKey_UD_を、同じアクションのジェスチャーに追加)
MGLの元ファイル群はできればいじりたくないので、その方法を思案中です。
(いじりたくないのは、コードの理解できていないため
エラーが起きても対処ができないからです。)
2020/03/31(火) 05:23:21.85ID:P66PUP3+0
なぜかこいつがお礼言ったせいで
>>811がすごい勢いで成長したのかと勘違いしたわ
>>811がすごい勢いで成長したのかと勘違いしたわ
2020/03/31(火) 20:41:17.48ID:Fhvx4PA80
828はマウント民と違うとか言ってる以上、最後まで面倒見てやれよ
2020/04/01(水) 08:07:40.25ID:cOL8Knm90
くやしそうやね
2020/04/01(水) 13:23:12.36ID:svOWnROo0
なるほど
解決まで持っていけなかったから悔しかったのか
解決まで持っていけなかったから悔しかったのか
834名無しさん@お腹いっぱい。
2020/04/01(水) 22:35:31.86ID:sFlEv6AW0 おっ、わざと誤読することで効いてないアピールするレスバ敗北者あるあるじゃん
2020/04/01(水) 23:52:53.58ID:3wH25Gt90
2020/04/02(木) 01:22:19.43ID:re8Lw7xO0
なぜか解決してないとか中途半端とか言い張ってる奴いるけど
828でできてるじゃん
828でできてるじゃん
837名無しさん@お腹いっぱい。
2020/04/02(木) 01:39:14.88ID:IAb+84PG0 気軽に煽れる相手と思ったら殴り返されて引っ込み突かなくなったんで自分の願望を連呼する
っていうよくあるパターンじゃん
もうほっとけ、そいつはもう手遅れだ
っていうよくあるパターンじゃん
もうほっとけ、そいつはもう手遅れだ
2020/04/02(木) 01:44:08.10ID:M0B5RHsZ0
そのすぐ下の>829でそれじゃ解決しないって質問者がレスしてたわけだが
2020/04/02(木) 01:45:17.16ID:82LK1Wg80
2020/04/02(木) 02:00:52.94ID:M0B5RHsZ0
>822はonmessageでAhk間通信が楽だしスマートと思う
AHK側でイベント登録して通知待ち受け
MGLからsendmessageで状態訪ねられたら今のモードを返す
AHK側でイベント登録して通知待ち受け
MGLからsendmessageで状態訪ねられたら今のモードを返す
841名無しさん@お腹いっぱい。
2020/04/02(木) 13:08:05.49ID:hnMRt1ty0 >>822です。
みなさんありがとう。今ちょっと忙しいので、また試してみます。
それと、件のマウス動かすスクリプト、需要あったら公開します(コードきれいにしてくれる人いたら嬉しいなと思いつつ)
>>840
以前、onMessageのドキュメント読んだとき何もわからず放置していましたが、プロセス間で直接やり取りできる機能なのですね、これを本命に、調べてみます。それと、一度回答を見逃してしまっており、申し訳ないです。
>>839
入力内容がいろいろなところに転記されているようで何となく避けていましたが、いけるんですね。その方法でやってみます。正直、MGLのファイル間の関係が良く分かってないので、そのあたりも勉強するつもりです。
ツールチップのテキストについてですが、確かに、その通りですね。現状、とりあえずの策としてツールチップを利用しているので、条件を加えておきます。
みなさんありがとう。今ちょっと忙しいので、また試してみます。
それと、件のマウス動かすスクリプト、需要あったら公開します(コードきれいにしてくれる人いたら嬉しいなと思いつつ)
>>840
以前、onMessageのドキュメント読んだとき何もわからず放置していましたが、プロセス間で直接やり取りできる機能なのですね、これを本命に、調べてみます。それと、一度回答を見逃してしまっており、申し訳ないです。
>>839
入力内容がいろいろなところに転記されているようで何となく避けていましたが、いけるんですね。その方法でやってみます。正直、MGLのファイル間の関係が良く分かってないので、そのあたりも勉強するつもりです。
ツールチップのテキストについてですが、確かに、その通りですね。現状、とりあえずの策としてツールチップを利用しているので、条件を加えておきます。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★5 [BFU★]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- 【ぺこ専🐰】なんG 兎田ぺこら実況スレ🏡【ホロライブ▶】
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 ⬅︎これ [279254606]
- 麻生太郎「今のアメリカ政治の変化は同盟国として看過できない」 [256556981]
- 【悲報】自民党のヒゲ、外務省局長と中国高官の写真にブチギレwwwwwwwwwwwwww [834922174]
