AutoHotkey スレッド part28
■ このスレッドは過去ログ倉庫に格納されています
!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 >>99
Width * .5 は分かりにくいので直したほうがいい
Width / 2
Width * 0.5 >>100
>>101
細かい部分までありがとうございます!!
早速使わせていただきます!
半年くらい悩んでたので、本気で助かりました!! エディットボックスに書き込む際、そのウインドウを裏に隠れた状態のまま書き込みたいのです
C ont rol Text Setを使うとウインドウが裏にいるままで書き込めるのですが、再度のEnterを入れることが出来ません
Cont ro lSen dを使うとEnterも入れられるのですが、フォーカスされて表にウインドウが出てきてしまいます
どうしたらいいでしょうか
Send Messageの WM_ IME_ KEYDOWN を使ってもフォーカスされて表にでてきてしまいます
なぜか書き込み不可能になってしまうので、半角スペースを入れてます Enterというのが改行のことなら `r`n で行ける
text := "aiueo`r`n"
ControlSetText, Edit1,%text%,ahk_class Notepad あと ControlSend でフォーカスされるかどうかはアプリによるのでAHKの仕様ではない
少なくともメモ帳ではバックグラウンドのまま
ControlSend, Edit1,aaaaaa{Enter},ahk_class Notepad
とかできる >>105
改行ではないです。Enterです
'r'nでは文字通り改行になり、複数行の入力になってしまってそのエディットボックスの入力完了の合図にはなりません 最悪、フォーカスが切り替わることをタイマーで監視して、
切り替わったら元のウィンドウをアクティベーションするのはいかが >>108
他の仕事を別ウインドウでいろいろしてるときに裏ジョブとしていろいろ計算させてその結果をそのウインドウの
テキストボックスに入れていく、というのをしてるのですよね
そのときにテキストボックスに入力する度に表に出てくるのがとても鬱陶しいのですよ ControlSetTextはテキストの内容をセットするコマンドなので改行ではない{Enter}が入らないのは道理
ControlSendがフォーカスを奪わないで{Enter}をセットできるのは>106で書いた通り
そこから先はアプリ側の仕様なので肝心のアプリの名前を隠されたまま相談されても話は進まないと思う >>110
ということは、エディットボックスにEnterを裏のまま入力することは出来ないケースはある
ということですね
これは残念です >>111
ウィンドウが出てしまうことは諦めて、いっそのこと
ハナからウィンドウサイズを可能な限り小さくしておくか
サイズ変更できないアプリならシェードしておいて作業してみては エクセルの文字を大きくするショートカットを作ったのですが、キーおしっぱにして
連続で文字を大きくしようとすると、たまにLAltがスカしてセルに「HFG」と
入力になっちゃいます。
スカ対策はやはりSleepしかないのでしょうか?確実に実行されるようにしたいのですが、
皆様はどういった対策をとられているのでしょうか。
#IfWinActive ahk_class XLMAIN
^+.::
BlockInput On
Send,{LAlt}
Sleep 150
Send,{H}
Send,{F}
Send,{G}
BlockInput Off
return
#IfWinActive 俺はスカ対策で
SetKeyDelay, , 50
って最初に入れてる
押してる間の時間を50msにすることでSendのスカしにくくなる >>114
おお、今まで動作を早くするためのもの?程度の認識の関数でしたが、
その設定で使ってみたらかなり安定度あがりました。
回答ありがとうございます。 同じく、横からですがありがとう 若干モサッと動くけど手戻りすること考えたらストレスない 速度求めるなら自分の好みでもう少し早くしても構わないと思う
50msはかなり余裕を見ての数値なので
デフォルトだとこの値が -1 で一瞬(1ms以下?)なのでまあ10ms以上なら比較的安定するんじゃないかな
環境にもよるけど #IfWinActive
Space Up::Send, {Space}
Space & f::Send, {Right}
↑ここまでOK----------------------------------
#IfWinActive, ahk_exe Photoshop.exe
~Space & f::Send, {Right}
↑チルダが機能しません、、---------------------
Spaceを修飾キーとして使用します。
上記の通り、前半は問題なく意図した通りに、機能しているのですが、
Photoshopなどのプログラムに切り替わったときには
チルダを入れて、Spaceそのものの機能を活かしたいのですが
上手く機能しません、、どのように切り替えればよいでしょうか?
よろしくお願い致します。 >>118
#IfWinActive で分けても Space & f:: の影響(スペース単独で押し下げた時は入力されず離した時に入力になってしまう)は出るからなあ
プログラムごとに切り替えたいならホットキーのスクリプトファイルを普段使い用(a.ahk)とPhotoshop専用(b.ahk)に分けて、
普段はa.ahkを起動しておき、Photoshop.exeがアクティブになった時はb.ahkを起動してa.ahkを終了
Photoshop.exeが非アクティブになったらa.ahkを起動してb.ahkを終了とかしてスクリプトを完全に分離させた方が良いんじゃね 英語キーボードをあきらめて日本語キーボードにすれば、装飾キーにできるキーが増えるよ。 前スレで
>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、マザボを聞いてみたいです。 アクティブでないウィンドウを操作するために
WinActivate, ahk_class xxxxx
Send,^a
sleep 50
WinActivate, ahk_class ooooo
みたいなやり方をしているのですが、ちょっとダサい気がするので、
ControlSendで書き換えたいと思っています。どう書き換えたらいいんでしょうか? >>123
ControlSend, [Control], ^a, ahk_class xxxxx
ただしControlSendは上手く動作しないアプリケーション多いので俺はほとんど使ってない それかsendmessageで直接該当アプリに命令流し込む >>122
実際に問題の起こるスクリプト貼ってくれないと誰にも断定はできない
>>63-65
ホットキーすり抜けが発生して修飾キーが押されっぱなしになっているのかも?
Wheel UpやDown で起こりやすい >>124
やっぱりそうですか。マニュアル通りに書たはずなのに上手くいかないので、
書き方が何か違っているのかと思ってました。どうもありがとうございます。 >>126
どんなスクリプトかは関係なく単純な
WheelUp::send, a
のように1行だけのスクリプトも機能しなくなります。
Wheel関係のボタン 中ボタン、ティルト左右、ホイール回転 が全てAutoHotkeyで認識されていない状態です。
つまりAutoHotkeyのウィンドウのメニュー View>Key history and script info
で 中ボタン、ティルト左右、ホイール回転 の履歴が表示されていない状態です。
AutoHotkeyでこれら認識されなくなった時もAutoHotkey以外では問題なく機能しています。 >>129
エレコムのM-LS13ULです。
これをバッファローのものに変えても突然認識しなくなる症状は出ます。
しかし、このエレコムのマウスでも別PC(AutoHotkeyのバージョンは同じ)だと症状は出ません。 >>130
おそらく別ソフトがマウスフックでイベントを乗っ取っている
AHKのフックはOSの機能であるWin32APIのSetWindowsHookEx(WH_MOUSE_LL、WH_KEYBOARD_LL)
他のソフトも利用可能でフックは後から設定したものから順次実行される(途中のフックで入力を破棄すれば次のフックは実行されない)
エレコム マウスアシスタント(原因?)
https://www.elecom.co.jp/support/download/peripheral/mouse/assistant/
> マウスを別メーカーにする→変わらない
> ドライバをメーカー製からwin標準のものに換える→変わらない
> USBポートを換える→変わらない
↑のアプリを終了させずに色々テストしたのでは?
終了しても駄目ならセーフモードで確認 >>131
原因がわかりました。
WizMouseというフォーカスされていないウィンドウでも
マウスでスクロール可能にする常駐ソフトが原因でした。
普段使っているPC(Win8.1)で症状が出て、別PC(Win10)で症状が出なかったのは、
Win10では標準でWizMouseと同じ機能が装備されているのでWizMouseをインストールしていなかったからでした。
(さらに、今調べたらWin8.1もレジストリの設定変更だけでWinMouseと同じ事が出来ました。)
以前WizMouseも疑って、WizMouseの機能を使っている時、AutoHotkeyの
Wheel関係のボタンの認識を見たら問題なかったので完全にWizMouseの線は除外していました。
しかし今回>>131さんの指摘を受けて、マウスフックを使っているソフトを探したところ、WizMouseぐらいしかなかったので
AutoHotkeyがボタンを認識しなくなったタイミングでWizMouseを終了させたところ、一発で認識が戻りました。
ありがとうございました。 フック奪い合いあるあるおつかれ
リダイレクトホイールは真っ先にahkで実装した機能の一つだわ StatusbarGettextって64bitアプリに対しては使えない?
厳密には共有メモリを介しての情報取得系だけど Tb_GetitemRectとか。
64bit版ahkで試して値が返らない >>134
64bit版AHKで64bitアプリのメモ帳のステータスバー取得できるから64bitとかは関係無いな
;メモ帳の行と列を表示
StatusBarGetText, OutputVar, 2, ahk_exe notepad.exe
MsgBox, %OutputVar%
Return
上手く行かないのは管理者権限とか個々のアプリの仕様とかが原因だろ タスクマネージャとかその他一部のウィンドウでホットキーが効かないことがあるのはなぜ?
例えばvk1D & k::Send, {Blind}{Down}をしてもk押下判定になっているみたい
当然、MGLのジェスチャーも無反応だし >>137
UACで弾かれてるんじゃね
スクリプトを管理者権限で実行しな 特定のソフトで、SHIFT押下時だけスクロールを左右キーにアサインする記述って出来ないでしょうか >>139
出来ますよ
まずはwikiのサンプルコード集でも見て勉強しましょう >>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}
では動きません ご教授いただける方いれば教えて頂きたいです >>141
{ArrowLeft} なんて無いから
wikiのキーリストをちゃんと見なさい Adobe Premiere Pro.exe のスペースはなんもくくらんで認識できるんだっけ?
ahk_classで見たほうが確実な気がするけど >>142-143
ありがとうございます
SetTitleMatchMode, 2
#IfWinActive, Adobe Premiere Pro
~Lshift & WheelUp::Send,{Left}
~Lshift & WheelDown::Send,{Right}
で行けました
ただ元々のスクロールも残って送信されるようで、Leftキーの移動と同時にスクロールもされてしまうのはしょうがないんですかね… >>144
他の記述が余計な邪魔してんじゃないか
~Lshift & WheelUp::Send,{Left}
~Lshift & WheelDown::Send,{Right}
少なくともこれだけのスクリプトなら試した限り元のスクロールは送信されてない
ちなみに余談だけど修飾キーはコンビネーションキーにする必要ない
+WheelUp:: でOK 新規タブでエクスプローラを開くコマンドって作れないですかね…。
特定のソフトが起動しているが前面に無い場合、そのソフトをアクティブにしてキーを送信…とするコマンドを作りたくて
IfWinActive explorer.exe
{
Send, ^t
return
}
IfWinExist Run explorer.exe
WinActivate
return
とかやってみたのですが出来ず、
MouseGestureL.ahkでトラックボールに割り当ててみようとしたけど出来ず… >IfWinExist Run explorer.exe
これ合ってるのか?
俺には全く意味分からんのだが
俺が知らないだけならスマン
explorer.exeはウィンドウ無くても常駐してるから
ahk_class で指定した方が良い気がするが
そもそもエクスプローラーのタブは俺も知らない
Setsとやらはどうやら頓挫したみたいだが>>147の環境ではCtrl+t使えてんの? >>147
ファイラーならたいていホットキー設定でできると思うけど、MSのエクスプローラじゃないとダメなの?
Tablacusのようなエクスプローラ互換ファイラーもあるし、なかなか便利だよ >>148
使用しているのはQTTabBarというタブ化ソフトです
>>149
そうですよね…そもそもExplorer.exeはずっといるので駄目ですかね
ahk_class explorer.exe でも動作しませんし、マイコンピュータを開く
Run "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
だとタブではなく新規ウィンドウで開いてしまうので…
やはり無理でしょうか >>151
ahk_classはちゃんとWindow Spyで確認しな
普通にActivateとかはできる
QTTabBarでCtrl+Tが使えてるなら当然Sendコマンドだって使えるだろう
「無理でしょうか」とか言い出す前にしっかりwiki見てウィンドウ指定の方法を勉強しな
色々と書き方を間違ってるだけだから >>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、
起動していなければ起動…という風にもしたいのですがそもそもアクティブ化すら動かない状態なので現状詰まっています
どこかミスが分かる方いればご教授お願いしたいです >>153
その4行のみのスクリプトで何も問題なく機能してるぞ
Winキー+Enter押すとエクスプローラーのウィンドウがあればアクティブになる
動かないとしたら他にも何か余計なもん書いてるんじゃね >>154
ありがとうございます 一旦全て消して打ち直した所無事に動くことが出来ました!
自分の様な使い方がしたい人は稀だと思いますが一応
#WinActivateForce
#n::
IfWinNotExist ahk_class CabinetWClass ;存在しない時
Run, explorer.exe ;エクスプローラを起動
else ;または
IfWinActive ahk_class CabinetWClass ;エクスプローラのクラスがある時
{
Send, ^t ;ショートカットを送信
return
}
IfWinExist ahk_class CabinetWClass ;裏にある時
WinActivate ;アクティブ
return
で動きたいように動いてくれました。スレ汚し失礼しました。 >>155
本当に「動きたいように動いてくれました。」何だろうか?
まあ本人が言うんだから間違いないんだろうけど(´・ω・`) IMEオフってIME_SET(0)じゃない?
wikiにも書いてないしtabに割り当てたいんだけど動かない >>157
それはahk使わなくてもIMEのプロパティでキー設定すればできるしそっちの方が確実
まあTabはそれ以外でも使うから不便になると思うがな
ちなみに余談だけど俺は英数キーをIMEオフに割りあててる >>158
普段はtabキー使うから、IMEオフが必要なソフトでのみtabをIMEオフにしたかったんだよね ahkならソフトでの指定が出来るから
IMEオフはIME_SET(0)でいいのかな >>159
そういうことなら
■ IME関連
Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:http://www6.atwiki.jp/eamat/pages/17.html の「IME.ahk」を使いましょう。
なぜかテンプレなくなってるな IME.ahk入れていないのにIME_SET()関数使おうとしたんかよ
まあahk標準機能として用意されて欲しいとは思うけどね AHKの便利さを知っている人でも満足できるMac対応代替アプリ知りたい
おすすめありますか(別言語可) ALT+UでF7変換にしたく、LAlt&U::Send,{F7}と打ったのですが、
エラー:lnvalid hotkye が出ました。
どうすれば修正できますか? >>163
基本的に修飾キーは修飾シンボルを使った方がいい
どうしてもコンビネーションキーにしたいならサンプルよく見てスペース入れる >>164
*!U::Send,{F7}
と打ったら出来ました ありがとうございます。 >>155
win7の情報だけどQTTabBarはWindowsの仕様なのかahk_classが2種類存在する。
おそらくexplorerの起動方法によって変わると思われる。
ahk_class CabinetWClass
で反応しないときは
ahk_class ExploreWClass
Win10では2種類存在するか未確認だけど、スクリプトを未修正で使ってる ランダムに複数ファイルを選択状態にしたくてこのソフトを入れたのですが
可能でしょうか?単ファイル版のスクリプトしか見つかりませんでした 「右コントロールと下矢印キーの同時押し」で「PgDnの押下」を行いたいです。
RCtrl & Down::PgDn
という記述だとCtrlの押しっぱなしが検知されて、
実行結果が「Ctrl+PgDn」になってしまいます。
実行結果を「PgDn」だけにする方法はないでしょうか? すみませんフォーラムの方で見つかりました。お騒がせしました いつのまにかswitchがつかえるようになっていた へー
日本語版wikiの更新が止まってから全然追えてないから知らない機能めちゃくちゃありそう v1.1.33.00 がリリースされたが、.32まで問題なかったコードが
cound not locatedみたいなエラーでコンパイルできんくなった 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 座標や幅/高さの計算が上手くできないなら、座標の始点を変えたところで意味無いと思うけど... >>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というサイズで画面中央に移動ができましたが >>178
左上が0,0で右下が1920,1080だろ?
あとどこのブログ見たのか知らんが変数は%で囲む >>179
囲む時と囲まない時の区別がついてないんですが簡単に言うとどんな時なんでしょうか? >>178
>始点を右下(0,0)としたとき、左上がFHDなら(1920,1080)になるような……
そういう関数作ればいいと思う
>WinMove, A,, (A_ScreenWidth - ActiveWindowWidth)
いきなり ActiveWindowWidth という未知の変数出てきたからエラー出て動かないんじゃないのか?
WinGetActiveStats, , ActiveWindowWidth とか WinGetPos, , , ActiveWindowWidth, , A で
アクティブウインドウの幅取得すれば動くと思う
式の場合は%付けない、文字列の場合は%付けるんだっけ?未だによく間違える(´・ω・`) >>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") >>183
あれ三行でまとまりませんか?……orz
難しいので他のウィンドウ操作系ソフト使おうかと思っても無いんですよね、これというのが…… >>182
^+!j::
WinGetPos, ActWinX, ActWinY, ActWinW, ActWinH, A
WinMove, A,,, % A_ScreenHeight - ActWinH
Return
式の場合はこう
あとWinGetPosはタイトル入れてないから>>182だとそもそも位置とサイズ取得すら出来てない
msgboxとかを使ってちゃんと一つずつ動作確認する癖付けた方がいい
それと質問するときは最初からそのスクリプト貼れ
小出しにするから無駄に長引く こんな糞ゴミ質問者に丁寧に接してくださってありがとうございます
ほんとに、リファレンスは"ちゃんと"読まないといけませんね……
も少しマシな質問出来るようになってから出直してきます、ありがとうございましたm(__)m a.ahkに ^t::msgbox
b.ahkに send,^t
とやっても上手くいきません
やり方間違ってますか? >>188
何が上手く行かないのか知らんが”それのみ”のスクリプトなら
a.ahkを常駐させておいてb.ahk実行すりゃmsgbox表示されるぞ
https://i.imgur.com/TiZycOG.jpg >>189
そこに問題があると思って他を省いてしまいました
#ifwinactiveの記述を消したらちゃんと動作しました
すみません 動作に関することではないですけど
いつの間にか、アイコンがくっきりしたのとボヤっとしたのに原因なんでしょうかねこれ
https://imgur.com/pLyH7uf >>191
ディスプレイ解像度が変わったりするとそうなる
AHK関係無くOSの問題 そうなんですが、ありがとうございます
そして意味不明な日本語でしたねすみません 範囲選択してスクリーンショットするアプリを使用しています。
左クリックのドラッグで範囲選択をします。
実現したいことは、「トリガー押下→範囲選択モードに移行(アプリ側で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 説明が分かりにくいんだけど
・トリガー押下→範囲選択モードに移行→隣のモニタにカーソルを移動
トリガーが何なのか分からんがひとまずここまでが一つの動作で、範囲選択自体は手動でマウス動かしてやるんだよな?
そして左ドラッグを離したら「トリガー押下時の座標に自動的にカーソルを戻す」ってことでしょ?
それならトリガー押下したら上記の操作してフラグを Flag=1 とか適当な変数付けといてReturn
~LButton up:: でFlag=1の場合は元の座標に戻ってFlag=0にリセットする
Flag=0の場合(範囲選択モードじゃない時)ならReturnして普通に左ボタン離すだけ
みたいなやり方はどうよ?
待機とかするよりもシンプルだと思うが > ・WhileとGetKeyStateの入れ子をうまいこと組み合わせる→よくわからないけど失敗
その失敗したコード部分を貼らないと
まあループで待つより Hotkey,~LbuttonやSettimer仕掛けて一旦抜けて
フェイズ処理の方が動作の確実性は上がると思う
1シーケンスで終わらないから一見すると面倒に見えるかもだが急がば廻れ
> 範囲選択モードになったことを示すものはないとして
ImageSearchは検討してみた?
なんのアプリ使ってんだが分からんが操作する人間が視覚的に判るような範囲選択オブジェクトは描画されてるわけでしょ
ドラッグ開始の「 部分が透明度低ければピクセル一致で引っ掛けられるかも https://kostrivia.com/5592.html
上のサイトを参考にwindowsのIMEの設定で無変換キーをIMEオフ、変換キーをIMEオンにしてるんだけど、その場合キー名はそれぞれ何になるんだろう?
http://ahkwiki.net/KeyList#Key_ZenHan
見ても載ってなかった >>198
無変換
vk1d
か
sc07B
は試した?
わからんときは、そのURLの「上記以外のキー」ってとこに取得法書いてる >>198
昔のバージョンでは無変換キーは vk1Dsc07B で指定してた
今は無変換キーは vk1D または sc07B のどちらかで指定する仕様に変わった
変換キーや他のキーコードも同じ様に変わった
AHKの仕様が変わってからもうだいぶ経つしwikiのキーリストのページだけでも直した方がいいと思うけど
警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。 必要であれば文章をコピー&ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
データベースをロックした管理者による説明は以下の通りです: ただいまメンテナンス/大規模更新に向けてのローカル作業中です。
これって今だけ?しばらくしたら誰でも編集できるようになるんかね? ■ このスレッドは過去ログ倉庫に格納されています