AutoHotkey スレッド part25 [無断転載禁止]©2ch.net

レス数が950を超えています。1000を超えると書き込みができなくなります。
1名無しさん@お腹いっぱい。 転載ダメ©2ch.net (ワッチョイ f977-fKjf)
垢版 |
2017/09/14(木) 11:52:40.84ID:uijNj4qb0

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

■前スレ
AutoHotkey スレッド part24
http://egg.2ch.net/test/read.cgi/software/1487149472/

■日本語解説等
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: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2018/03/21(水) 02:26:02.22ID:t6ZVDJkP0
>>877
AHKはスクリプトであり簡易的なプログラム
本格的なプログラミング言語に比べ、用途を限定することで、覚えやすいように簡単な構造になっている
スクリプトの中でもAHKは特に簡単な方なんじゃないかな多分
2018/03/21(水) 05:59:25.78ID:vW2s5IUZM
プログラミングの足掛かりにはなるけど
用途も限られ、誰でも覚えられ、用意されたコマンドも少ない
でも高度な事しようと思ったらwin apiの知識が必要だったり
他からライブラリ持ってきたり
リファレンスが英語しかなかったり
汎用性はあまりないよ
2018/03/21(水) 09:01:31.10ID:ra+qV9Ux0
>>878
AHKの言語はかなり特殊で癖が強すぎて出来は良くないよ
perlの方が圧倒的に言語としての出来はいい
2018/03/21(水) 11:15:53.77ID:vX0jpMkC0
いきなり使えるという意味では楽なほうだと思うけど
スプリクト言語として簡単な方だとは正直言い難い
増改築繰り返してて色んな言語の方言ぶち込まれてるから纏まりないしね
2018/03/21(水) 13:11:58.41ID:ltXmxIsFM
まぁ おもちゃ だね
2018/03/21(水) 14:35:23.46ID:7OKFzbdy0
>>880
出来がいいとか悪いとかそんな話は誰もしてないから
2018/03/21(水) 17:56:15.87ID:RBaLq5Ja0
>>877
プログラミング言語は以下の総称、AHKはスクリプト言語に属している

スクリプト言語 - プログラミング言語のうち、プログラムの記述や実行を比較的簡易に行うことができる言語の総称
           JavaScript、Perl、Python、PHP、Rubyなど

コンパイラ言語 - 人間が書いたプログラムをコンピュータが理解できる形式に変換するプログラム言語
           C言語やC++、Javaなど、上記と比較してパフォーマンスに優れている
2018/03/21(水) 18:36:08.33ID:zFBQqTlw0
>>884
スクリプト言語とインタープリタの違いは?
2018/03/21(水) 18:57:46.63ID:IUvp1TqV0
そろそろスレチ
2018/03/21(水) 19:06:50.77ID:vX0jpMkC0
アセンブラが抜けてるぞ
コンパイルせんけどあれもれっきとしたプログラミング言語ですよ
2018/03/21(水) 19:12:21.63ID:MLMIaNkj0
>>886に同感
2018/03/21(水) 20:42:05.97ID:TU8fmjCY0
日本語のwikiは4年前から更新が止まってるけど
日本のユーザーほとんどいないのかしら
2018/03/22(木) 04:39:01.11ID:VvTwrxCl0
「Insert」「Scroll Lock」って何で設置されてるんです? キーボードの“いらないキー”の使い方
https://headlines.yahoo.co.jp/hl?a=20180317-00000007-it_nlab-sci

