X



AutoHotkey スレッド part28
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。 (ワッチョイ aef9-dJm7)
垢版 |
2020/04/03(金) 18:35:06.00ID:/YRSlUCD0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512

■配布元
http://ahkscript.org/download/

■前スレ
AutoHotkey スレッド part27
http://egg.5ch.net/test/read.cgi/software/1555770773/

■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/

■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
0103名無しさん@お腹いっぱい。 (ワッチョイ 038c-I6Yg)
垢版 |
2020/05/24(日) 21:00:56.86ID:+8iPQVw+0
エディットボックスに書き込む際、そのウインドウを裏に隠れた状態のまま書き込みたいのです
C ont rol Text Setを使うとウインドウが裏にいるままで書き込めるのですが、再度のEnterを入れることが出来ません
Cont ro lSen dを使うとEnterも入れられるのですが、フォーカスされて表にウインドウが出てきてしまいます
どうしたらいいでしょうか
Send Messageの WM_ IME_ KEYDOWN を使ってもフォーカスされて表にでてきてしまいます

なぜか書き込み不可能になってしまうので、半角スペースを入れてます
0106名無しさん@お腹いっぱい。 (ワッチョイ 03e5-9InA)
垢版 |
2020/05/25(月) 00:06:11.71ID:iowxTiYJ0
あと ControlSend でフォーカスされるかどうかはアプリによるのでAHKの仕様ではない
少なくともメモ帳ではバックグラウンドのまま
ControlSend, Edit1,aaaaaa{Enter},ahk_class Notepad
とかできる
0108名無しさん@お腹いっぱい。 (ワッチョイ 0e76-lu6J)
垢版 |
2020/05/25(月) 08:58:05.06ID:yLxp81xy0
最悪、フォーカスが切り替わることをタイマーで監視して、
切り替わったら元のウィンドウをアクティベーションするのはいかが
0109名無しさん@お腹いっぱい。 (ワッチョイ 038c-I6Yg)
垢版 |
2020/05/25(月) 10:53:24.27ID:7XQahtaV0
>>108
他の仕事を別ウインドウでいろいろしてるときに裏ジョブとしていろいろ計算させてその結果をそのウインドウの
テキストボックスに入れていく、というのをしてるのですよね
そのときにテキストボックスに入力する度に表に出てくるのがとても鬱陶しいのですよ
0110名無しさん@お腹いっぱい。 (ワッチョイ 03e5-9InA)
垢版 |
2020/05/25(月) 11:58:43.92ID:iowxTiYJ0
ControlSetTextはテキストの内容をセットするコマンドなので改行ではない{Enter}が入らないのは道理
ControlSendがフォーカスを奪わないで{Enter}をセットできるのは>106で書いた通り

そこから先はアプリ側の仕様なので肝心のアプリの名前を隠されたまま相談されても話は進まないと思う
0113名無しさん@お腹いっぱい。 (バッミングク MM25-YHRm)
垢版 |
2020/05/30(土) 13:11:06.06ID:rRBwy6MaM
エクセルの文字を大きくするショートカットを作ったのですが、キーおしっぱにして
連続で文字を大きくしようとすると、たまにLAltがスカしてセルに「HFG」と
入力になっちゃいます。
スカ対策はやはりSleepしかないのでしょうか?確実に実行されるようにしたいのですが、
皆様はどういった対策をとられているのでしょうか。

#IfWinActive ahk_class XLMAIN
^+.::
BlockInput On
Send,{LAlt}
Sleep 150
Send,{H}
Send,{F}
Send,{G}
BlockInput Off
return
#IfWinActive
0117名無しさん@お腹いっぱい。 (ワッチョイ 93f5-moxv)
垢版 |
2020/05/31(日) 16:23:50.01ID:JzP83ijW0
速度求めるなら自分の好みでもう少し早くしても構わないと思う
50msはかなり余裕を見ての数値なので
デフォルトだとこの値が -1 で一瞬(1ms以下?)なのでまあ10ms以上なら比較的安定するんじゃないかな
環境にもよるけど
0118名無しさん@お腹いっぱい。 (オッペケ Sr8d-Le9r)
垢版 |
2020/06/01(月) 03:57:09.41ID:Dp86aIsgr
#IfWinActive

Space Up::Send, {Space}

