MouseGestureL.ahkを流行らせるスレpart4
■ このスレッドは過去ログ倉庫に格納されています
MouseGestureL.ahkとはAutoHotkey_L上で動作する凡用マウスジェスチャーソフトです。
作者様のユーザーインターフェース大幅な改良にともない設置も簡単になりました。
基本的な用途であればスクリプトを意識せず全てのWindowsソフトでジェスチャー操作が可能になります。
使い方について語ったり、スクリプトについての質問・解答・提案等を書き込みましょう。
配布元 公式:
http://hp.vector.co.jp/authors/VA018351/mglahk.html
Autohotkey関連ファイル専用アップローダー:
http://ux.getuploader.com/autohotkeyl/
前スレ:
https://egg.5ch.net/test/read.cgi/software/1606403442/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured マウスジェスチャーツール総合スレpart16
https://egg.5ch.net/test/read.cgi/software/1553572592/
派生元のスレです。総合スレでMouseGestureL の長文スクリプト貼りは自重
AutoHotkey スレッド part28 (2015/01/28-)
https://egg.5ch.net/test/read.cgi/software/1585906506/
こちらが隔離スレなんだから、MouseGestureLの話題をAutoHotkeyスレでやるのはやめましょう。
とくにMG_Hole(), MG_X, MG_... のようなMouseGestureLの内部関数や内部変数をAutoHotkeyスレで出すのは自重
----
《派生スレが立った経緯・・・》
上記のようなことが問題となりはじめたので、自然発生的に2013/11/13(水) に立ちました。 右クリックしたらアクティブ欄に「abcdefg」と入力させたいのですがどうすれば良いですか?
send,a
send,b
…
send,g
とやれば動くには動きますが、たまに誤動作するので、一気に送りたいです 右クリック、→←、のジェスチャーをすると、Ctrlキーが押しっぱなしの状態になるのですが、どこをイジればCtrlが押しっぱなしにならないようにできるでしょうか? >>10
;Ctrl+Spaceを押す
Send, ^{Space}
これだけです。このジェスチャーするたび毎回Ctrlキーが押しっぱなしなるってわけじゃないんですけども・・ >>10
細かい動作で、右クリック → ← をやるとCtrlキー押しっぱなしにはならないことが多いです。
少し大きめの動作で、右クリック → ← をやるとCtrlキー押しっぱなしになることが多いです。
ジェスチャー認識処理の間隔は「20」にしてます。
通常ストロークは「10」
ジェスチャーのタイムアウト判定を開始するカーソル移動量は「10」
ボタンを押している間に認識が打ち切られるまでの時間は「0」 参考になるかわからんけどそういう時は分解して書くようにしてるな
こんな感じで
Send, {Control Down}
Send, {Space Down}
Send, {Space Up}
Send, {Control Up}
で押しっぱなしになるってことはControl Upがおかしいから
その前にSleepとか判定とかいれてタイミングを変えてやると解決するかも >>13
ありがとうございます
>>14
ありがとうございます、何かあったら試してみます これってスワイプみたいなアクションをさせることは出来ましたっけ?
具体的には、ある座標でクリックして、そのまま離さず、次の座標で放す動作です。 検索ソフトのEverythingを使ってる人多いと思うので聞きたいけど
Everything上でマウスジェスチャーできないんだけど、できる人いる? MouseGestureL.ahk Ver. 1.40 (2021/06/22) 10万人死亡の東京大空襲で“多くの朝鮮人”が犠牲になっていたことをご存知ですか?
https://gendai.media/articles/-/85692 色々調べて自分の望む動作が出来たと思ったら、うまく機能しない所が出てきました。それで二つほど聞きたいです。
これがうまく機能している物で、非アクティブのウインドウ上でジェスチャーを開始すると、アクティブにしてから本命の命令を実行してカーソルをジェスチャー開始位置へ戻す。
;現在のタブを閉じる(CTRL + w)
if (MG_Defer()) {
MG_Move()
Sleep,50
MG_WinActivate()
Send, ^w
}
右ボタン+マウスホイール下回転でタブを連続で切り替える・・・これがうまく動作しない。ホイールを回し続けても一つ切り替わるだけ。
;タブを順送りで表示を切り替える(CTRL + TAB)
if (MG_Defer()) {
MG_Move()
Sleep,50
MG_WinActivate()
Send, ^{Tab}
}
解決方法分かる方いませんか。
あと、対象のウインドウが既にアクティブなら、アクティブ化の命令を実行しないでショートカットキーを送り、非アクティブなら、アクティブ化の命令を実行してからショートカットキーを送る命令を教えてください。
上の命令だと操作のたびに必ずアクティブ化を実行するため他に問題が出そうなので。 >>25
自分の設定はもっとシンプル
認識設定の[アクティブウインドウをターゲットにする]のチェックを外す
デフォで入ってた?か覚えがないけど、ヘルプの設定画面にあるように RB_ でアクティブ化
これでタブを閉じるのアクションスクリプト欄は Send, ^w だけでいいし、
タブの切替は、Send,^{Tab} と Send,^+{Tab} だけで問題は起きてない >>26
説明が下手ですまん。>>26が言っている標準的な方法は最初のころ使っていたんだ。今は自分が使いやすいようにカスタマイズしている最中で、上で書いたように必要な命令を加えて動作を変えている。
そこでうまく機能しない部分があって困っているんです。
あと、最後に書いた ”対象のウインドウが既にアクティブなら、アクティブ化の命令を実行しないでショートカットキーを送り、非アクティブなら、アクティブ化の命令を実行してからショートカットキーを送る” の方法がわかれば知りたいです。 >>25 です。
(CTRL + TAB) でのタブの切り替えがうまくいかない件は自己解決しました。
先頭の命令が原因で、ホイールを回し続ける限り (CTRL + TAB) が実行されず、操作を停止した時に (CTRL + TAB) が実行されて終了する為、一度だけしかタブが切り替わらなかった。解釈が間違っているかもしれないが修正後は機能しています。
こっちの、(対象のウインドウが既にアクティブなら、アクティブ化の命令を実行しないでショートカットキーを送り、非アクティブなら、アクティブ化の命令を実行してからショートカットキーを送る命令) の方はどなたかお願い致します。自分では多分無理っぽい。 >>25です。連投ですまん。もう一つ聞きたいことがあります。
Quick Access Popup という ポップアップメニューを表示するソフトを、Quick Access Popup 側で設定したホットキーを使ってMouseGestureLで表示させようとすると表示されません。
おそらく一瞬表示されて閉じてしまっていると思われます。こんな症状の対処方法、どなたかご存じありませんか。 >>25です。一通り設定し終えて、しばらく使ってみました。概ね、望み通りに設定できているのですが、解決できない物が有ります。
これです。
IfWinActive, ahk_id %MG_HWND%
{
ControlFocus,,ahk_id %MG_HCTL%
MG_SendWheel("U", 1)
} else {
WinActivate
ControlFocus,,ahk_id %MG_HCTL%
}
これをホイールに割り当てて対象が非アクティブなら、アクティブ化とフォーカスだけでホイールの回転はしない。
アクティブになった後はフォーカスとホイールの回転が発生。
一見うまく機能しているようなかんじだったのですが、プルダウンメニューの上でホイールを回すとプルダウンメニューが閉じてしまいます。”WinActivate” の部分を削るとプルダウンメニューが消えることはありませんでした。
解決方法をご存じの方いらっしゃいませんか? リアルタイムストラテジー(RTS)ゲームをやってると、
マウス中央ボタンを押し続けてる限りカメラを自由に動かせるのですが、
この操作を右クリックに代替させるにはどのように記述したらいいですか?
マウスの中央ボタンが地味に固くて指が疲れちゃいまして・・・
ジェスチャーは「RB_」にし、アクションスクリプトの欄に
;中央ボタンを押す
MG_Click("MB", "D")
とサンプルから持ってきたのですが、これだとマウス右クリックを離した後も
ずっと中央ボタンが押されてる感じなので上手くいかず・・・
右クリックをそっくりそのまま中央ボタンと同じ機能にしたいと思い質問した次第です
最近この MouseGestureL.ahk っていうのを導入しました firefox上で、Tabtter Freeを開いてて、ある領域だけ
違うアクションを割り当てたいのですが
うまくいきません。
YouTubeのほうは、。うまく作動するのですが・・・
Tabtter Free
https://i.imgur.com/gm0vOnc.png
YouTube
https://i.imgur.com/RFg6nLf.png 未定義動作の場合に本来のマウス動作を禁止にしてる状態で、RB_に元々の右クリックとして動作させるには、どうすれば良いの? プラグインの「TaskbarExtension.ahk」の以下の1~3の機能ってWin10で今も動作してますか?
1.スタートボタン上のホイール回転で全て最小化/すべて元に戻す
2.タスクバーボタン上のホイール回転で最小化/元に戻す
3.タスクバーボタンを中央クリックで閉じる
4.通知領域上のホイール回転で音量調節
5.通知領域を中央クリックでミュートON/OFF
自分の場合はPC2台で確認しところ動作しませんでした(4と5は正常動作しました)
1~3はかざぐるマウスで重宝してた機能なので何とか動かしたいのですが解決策をご存じの方どうか教えてください CapsLock を押して起動しているアプリを呼び出したいのですが無理ですかね? WindowsキーとPで登録したいんだけど、アクションスプリクトを教えて
うまく動作しない 「AutoHotkey」のv2には対応しているのだろうか? edgeでだけ、ブックマークバー上のフォルダ内のアイテムに対して右クリックが効かなくなりました
edgeのアップデートの影響でしょうか
こちらで紹介されてる対策は施しており、以前は右クリック効いていました
https://qiita.com/ryoheiszk/items/81fa857c7b2b1386c5a3
ど素人でも分かる対処法ありましたらお願いします 右ダブルクリックをジェスチャー登録したいのだけど、うまくいきません
RB__RB_ で合ってます? >>46
ヘルプを「ダブルクリック」で検索すれば分かると思うよ 分かってて書いてるんだが?
ヘルプを少し見れば分かるようなことは自力で解決できるようにしないとな
というか、よく分からないって決めつけられるな。その思い込みの激しさを直すべきだわ だいたい
何か(〇〇だから解決策的な何か)を無いか?とか質問をする前にIPや!chkBBx:UA後の情報
を開示しろとまでは言わないが、自己側の情報の詳細が無いのは麻雀で言うなら
自分側の手牌の揃い方が不明、分からないのに有利な上がり牌はどれ?と聞くみたいなモンかと
とりま役満狙っとけ。みたいな返答もやむ無しかって思う 俺はな!!(笑)ww
一応例えに麻雀を出した意味を説明すると「最適解の見解の相違」までは面倒みてられん
て事。
麻雀の展開次第では点数安めでも早上がりするのが良い場合もあるし
普段なら悪手も奇策的にアリ、罰符払いな反則を犯してでも、最終的に勝ちたい相手に
点差で勝てりゃいい、みたいな話になるとな
だからできるだけ「現状を正確に」記さないと、的確なアドバイスなんて望めない
白と撥が既にポンされて出てるのに、堂々と「中」を捨てていけ、みたいな話になりかねん
、とな(誰が見ても敵側は大三元狙いだろ…て言う状況) 右クリックを長押し(ジェスチャーなし)して使いたいアプリがあるんだけど、MousGestureLを起動してると
まったく機能しないんだけど、どこの設定弄れば直せる? 右クリック + ? の操作をやりたいときに、ちょっとした誤操作で
←?の操作になってしまうのですが、これを甘く判定してもらうような設定は可能でしょうか? ?になってしまってますけどm,左斜め上の矢印です。 すみません、教えてください。
ダブルクリックをジェスチャーとして登録する方法を。 中クリックを押し続け、放すというジェスチャーで
左クリックを押し続け、放すという操作を行いたいです。
どのようにアクションスクリプトを書けばいいのか教えてください。 ↑これを実現するには中ボタンを押した時と放した時に別のアクションを割り当てる必要があると思いますが、そのやり方がわからないのです やりたいことは中クリックを押しながらマウスを動かして範囲選択です >>61-63
こういうのはMGLの範疇じゃないような気もするなあ
MGL自体AutoHotkeyで作られてるからahkスクリプト書く形で実現はできると思うが、MGLに組み込めるかは分からない
…というか"右ボタン"で確かめてみた(※中ボタン機能の無いトラックボール使用のため)けど、中ボタンで動くか不明
;右ボタン用
;※安全対策してない検証用なのでこのままコピペ使用は危険!! また、ボタン操作に支障きたさないウインドウにのみ適用させるなどが必要
~RButton::
MouseGetPos, pos_x1, pos_y1
KeyWait, RButton
MouseGetPos, pos_x2, pos_y2
MouseClickDrag, LEFT, pos_x1, pos_y1, pos_x2, pos_y2, 0
return >>65
どうもありがとうございます。
まずはautohotokeyの勉強から始めてみます >>65
それにしてもひどく丁寧なご助言をしていただきまして、どうもありがとうございます。
重ねて御礼申し上げます。 >>67
俺が冷たくしたから教えてくれたということを忘れないように。 RB__にアクションを割り当てて、RB_WU_にもアクションを割り当てるとRB_WU_のジェスチャが終わった時にRB__のアクションも実行されてしまいます。
この場合にRB__のアクションを実行させない方法がありましたら教えてください。
とりあえずRB_WU__のアクションを何も行わない設定にしてRB_WU__を追加してみましたけど駄目でした。 すみません、以下の方法でできました。
if((MG_Executed=1)&&(!MG_Timer(-500))){;クリックが1回のみだった場合の動作
} ボタンを押し続け、指定時間が経過したらMG_Whileなどでアクションを繰り返し実行というのをやりたいです。
方法があれば教えてください。 >>71ですが、
https://egg.5ch.net/test/read.cgi/software/1644313099/269
を参考にして実現できました。
以下、ジェスチャーをRB_とした場合のアクションスクリプトです(mousegesturelではなぜかGetKeyState()が正しく動作しなかったため代わりにGetKeyStateを使いました)。
button = rbutton
time = 1000
key = {vk62}
interval = 40
GetKeyState,r,%button%,p
while (r="d") {
if (A_TimeSinceThisHotkey >= time) {
Send, %key%
sleep %interval%
GetKeyState,r,%button%,p
}
} スクリプトが間違ってました。正しくは以下です。
button = rbutton
time = 1000
key = {vk62}
interval = 40
GetKeyState,r,%button%,p
while (r="d") {
if (A_TimeSinceThisHotkey >= time) {
Send, %key%
sleep %interval%
}
GetKeyState,r,%button%,p
} クズすぎワロタ
48 (ウソ800 eb73-kVuH [113.158.41.49]) sage 2023/04/01(土) 01:47:45.73 ID:8kJpejuu0USO
わからないんだったら黙ってろ
51 (ワッチョイ eb73-kVuH [113.158.41.49]) sage 2023/04/02(日) 00:44:36.00 ID:1PMdniH/0
環境書いたところで答えれないくせに
60 (ワッチョイW 3e73-8RqQ [113.158.41.49]) sage 2023/07/01(土) 10:19:38.40 ID:KdNrVhcr0
>>58 むり
64 (ワッチョイW 3e73-8RqQ [113.158.41.49]) sage 2023/07/03(月) 13:48:24.40 ID:867Og5XD0
それは不可能
7264 (ワッチョイW 0b73-I4Il [113.158.41.49]) sage 2023/07/14(金) 20:01:29.15 ID:sj0HToqo0
そりゃ無理だ >>75
こいつはフォトガイジ
長年スレを私物化した挙句スレを潰した張本人
自分の望んだ回答が得られないとすぐ悪態をつく
呆れた住人が見放して離れていくと自らスレ立て
自演で自問自答しては住人がいるように見せかけている https://i.imgur.com/hppsIYx.png
113.158.41.49
>>38,43,48,51,53,55-57,60,64,72,75 縦スクロールバーをターゲットにしてアクションさせたいのですが、
ターゲットをカスタム条件式 → ウィンドウの部位 → 縦スクロールバーで出てきた
「MG_HitTest()="VScroll"」を設定しても、アクションが発動してくれません。
対処方法があれば教えて下さい。 ターゲットがアクティブの時のみ動作させるにはどうすれば良いですか?
例えばFirefoxがアクティブ時のみ動作させるには
該当するターゲットのジェスチャのアクションスクリプトに
#IfWinActive ahk_exe firefox.exe
;実行させる動作
return
#IfWinActive
と記述しましたが、
アクティブ、非アクティブに関わらず動作してしまいます、、 >>82
基本的にトリガーを押した時点でマウス下のウィンドウがアクティブになるのでは?
認識設定の「アクティブウィンドウをターゲットにする」も目的と違う感じだけど
そちらの挙動に自分を合わせるか… >>82
そうじゃなく↓じゃないのか?(スマン、未検証)
IfWinActive, ahk_exe firefox.exe
{
;実行させる動作
} 「右ボタンを押しながらホイール下」「右ボタンを押しながら中クリック」を発行するにはどう書いたら良いのですか
トリガー側の記述はよく見るんですがたどりつけません >>85
「右ボタンを押しながらホイール」でヘルプを検索すれば例付きで出てくる
↑が分かれば「右ボタンを押しながら中クリック」も自然と分かるはず すみません、ヘルプは真っ先に検索してますがわかりません
何か入力して「右ボタンを押しながらホイールがまわったことになる」設定例どこでしょう? あれ、ジェスチャーが「右ボタンを押しながらホイール下」、「右ボタンを押しながら中クリック」ってことじゃなくアクションがってことだったのか(文盲だた)
すまん、それだったらよく分からんけど↓だとどうだろ
確認方法が分からないので動かないかも・・・その時は指揮者の登場を待ってください
send, {RButton down}
send, {WheelUp}
send, {RButton up} >>88
無事動きました
ありがとうございます
遅くなってすみません MouseGestureLの設定画面を表示するショートカットキーはありますでしょうか? >>91
探しても無いなら試しに以下を…
拡張スクリプト(MG_User.ahk) の ユーザー定義サブルーチン に以下のように書けば一応設定画面出るけど、
設定変更してそれが反映されるかまでは確認してないのでまともに動かない時はスマン
^+!a::MG_Edit() ;例:ctrl+shift+alt+a 押下で設定画面を出す 〇〇キーを押している間はジェスチャー無効、みたいなことってできますか >>93
拡張スクリプトのユーザー定義サブルーチンに以下を書いて試したら動いたが、
他環境でも動くかは保証できないし不具合起こる可能性もあるので自己責任でどうぞ
〇〇キー::
MG_Disable() ;開始トリガ無効化
KeyWait, ○○ ;〇〇キーがアップするまで待つ
MG_Enable() ;開始トリガの有効化
return Chromeのブックマークの上だけジェスチャー禁止ってできないんですかね マウ筋から引っ越しをしているのですが、
マウ筋で言う「タイプ」ってどこで取得すれば良いのですか?
例えばエクセルのシート見だし部分をマウススクロールした時、次のシートに移動をしたいのですが、
マウ筋だと「タイプ:タブ」で取得出来たのですが、MGLだと分かりません、、
https://i.imgur.com/yKUrspc.png マウ筋ってそんなのあるんだ
こっちはない気がするなあ
おそらくショートカットを割り当てないとできないと思う >>98
エクセルなら「Ctrl+PgUP」「Ctrl+PgDn」のショートカットでタブの切替は出来ますが、
「タイプ」部位の指定が出来ません … >>99
どっかで拾ってきた画像だろ?
マウ筋ではなくマウ筋Liteの方だしExcelもバージョンが古いからこそできた技だな
MGLでやるにしろ他のでやるにしろ
最近(でもないけど)のリボンなUIの場合は直で判別できないから
ざっくりとしたクラスやコントロールに加えて座標や色などで判別するしかないよ >>99
「タイプ」って何のことかよく分からないが、もしかして「コントロールクラス」のことかなあ?
説明下手なんでHELP開いて「コントロールクラス」で検索して説明読んで設定してみれば?
エクセルってコントロールクラス取得できるのか知らんけどね あ、>>100で同じような事言われてたか・・・めくらだった(´Д`;)ヾ マウ筋Liteはシェアなのでスルーしてたんだけど
試用できたので実際に確認したらちゃんと判別できてるわ
スマン
できるものだと思って調べてみるとすぐ見つかるもんで
マウ筋Liteのタイプに相当するものはRoleってやつだね
oleacc.dllのGetRoleTextでいける
Acc (MSAA) - Text Without Needing Cursor Position? - AutoHotkey Community
https://www.autohotkey.com/boards/viewtopic.php?t=27563
https://github.com/Drugoy/Autohotkey-scripts-.ahk/blob/master/Libraries/Acc.ahk
https://gist.github.com/toagit/54f3c655c3c300f1f1b8 2つのウィンドウが重なっているときに、下の方のウィンドウに向かって
MG_WinActivate()
WinMinimize
というジェスチャーをしてるんですが、何故か上の方のウィンドウが最小化してしまいます
何が間違ってるんでしょうか >>104の設定がどうなってるのかエスパーするしかないけど、「アクティブウインドウをターゲットにする」がオンになってるんじゃねーの?
または、最小化するのに一々アクティブにする必要ないんだから WinMinimize だけにして確かめるとか
あとはー・・・・・分からん 角度とか入力厳密さの調整って可能?
右クリ↓↑というジェスチャーと、右クリ↑←とか結構誤爆しちゃってめんどくさい
自分が悪いっちゃ悪いのだが >>106
>右クリ↓↑というジェスチャーと、右クリ↑←とか結構誤爆
一回目の動作方向が下方向なのに上方向と誤認識されるなど通常あり得ないだろ
使ってるマウスぶっ壊れてんだろ? すみません。質問です…!
MouseGestureL1.40で、「判定される最小移動距離」を5とか10とかものすごく短くしても、それでも判定開始となる距離がそれなりに長く必要になって、それ以上縮められないのです。
1.30の場合そんなことはなかったのですが…。
これってどこの設定がおかしいのでしょう…? すみません。質問です…!
MouseGestureL1.40で、「判定される最小移動距離」を5とか10とかものすごく短くしても、それでも判定開始となる距離がそれなりに長く必要になって、それ以上縮められないのです。
1.30の場合そんなことはなかったのですが…。
これってどこの設定がおかしいのでしょう…? ver1.40の設定画面に「判定される最小移動距離」なんていう項目無いんだが・・・ ■ このスレッドは過去ログ倉庫に格納されています