本来の用途を知ってもやっぱりahkで覆すのが一番だな
2018/03/22(木) 09:00:22.19ID:U0cAdNVx0
Insertは固定テーブル書換でよくお世話になったし今もたまに使う
BreakもVBAの暴走止めるのに使うしScrollLockだけは要らんけど
あの辺をahkで覆すことってないなあ
そもそもホームポジションから遠いから便利キーとして活用しづらいというのもあるが
2018/03/22(木) 12:01:10.33ID:Ufwil7jA0
この前INSを知らんうちに押しててその性質を失念しててパニックになったw
2018/03/22(木) 12:37:22.06ID:e+UZ/a+c0
昔使ってたワープロ専用機がパソコンで言えば挿入キーが効いた状態が標準だったので、パソコンに移行した初期はよく使ってたな。今でもたまに長い名称の修正の時に使うことがある。
無変換キー使わないから他に置き換えるって記事も出てくるけど、個人的にはしょっちゅう使ってるんだよなぁ。ショートカットの関係とかもあるし、キーの置き換え考えるのってけっこう難しい。
2018/03/22(木) 13:16:44.76ID:DUtGpx6E0
Insert::return
^Insert::Send, {Insert}
2018/03/23(金) 10:21:17.86ID:b+Z0za8i0
例えば、
Aキーを押した後、Xを押したらある処理Xをする
Aキーを押した後、Yを押したらある処理Yをする
Aキーを押した後、Zを押したらある処理Zをする
みたいなことをしたいのですが、簡単なスクリプトの書き方ってありますか?
2018/03/23(金) 10:24:25.97ID:XAz/zURm0
>>895
キーによって最適の処理があるとおもうから、具体的に何のキーか書いた方が良いよ
2018/03/23(金) 14:14:04.10ID:GjwCbWet0
a & x::
処理
Return
ではいかんの?aキー殺したくないなら~a & x::で。
2018/03/23(金) 14:48:02.81ID:b+Z0za8i0
>>897
そぅいう書法があるのですか。これは初めて知りました。ちょっと調べてきますね
2018/03/23(金) 16:07:40.41ID:b+Z0za8i0
>>897
やってみました。 なるほど。これでもよさそうです。 ありがとうございました
2018/03/24(土) 19:08:51.99ID:QBdmJd9U0
スマホのWindows10 MobileにAuto Hot Keyって導入できる
んでしょうか?
無変換+Jに左矢印を割り当てるくらいできればいいのですが。
2018/03/27(火) 13:28:24.89ID:hp/Jmp+F0
何いってんだコイツ
2018/03/27(火) 23:21:47.06ID:gIH3YYjz0
おまいらファイル長くなりすぎた時どうしてるの?
2018/03/27(火) 23:48:02.88ID:2xWHg+240
機能ごとにプラグイン化してる
2018/03/28(水) 11:34:17.40ID:ojeN139t0
文字列で、最初の10行を取り出す、とかはないのでしょうか
2018/03/28(水) 13:54:22.18ID:aUGjB4dVM
wikiみろ
2018/03/28(水) 14:43:43.95ID:ojeN139t0
見つからないので、
StringGetPosで`nを見つけてみたいなことをしています。 それしか方法ないのかな
2018/03/28(水) 15:13:27.91ID:VqAJ66ND0
Loop,Parseってのがあるじゃろ…
2018/03/28(水) 19:42:08.35ID:wFJSmFtY0
やるとしたらLoop, ParseかRegExReplace()あたりでやるかなあ
2018/03/28(水) 20:08:23.29ID:VpMR9Ykb0
>>904
100万回ぶん回したらRegExMatchのほうが1.8倍早かった

Text =
(
111
222
333
444
)

RegExMatch(Text, "`n)(?:.*\n*){2}", Var1)
MsgBox % Var1

Loop, Parse, Text, `n
Var2 .= A_LoopField "`n"
Until A_Index = 2
MsgBox % Var2
return
2018/03/29(木) 08:46:20.34ID:Kt+xqO1A0
私は、
StringGetPos, n, text, `n, L10
StringLeft, text,text, n
としました。
Loop, ParseかRegExReplaceってのは気づきませんでした
いくつか方法ありますね。 gnuとかやってたのでもうちょっと関数ほしいかな
2018/04/02(月) 09:12:36.71ID:6CLUXBlN0
RegExMatchで変数同士の比較の際に、変数内に特殊記号が入ってる場合のエスケープってどうすればいいんですか?
例えば↓だと記号が入っている行では0が帰ってきてしまうので、これを正しくマッチさせたいです

str =
(
abcdefg
abcd*e\fg
hijklmn
hijk*"l\mn
)

Loop,parse,str, `n
{
a := RegExMatch(str, A_LoopField)
MsgBox % a
}
2018/04/02(月) 09:32:38.76ID:Bc45Krob0
\Q
2018/04/02(月) 09:56:17.05ID:6CLUXBlN0
>>912
できましたありがとうございます
914名無しさん@お腹いっぱい。 (ワッチョイ 2b96-bCzG)
垢版 |
2018/04/02(月) 23:41:48.53ID:/5qUy46v0
Class k{
A:="U|D|L|R"
x:="X|3|m|x"
Ax:="(" . A . "|" . x . ")"
}
k := new k
Shift & Ctrl::msgbox,% k.Ax