Space & f::Send, {Right}

↑ここまでOK----------------------------------

#IfWinActive, ahk_exe Photoshop.exe

~Space & f::Send, {Right}

↑チルダが機能しません、、---------------------

Spaceを修飾キーとして使用します。
上記の通り、前半は問題なく意図した通りに、機能しているのですが、
Photoshopなどのプログラムに切り替わったときには
チルダを入れて、Spaceそのものの機能を活かしたいのですが
上手く機能しません、、どのように切り替えればよいでしょうか?
よろしくお願い致します。
0119名無しさん@お腹いっぱい。 (ワッチョイ b958-moxv)
垢版 |
2020/06/01(月) 10:57:06.00ID:Og6eBwhk0
>>118
#IfWinActive で分けても Space & f:: の影響(スペース単独で押し下げた時は入力されず離した時に入力になってしまう)は出るからなあ
プログラムごとに切り替えたいならホットキーのスクリプトファイルを普段使い用(a.ahk)とPhotoshop専用(b.ahk)に分けて、
普段はa.ahkを起動しておき、Photoshop.exeがアクティブになった時はb.ahkを起動してa.ahkを終了
Photoshop.exeが非アクティブになったらa.ahkを起動してb.ahkを終了とかしてスクリプトを完全に分離させた方が良いんじゃね
0122名無しさん@お腹いっぱい。 (ワッチョイ 25b1-1bbd)
垢版 |
2020/06/05(金) 01:35:20.82ID:q1s2UhOK0
前スレで

>35名無しさん@お腹いっぱい。 (ワッチョイ 2373-KxX0)2019/04/26(金) 21:43:07.89ID:YRa+WZQz0>>36>>73
数週間前からWheelをからめたスクリプトが急に動かなくなったりするようになったんだけどみんなはそんなことない?
Xbutton1 & Wheel downで動かすスクリプトがあるんだけどこれが急に動かなくなったりする
そうなったらリロードしてスクリプトを読み直すしかない
Windows10のアップデートのせいかなとか思ったんだけど原因がわからず

と書かれていましたが、自分はwin8.1だけど
同じ症状(AutoHotkeyがWheel関係のボタン、中ボタン、ティルト左右、ホイール回転、を突然認識しなくなる)で悩んでました。
原因を考えると、win8.1とwin10両方で症状が出ているのでOSが原因ではない。
更に

マウスを別メーカーにする→変わらない
ドライバをメーカー製からwin標準のものに換える→変わらない
USBポートを換える→変わらない

だったのですが、別のノートPCで試したところ問題は起きなくなりました。
こうなるとマザボが原因という線が一番濃いでしょうか?

ちなみに自分のマザボはAsusuのH97-PLUSですが同じ症状の人のOS、マザボを聞いてみたいです。
0123名無しさん@お腹いっぱい。 (ワッチョイ 5da6-y8Lg)
垢版 |
2020/06/05(金) 10:38:22.40ID:IyhGXBt90
アクティブでないウィンドウを操作するために
WinActivate, ahk_class xxxxx
Send,^a
sleep 50
WinActivate, ahk_class ooooo
みたいなやり方をしているのですが、ちょっとダサい気がするので、
ControlSendで書き換えたいと思っています。どう書き換えたらいいんでしょうか?
0127名無しさん@お腹いっぱい。 (ワッチョイ 5da6-y8Lg)
垢版 |
2020/06/05(金) 21:47:57.36ID:IyhGXBt90
>>124
やっぱりそうですか。マニュアル通りに書たはずなのに上手くいかないので、
書き方が何か違っているのかと思ってました。どうもありがとうございます。
0128名無しさん@お腹いっぱい。 (ワッチョイ 25b1-1bbd)
垢版 |
2020/06/05(金) 21:56:03.83ID:q1s2UhOK0
>>126
どんなスクリプトかは関係なく単純な

WheelUp::send, a

のように1行だけのスクリプトも機能しなくなります。
Wheel関係のボタン 中ボタン、ティルト左右、ホイール回転 が全てAutoHotkeyで認識されていない状態です。

つまりAutoHotkeyのウィンドウのメニュー View>Key history and script info
で 中ボタン、ティルト左右、ホイール回転 の履歴が表示されていない状態です。