このk.Axが(U|D|L|R|X|3|m|x)で欲しいのですが
(|)が還ってきます
Classの中では、変数の再定義などもエラーになるので振る舞いが違うようですが、
Class中で自身の変数を使うにはどうしたらいいのでしょうか
2018/04/03(火) 01:17:27.13ID:nsnifR/q0
this
2018/04/05(木) 06:40:22.99ID:cEzeFAIV0
UWSCからAutoHotKeyに鞍替えしようと思っているのですが
UWSCのchkimgXのような高機能な画像認識機能はこちらにはありますか?
2018/04/05(木) 11:22:45.68ID:HI1fVzZM0
指定した画像と一致するかどうかという機能(完全一致〜ゆるく一致までざっくり設定可)と、
ピクセルの色を調べる機能はあるぞ
2018/04/06(金) 03:36:34.69ID:/B0boEGH0
DLL呼び出しはどうやるのかな?
必要なら私が作成したchkimgXのようなのを公開しますが。
2018/04/06(金) 10:13:31.58ID:/B0boEGH0
DLL呼び出しして画面と画像でテンプレートマッチングしてクリックまではできました。
配列とかが難しいですね><
2018/04/06(金) 19:19:42.82ID:OFzZtZ5C0
chkimg(完全一致検索)
chkimgX(テンプレートマッチング)
それぞれ互換性を持った関数をDLLとして提供しています。
ahkでUWSCとほぼ同じ画像認識操作が可能です。

https://www.axfc.net/u/3901288
2018/04/07(土) 11:43:46.03ID:fZhBhj010
1.1.28.02 リリース
また細かいバグフィックスだろうけど
現時点でチェンジログは出ていない
2018/04/07(土) 15:15:24.78ID:R1ORWks/0
https://github.com/Lexikos/AutoHotkey_L/releases
チェンジログはGitHubのが早い
2018/04/07(土) 15:40:04.20ID:fZhBhj010
>>922
thx

Fixed Control ChooseString and ControlGet FindString ignoring the first two items.
Fixed Control ChooseString to send WM_COMMAND even if the control's ID is 0.
Fixed WinActivate to restore the active window, as originally intended for [v1.1.20.00].

最後のやつ、なんかおかしいと思ってたんだよ
やっぱバグだったのか
2018/04/09(月) 09:25:51.24ID:c9jGED410
質問なのですが、画面の特定の座標だけでスクリプトを動作せたいので次の様に書いたのですが
ifの条件が無視されて画面のどこでも動作してしまいます
どのように書けば良いのでしょうか?

Xbutton1 ::
CoordMode,Mouse,Screen
MouseGetPos,xpos,ypos
if (100<xpos<200 && 100<ypos<200 )
{
send,a
}
return
2018/04/09(月) 09:30:42.59ID:G8+Atlb/0
a<b<c
って書き方を認めていない言語も多かったような
2018/04/09(月) 09:41:06.34ID:c9jGED410
>>925
その通りでした
if (100<xpos && xpos<200 && 100<ypos && ypos<200 )
としたら動きました、ありがとうございます
2018/04/12(木) 14:21:27.54ID:LYFBDP2J0
使い道がありそうでなさそうだな

上海問屋、6つのボタンに任意キーを割り当てできるUSB有線リモコン - ITmedia PC USER
http://www.itmedia.co.jp/pcuser/articles/1804/11/news093.html
http://image.itmedia.co.jp/pcuser/articles/1804/11/yk30028_2018-0411-1201-7.jpg
2018/04/12(木) 14:46:13.63ID:kOEYD5Ut0
これならゲームのコントローラーで事足りそう
2018/04/12(木) 14:47:22.87ID:W4scmFmJ0
どんやのパチモンじゃ購入初日にボタンが壊れそう
2018/04/12(木) 16:11:05.18ID:T0dluYzz0
AHKなどソフトウェアマクロが弾かれるゲームでどうしてもハードウェアマクロ使いたい人向けかな
ま、要らんけど
2018/04/12(木) 19:25:32.52ID:vJcRmT+E0
(ほしい…)
2018/04/13(金) 09:45:10.86ID:NtTFGXLa0
POS用のプログラマブルキーボードが鉄板やろ
933名無しさん@お腹いっぱい。 (ワッチョイ ff2e-XjMo)
垢版 |
2018/04/13(金) 17:18:58.63ID:paZWK/3z0
https://ux.getuploader.com/autohotkeyl/download/130

Autohotkeyでゲームパッドを弄り倒す叩き台作ってみたよ
サンプルはトーチライト2 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2018/04/13(金) 19:00:24.87ID:1ryaKKuDa
なんかすごいの来たぞ
2018/04/13(金) 20:25:23.22ID:j0qzzlLl0
win7からwin10に移行して1か月経ったが、ホイールリダイレクトがwin標準になったのを最近知った
なので、win7時代から使っていたWheelAccel.ahkが不要になったよ
(むしろ、スタートメニューなど一部の窓でスクロール出来なくて困っていたし、加速機能使わなかったから不便無い)
2018/04/13(金) 21:19:40.20ID:0+nIaT1E0
バイナリデータn書き換えについて質問します
例えばbinary.datと言うファイルがあります
このファイルの中身は”FF FF FF FF”とします
これを先頭が”FF”だった場合に”00 FF FF FF”と書き換えたいのです。
どこかに良いサンプルコードありませんでしょうか?
2018/04/13(金) 21:42:32.33ID:7h17ETYp0
更新フラグでFileOpenしてRawWriteでできるでしょ
2018/04/13(金) 22:12:16.80ID:0+nIaT1E0
書き換え方法がわかりません
どうすれば良いですか?

FileGetSize, size, binary.dat
FileRead, data, binary.dat
file := FileOpen("binary.dat", "w")
file.RawWrite(data, size)
2018/04/17(火) 11:04:41.37ID:/LpxS4AS0
>>933
Jtkのまがいもの更新しました。
https://ux.getuploader.com/autohotkeyl/download/131
思いつくのは入れて満足したのでしばらくこのままだと思います。
なにか要望あれば考えます 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2018/04/17(火) 15:16:07.19ID:TidmHlF5a
>>939
バグ報告いいかな?
無線パットだと起動した直後にLRがキーログに出てくる
実際押されてる模様。初期化の速さに通信が追いついてないっぽい

あと要望はLTトリガーにフルプル対応してほしい。それさえクリアしたらSteamのキーアサインの呪縛から抜けられそう
2018/04/17(火) 16:51:38.37ID:a0NxOH1g0
window10 pro 64bit版で.NETアプリを自動操作させようとしているのですが、
コントロール名の取得方法が分からず、座標で操作しています。
しかし、画面サイズが異なると座標がずれてしまうため、コントロール名で操作したいです。
コントロール名を取得する良い方法はありませんか。
Au3Info_x64を使ったりもしているのですが、テキストボックスやボタンの名前の取得もできません。
よろしくお願いします。
2018/04/17(火) 17:00:04.82ID:s4qV74PJa
mousrgetposで取れない?Dll叩いてもだめ?そうでないなら画像認識で無理やりかな
2018/04/18(水) 13:30:00.16ID:v+G5gwRf0
>>939
jtkモドキ微更新。何度もすみません
バグ取ってフルプル分岐作りました。
フルプルとソフトプルの分岐設定も書いているので参考に
https://ux.getuploader.com/autohotkeyl/download/132 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2018/04/18(水) 15:45:10.39ID:v+G5gwRf0
>>943
十字キー関数にミスが有りました。再アップしたので>>1のAutohotkey専用うpろだ からどうぞ。目玉でまくってるし
2018/04/18(水) 16:38:37.35ID:BxRxemHs0
>>942
ありがとうございます
mousegetpos試してみました
そこで取得したテキストボックスらしきClassNNにsendしてみたけど入力されないので、
ClassNNがあってるかどうかも分からない状態です
dllはまだよく分かっておらず、試せていません
もう少し試行してみます
2018/04/20(金) 01:59:31.80ID:CBU7UbTU0
gui上のあるボタンを押したらcaps入り切り、というのが上手くいきません
capslockのキーコードをsendすれば?と思いましたが必ずロック入にだけなってしまいオフにできません
2018/04/20(金) 08:47:40.18ID:dNl99PS50
>>946
SetCapsLockState
2018/04/20(金) 10:47:37.95ID:CBU7UbTU0
>>947
946です、出来ました感謝m(_ _)m
2018/04/21(土) 18:06:22.61ID:C1+iWiz90
Jtkモドキにマウスカーソルの形状を判断して1か0を返す関数を追加しました
画面上のボタンにマウスカーソルが乗っているかどうかを1か0で返す関数も作りました
今回は主に画像で分岐する処理を追加したものになります