AutoHotkeyでこれら認識されなくなった時もAutoHotkey以外では問題なく機能しています。
0131名無しさん@お腹いっぱい。 (ワッチョイW 890a-NwLg)
垢版 |
2020/06/06(土) 01:35:18.48ID:qI3Jyt1W0
>>130
おそらく別ソフトがマウスフックでイベントを乗っ取っている

AHKのフックはOSの機能であるWin32APIのSetWindowsHookEx(WH_MOUSE_LL、WH_KEYBOARD_LL)
他のソフトも利用可能でフックは後から設定したものから順次実行される(途中のフックで入力を破棄すれば次のフックは実行されない)

エレコム マウスアシスタント(原因?)
https://www.elecom.co.jp/support/download/peripheral/mouse/assistant/

> マウスを別メーカーにする→変わらない
> ドライバをメーカー製からwin標準のものに換える→変わらない
> USBポートを換える→変わらない

↑のアプリを終了させずに色々テストしたのでは?
終了しても駄目ならセーフモードで確認
0132122 (テトリス 25b1-1bbd)
垢版 |
2020/06/06(土) 06:22:40.93ID:1ptPVhcy00606
>>131
原因がわかりました。
WizMouseというフォーカスされていないウィンドウでも
マウスでスクロール可能にする常駐ソフトが原因でした。

普段使っているPC(Win8.1)で症状が出て、別PC(Win10)で症状が出なかったのは、
Win10では標準でWizMouseと同じ機能が装備されているのでWizMouseをインストールしていなかったからでした。
(さらに、今調べたらWin8.1もレジストリの設定変更だけでWinMouseと同じ事が出来ました。)

以前WizMouseも疑って、WizMouseの機能を使っている時、AutoHotkeyの
Wheel関係のボタンの認識を見たら問題なかったので完全にWizMouseの線は除外していました。

しかし今回>>131さんの指摘を受けて、マウスフックを使っているソフトを探したところ、WizMouseぐらいしかなかったので
AutoHotkeyがボタンを認識しなくなったタイミングでWizMouseを終了させたところ、一発で認識が戻りました。
ありがとうございました。
0135名無しさん@お腹いっぱい。 (ワッチョイ 3358-NjyN)
垢版 |
2020/06/14(日) 13:18:25.46ID:c3a5nMdB0
>>134
64bit版AHKで64bitアプリのメモ帳のステータスバー取得できるから64bitとかは関係無いな

;メモ帳の行と列を表示
StatusBarGetText, OutputVar, 2, ahk_exe notepad.exe
MsgBox, %OutputVar%
Return

上手く行かないのは管理者権限とか個々のアプリの仕様とかが原因だろ
0137名無しさん@お腹いっぱい。 (ワッチョイ 0e76-6BNC)
垢版 |
2020/06/20(土) 02:37:11.99ID:ubMWWC0s0
タスクマネージャとかその他一部のウィンドウでホットキーが効かないことがあるのはなぜ?

例えばvk1D & k::Send, {Blind}{Down}をしてもk押下判定になっているみたい
当然、MGLのジェスチャーも無反応だし
0141名無しさん@お腹いっぱい。 (ワッチョイ 0f56-V/rO)
垢版 |
2020/06/24(水) 20:14:50.15ID:rgAPk7/l0
>>140
色々と調べたけど出来ないんですよね…
Adobe Premiere Pro.exeの時のみSHIFT+ホイールスクロールを方向キーの左右に
~Lshift & WheelUp::
IfWinActive ahk_exe Adobe Premiere Pro.exe
{
Send,{ArrowLeft}
}

#IfWinActive, Adobe Premiere Pro.exe
~Lshift & WheelUp::Send,{ArrowLeft}
~Lshift & WheelDown::Send,{ArrowRight}
では動きません ご教授いただける方いれば教えて頂きたいです
0144名無しさん@お腹いっぱい。 (ワッチョイ 0f56-V/rO)
垢版 |
2020/06/24(水) 20:50:47.68ID:rgAPk7/l0
>>142-143
ありがとうございます
SetTitleMatchMode, 2
#IfWinActive, Adobe Premiere Pro
~Lshift & WheelUp::Send,{Left}
~Lshift & WheelDown::Send,{Right}
で行けました
ただ元々のスクロールも残って送信されるようで、Leftキーの移動と同時にスクロールもされてしまうのはしょうがないんですかね…
0145名無しさん@お腹いっぱい。 (ワッチョイ 4f58-NJGG)
垢版 |
2020/06/24(水) 21:01:02.97ID:lWY1xrDw0
>>144
他の記述が余計な邪魔してんじゃないか