https://ux.getuploader.com/autohotkeyl/download/137 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
2018/04/21(土) 18:42:03.16ID:OB+FBU580
しつこく継続するつもりなら自分の日記でやってくれ
2018/04/21(土) 18:50:31.53ID:KPF3rMpt0
GitHubに上げてくれると助かる
2018/04/21(土) 20:02:17.73ID:9NdPyy9Da
今回のはガチ有能だから許してやるよ
これjtk超えたわ
2018/04/21(土) 20:21:57.16ID:C1+iWiz90
そろそろウザイいわれる頃だと思いました
今の所目立つ不具合もないので開発はこれで終わりです。お騒がせしました
2018/04/21(土) 20:25:29.17ID:rnogQ4Zw0
思ってても自重できないとかガイジかよ
2018/04/21(土) 20:25:41.02ID:NokkieTn0
お疲れ様でした
2018/04/21(土) 20:26:26.63ID:A/2ANSA+0
そんな〜
進捗知らせるリンクとかないの?
2018/04/21(土) 22:20:34.98ID:PYmE/PA4a
GitHubはいい選択肢だと思う
割とすごく便利に使ってるからこれで開発終了も勿体無い
これからなんか機能付け足すとかあるかも知れんからお願いします
2018/04/21(土) 22:33:06.01ID:fKXilc1u0
うん、ブログかなんか作って、改良したらリンクだけでも貼っておいてくれると助かる。
文字通りのウェブログみたいなのでかまわないから。
2018/04/21(土) 22:34:11.35ID:fKXilc1u0
あぁ、ギットハブでもいいね。
2018/04/22(日) 05:25:59.04ID:RQZNijO/0
ギフハフにかんしされてる
2018/04/22(日) 09:58:25.53ID:KrMwycZF0
お疲れ
たまにうpろだを覗いたらアップされてるくらいでも嬉しいから
よかったら続けてくれ
2018/04/22(日) 19:27:30.11ID:PW3IH2j00
以下のようなサンプルスクリプトを書き、Excel上で
動いたのですが、他のウィンドウに切り替えても
動いたままです。アクティブ時以外は停止させる
ことはできないのでしょうか。

#IfWinActive ahk_class XLMAIN
^!down::
Interval :=2
Loop, 20
{
Send {enter}
Sleep, 1000*Interval
}
#IfWinActive
2018/04/22(日) 19:30:44.48ID:RQZNijO/0
whileループ使えばよろし
2018/04/22(日) 22:10:37.71ID:+NuTjY0aM
#IfWinActiveはトリガー発動時の条件でしかない
アクティブ外れたからって実行中のスレッドを強制的に止めるような怖い機能はついてない

止めたいなら自分でloopの中でアクティブ切り替わったかどうか見てアボート処理入れないと
つうかhotkeyの中でsleep使うとキー連打したときにめんどくさくなるから
settimer使った方が安全だと思うけど
2018/04/22(日) 22:12:00.47ID:Na2a3cix0
俺なら、SetTimer使って
if(WinActive("ahk_class XLMAIN")){
で実行させるかなぁ
2018/04/22(日) 22:44:07.12ID:10Ec/CBsa
loop内からif式でブレイクなんてのもある。まぁ好きなの使えばいいよ
2018/04/23(月) 08:25:10.44ID:O5Q2FlPe0
みなさま、回答ありがとうございます
参考にさせてもらいます
2018/04/23(月) 17:57:46.27ID:AE7Q4/Eb0
要望があったのでJTKモドキの専用のブログ作りました。今後更新はこちらですることにします。
http://gamepadtokeybordframework.blogspot.jp/2018/04/gamepadtokeybord.html
2018/04/23(月) 18:01:29.23ID:pzh5FeO50
ありがとうございます
2018/04/23(月) 18:07:00.37ID:e3Qosisv0
>>968
2018/04/23(月) 18:25:32.83ID:kj66dibia
おお、続けてくれるか!ありがとう!
XboxコントローラーでLRトリガー同時押しできるってだけでも相当助かってるので頑張って
2018/04/23(月) 18:43:56.76ID:bXPE8uhS0
トリガー同時押しなんてJTKでもずっと前から出来てるのに何言ってんだこいつ
やたら過度に称賛してる連中自演臭い
2018/04/23(月) 20:57:13.94ID:Gj6VP1R00
まぁ、ここよりもブログに応援コメントしてあげた方が良いだろうね。
2018/04/23(月) 21:18:00.96ID:zWCv4IqX0
分かってない質問者来たときに上から偉そうなのがワラワラ涌く以外勢いつかないスレなんだから
この程度の自作自慢ぐらいいちいち締め出すこともないだろうに
噛みつきたいだけのキチガイの言うことなんかほっとけよ
2018/04/23(月) 21:34:02.76ID:x5JIhAAO0
と、噛みつきたいだけのキチガイが吠えてます
2018/04/24(火) 00:51:31.04ID:K1jVCB+q0
A_OSVersionってWin8までしかサポートしてない?
Windows10であることを取得したい場合なんか方法ある?
2018/04/24(火) 00:57:28.67ID:HNWPsUWl0
MsgBox, %A_OSVersion%

で10.0.16299と表示されたけど
レス数が950を超えています。1000を超えると書き込みができなくなります。
大学生アイラと影の怪物と戦うリョウが、深夜3時3分の静止した世界で交錯する超常スリラーの概要

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