~Lshift & WheelUp::Send,{Left}
~Lshift & WheelDown::Send,{Right}

少なくともこれだけのスクリプトなら試した限り元のスクロールは送信されてない

ちなみに余談だけど修飾キーはコンビネーションキーにする必要ない
+WheelUp:: でOK
0147名無しさん@お腹いっぱい。 (オッペケ Sra3-L9uE)
垢版 |
2020/06/25(木) 03:55:59.04ID:vvPDn5f2r
新規タブでエクスプローラを開くコマンドって作れないですかね…。
特定のソフトが起動しているが前面に無い場合、そのソフトをアクティブにしてキーを送信…とするコマンドを作りたくて
IfWinActive explorer.exe
{
Send, ^t
return
}
IfWinExist Run explorer.exe
WinActivate
return
とかやってみたのですが出来ず、
MouseGestureL.ahkでトラックボールに割り当ててみようとしたけど出来ず…
0149名無しさん@お腹いっぱい。 (ワッチョイ 4f58-NJGG)
垢版 |
2020/06/25(木) 05:45:08.99ID:C9QzYMGy0
>IfWinExist Run explorer.exe
これ合ってるのか?
俺には全く意味分からんのだが
俺が知らないだけならスマン

explorer.exeはウィンドウ無くても常駐してるから
ahk_class で指定した方が良い気がするが

そもそもエクスプローラーのタブは俺も知らない
Setsとやらはどうやら頓挫したみたいだが>>147の環境ではCtrl+t使えてんの?
0151名無しさん@お腹いっぱい。 (オッペケ Sra3-L9uE)
垢版 |
2020/06/25(木) 14:30:34.91ID:vvPDn5f2r
>>148
使用しているのはQTTabBarというタブ化ソフトです
>>149
そうですよね…そもそもExplorer.exeはずっといるので駄目ですかね
ahk_class explorer.exe でも動作しませんし、マイコンピュータを開く
Run "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
だとタブではなく新規ウィンドウで開いてしまうので…

やはり無理でしょうか
0152名無しさん@お腹いっぱい。 (ワッチョイ 4f58-NJGG)
垢版 |
2020/06/25(木) 15:11:54.48ID:C9QzYMGy0
>>151
ahk_classはちゃんとWindow Spyで確認しな
普通にActivateとかはできる
QTTabBarでCtrl+Tが使えてるなら当然Sendコマンドだって使えるだろう
「無理でしょうか」とか言い出す前にしっかりwiki見てウィンドウ指定の方法を勉強しな
色々と書き方を間違ってるだけだから
0153名無しさん@お腹いっぱい。 (ワッチョイ 0f56-V/rO)
垢版 |
2020/06/25(木) 20:47:23.92ID:u3QjMjKW0
>>152
ありがとうございます エクスプローラのclassはCabinetWClassなんですね…
wikiも
http://tsubolog.c-brains.jp/14/12/16-100000.php
http://blog.ayakix.com/2009/07/autohotkey.html
この辺りのページも参考にしているのですが一行に出来ません
まず裏にあるエクスプローラウィンドウをアクティブにするだけも機能しません…。
#WinActivateForce
#Enter::
WinActivate, ahk_class CabinetWClass
return

本当はこの上にSend, ^ t、
起動していなければ起動…という風にもしたいのですがそもそもアクティブ化すら動かない状態なので現状詰まっています
どこかミスが分かる方いればご教授お願いしたいです
0155名無しさん@お腹いっぱい。 (ワッチョイ 0f56-V/rO)
垢版 |
2020/06/25(木) 22:36:28.18ID:u3QjMjKW0
>>154
ありがとうございます 一旦全て消して打ち直した所無事に動くことが出来ました!
自分の様な使い方がしたい人は稀だと思いますが一応
#WinActivateForce
#n::
IfWinNotExist ahk_class CabinetWClass ;存在しない時
Run, explorer.exe ;エクスプローラを起動
else ;または
IfWinActive ahk_class CabinetWClass ;エクスプローラのクラスがある時
{
Send, ^t ;ショートカットを送信
return
}
IfWinExist ahk_class CabinetWClass ;裏にある時
WinActivate ;アクティブ
return

で動きたいように動いてくれました。スレ汚し失礼しました。
0157名無しさん@お腹いっぱい。 (オッペケ Sra3-L9uE)
垢版 |
2020/06/26(金) 18:10:14.78ID:rIU3pFBBr
IMEオフってIME_SET(0)じゃない?
wikiにも書いてないしtabに割り当てたいんだけど動かない
0158名無しさん@お腹いっぱい。 (ワッチョイ 4f58-NJGG)
垢版 |
2020/06/26(金) 18:24:27.06ID:8s6kilGT0
>>157
それはahk使わなくてもIMEのプロパティでキー設定すればできるしそっちの方が確実
まあTabはそれ以外でも使うから不便になると思うがな
ちなみに余談だけど俺は英数キーをIMEオフに割りあててる
0159名無しさん@お腹いっぱい。 (オッペケ Sra3-L9uE)
垢版 |
2020/06/26(金) 18:53:11.89ID:rIU3pFBBr
>>158
普段はtabキー使うから、IMEオフが必要なソフトでのみtabをIMEオフにしたかったんだよね ahkならソフトでの指定が出来るから
IMEオフはIME_SET(0)でいいのかな
0162名無しさん@お腹いっぱい。 (ワッチョイ 7f76-V/rO)
垢版 |
2020/06/28(日) 06:10:43.18ID:JSt+EfPH0
AHKの便利さを知っている人でも満足できるMac対応代替アプリ知りたい
おすすめありますか(別言語可)
0163名無しさん@お腹いっぱい。 (ワッチョイ 0f96-FKcX)
垢版 |
2020/06/28(日) 21:07:35.68ID:F3gv9FGB0
ALT+UでF7変換にしたく、LAlt&U::Send,{F7}と打ったのですが、
エラー:lnvalid hotkye が出ました。
どうすれば修正できますか?
0165名無しさん@お腹いっぱい。 (ワッチョイ 0f96-FKcX)
垢版 |
2020/06/28(日) 21:57:01.54ID:F3gv9FGB0
>>164
*!U::Send,{F7}
と打ったら出来ました ありがとうございます。
0166名無しさん@お腹いっぱい。 (ワッチョイ 0fb1-NJGG)
垢版 |
2020/06/28(日) 22:51:48.38ID:bvSPqNOb0
>>155
win7の情報だけどQTTabBarはWindowsの仕様なのかahk_classが2種類存在する。
おそらくexplorerの起動方法によって変わると思われる。
ahk_class CabinetWClass
で反応しないときは
ahk_class ExploreWClass

Win10では2種類存在するか未確認だけど、スクリプトを未修正で使ってる
0168名無しさん@お腹いっぱい。 (ワッチョイW 0f5c-mvWe)
垢版 |
2020/06/29(月) 09:50:02.24ID:DhcDIaKH0
「右コントロールと下矢印キーの同時押し」で「PgDnの押下」を行いたいです。

RCtrl & Down::PgDn
という記述だとCtrlの押しっぱなしが検知されて、
実行結果が「Ctrl+PgDn」になってしまいます。
実行結果を「PgDn」だけにする方法はないでしょうか?
0176名無しさん@お腹いっぱい。 (ワッチョイ 1edc-w4Iu)
垢版 |
2020/07/05(日) 15:58:54.49ID:BwrFni8y0
LinuxのOpenboxってウィンドウマネージャー使ってたらウィンドウ操作がすごく簡単で真似したくなったんですが、Win10で再現しようとしたら……orz
取り敢えずアクティブウィンドウの位置をウィンドウの中央座標と画面の中央座標が一致するように移動したいんですが、
座標の始点を画面左上から画面中央や画面右下などに自由に変更する方法ありませんか?

一応解像度からタスクバー分引いて数字出してWinMoveで数字決め打ちでなら出来たんですが、
A_ScreenWidthとか変数使うとうまくいかないところが出たりでよくわかりません……
ちなみに再現したいOpenboxの操作は↓な感じです
https://pastebin.com/bgAai2Dk
あとタイトルバー消したり出したりしたいんですが、これはahkで一から作ったウィンドウでないと出来ませんよね?
環境はWin10 Home x64 1909, AHK_U64 v1.1.32.00です。よろしくおねがいしますm(__)m
0178名無しさん@お腹いっぱい。 (ワッチョイ 1edc-w4Iu)
垢版 |
2020/07/05(日) 18:53:11.72ID:BwrFni8y0
>>177
例えば始点を右下(0,0)としたとき、左上がFHDなら(1920,1080)になるような……
まぁタスクバーが下にあるとしたら引くと1080にはなりませんが
openbox的には右端は<x> -0 </x>なわけですが、こういう指定ができるともっと楽ですね

計算ができないのは変数込の式の書き方がわかってないからかと……人のブログ見た限りでは
WinMove, A,, (A_ScreenWidth - ActiveWindowWidth)
これで画面右端に移動かと思ったら動かなかったです
WinMove, A,, (A_ScreenWidth/4), (A_ScreenHeight/4), (A_ScreenWidth/2), (A_ScreenHeight/2)
これで画面のW/2,H/2というサイズで画面中央に移動ができましたが
0181名無しさん@お腹いっぱい。 (ワッチョイ 6bb1-3v0K)
垢版 |
2020/07/05(日) 21:22:42.79ID:dLHUmlTf0
>>178
>始点を右下(0,0)としたとき、左上がFHDなら(1920,1080)になるような……
そういう関数作ればいいと思う

>WinMove, A,, (A_ScreenWidth - ActiveWindowWidth)
いきなり ActiveWindowWidth という未知の変数出てきたからエラー出て動かないんじゃないのか?
WinGetActiveStats, , ActiveWindowWidth とか WinGetPos, , , ActiveWindowWidth, , A で
アクティブウインドウの幅取得すれば動くと思う

式の場合は%付けない、文字列の場合は%付けるんだっけ?未だによく間違える(´・ω・`)
0182名無しさん@お腹いっぱい。 (ワッチョイW 1edc-lrAq)
垢版 |
2020/07/05(日) 22:09:20.66ID:BwrFni8y0
>>181
レスどもです

関数……なんだろう……

あと未知の変数ですが実際はその上の行でWinGetPosして定義してあるものです、後出しですみません……

^+!h::
  WinGetPos, ActWinX, ActWinY, ActWinW, ActWinH
  WinMove, A,, 0, %ActWinY%
return

^+!j::
  WinGetPos, ActWinX, ActWinY, ActWinW, ActWinH
  WinMove, A,,, (A_ScreenHeight - ActWinH)
return

これで^+!hで左端に移動しますが、^+!jでは下端に行きそうですが何も起こりません

パスをコピペしてからエクスプローラーで開く時はこれ↓なのは知ってるんですが
Run, explorer.exe "%Clipboard%"
あとRegExReplace(Clipboard, "foo","bai")
0185名無しさん@お腹いっぱい。 (ワッチョイ 8f58-VQSO)
垢版 |
2020/07/06(月) 00:04:48.67ID:cb7LpR4N0
>>182

^+!j::
WinGetPos, ActWinX, ActWinY, ActWinW, ActWinH, A
WinMove, A,,, % A_ScreenHeight - ActWinH
Return

式の場合はこう
あとWinGetPosはタイトル入れてないから>>182だとそもそも位置とサイズ取得すら出来てない
msgboxとかを使ってちゃんと一つずつ動作確認する癖付けた方がいい

それと質問するときは最初からそのスクリプト貼れ
小出しにするから無駄に長引く
0186名無しさん@お腹いっぱい。 (ワッチョイW 1edc-lrAq)
垢版 |
2020/07/06(月) 08:02:38.57ID:WTsF5wfU0
こんな糞ゴミ質問者に丁寧に接してくださってありがとうございます
ほんとに、リファレンスは"ちゃんと"読まないといけませんね……
も少しマシな質問出来るようになってから出直してきます、ありがとうございましたm(__)m
0194名無しさん@お腹いっぱい。 (ワッチョイ 4b76-/sw6)
垢版 |
2020/07/14(火) 00:55:13.37ID:EP9LjcCP0
範囲選択してスクリーンショットするアプリを使用しています。
左クリックのドラッグで範囲選択をします。

実現したいことは、「トリガー押下→範囲選択モードに移行(アプリ側でPrscに当てています)
→隣のモニタにカーソルを移動→範囲選択が終わり次第、トリガー押下時の座標にカーソルを戻す」
です

今回の質問は、下記スクリプト内の「条件式」のアイデアについてです。

試したことは、
・KeyWaitでLButtonのDownとUpを検出→LButtonの判定がKeyWaitに吸収されて範囲選択できない
・WhileとGetKeyStateの入れ子をうまいこと組み合わせる→よくわからないけど失敗

範囲選択モードになったことを示すものはないとして、マウスの挙動、つまり「ドラッグ選択が終わった」ことを認識できるような
条件式のアイデアを頂ければと存じます。
Send, {PrintScreen}

;初期座標記録&隣のモニタにカーソル移動
MouseGetPos, oldMouseX, oldMouseY
MouseMove, (oldMouseX < 0 ? A_ScreenWidth : -A_ScreenWidth), 0, 0, R

;範囲選択が終わるまで待機
While (1) {
;条件式
break
}

;元の座標に戻る
MouseMove, oldMouseX, oldMouseY, 0
0195名無しさん@お腹いっぱい。 (ワッチョイ cd58-ucCN)
垢版 |
2020/07/14(火) 01:48:48.79ID:6ncGE/jk0
説明が分かりにくいんだけど

・トリガー押下→範囲選択モードに移行→隣のモニタにカーソルを移動

トリガーが何なのか分からんがひとまずここまでが一つの動作で、範囲選択自体は手動でマウス動かしてやるんだよな?
そして左ドラッグを離したら「トリガー押下時の座標に自動的にカーソルを戻す」ってことでしょ?
それならトリガー押下したら上記の操作してフラグを Flag=1 とか適当な変数付けといてReturn

~LButton up:: でFlag=1の場合は元の座標に戻ってFlag=0にリセットする
Flag=0の場合(範囲選択モードじゃない時)ならReturnして普通に左ボタン離すだけ

みたいなやり方はどうよ?
待機とかするよりもシンプルだと思うが
0196名無しさん@お腹いっぱい。 (ワッチョイW e3e5-QGnr)
垢版 |
2020/07/14(火) 09:15:26.11ID:1et+KNUO0
> ・WhileとGetKeyStateの入れ子をうまいこと組み合わせる→よくわからないけど失敗
その失敗したコード部分を貼らないと

まあループで待つより Hotkey,~LbuttonやSettimer仕掛けて一旦抜けて
フェイズ処理の方が動作の確実性は上がると思う
1シーケンスで終わらないから一見すると面倒に見えるかもだが急がば廻れ

> 範囲選択モードになったことを示すものはないとして
ImageSearchは検討してみた?
なんのアプリ使ってんだが分からんが操作する人間が視覚的に判るような範囲選択オブジェクトは描画されてるわけでしょ
ドラッグ開始の「 部分が透明度低ければピクセル一致で引っ掛けられるかも
0198名無しさん@お腹いっぱい。 (テテンテンテン MM0e-YsWi)
垢版 |
2020/07/15(水) 20:36:23.68ID:jMEGxsKVM
https://kostrivia.com/5592.html
上のサイトを参考にwindowsのIMEの設定で無変換キーをIMEオフ、変換キーをIMEオンにしてるんだけど、その場合キー名はそれぞれ何になるんだろう?

http://ahkwiki.net/KeyList#Key_ZenHan
見ても載ってなかった
0200名無しさん@お腹いっぱい。 (ワッチョイ 25f1-YsWi)
垢版 |
2020/07/15(水) 22:02:27.10ID:LKXFRDtu0
>>198
昔のバージョンでは無変換キーは vk1Dsc07B で指定してた
今は無変換キーは vk1D または sc07B のどちらかで指定する仕様に変わった
変換キーや他のキーコードも同じ様に変わった


AHKの仕様が変わってからもうだいぶ経つしwikiのキーリストのページだけでも直した方がいいと思うけど

警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。 必要であれば文章をコピー&ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
データベースをロックした管理者による説明は以下の通りです: ただいまメンテナンス/大規模更新に向けてのローカル作業中です。

これって今だけ?しばらくしたら誰でも編集できるようになるんかね?
■ このスレッドは過去ログ倉庫に格納されています

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