AutoHotkey スレッド part31

■ このスレッドは過去ログ倉庫に格納されています
2022/08/05(金) 19:42:50.49ID:/TKqzZjq0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑スレ立てする時は3行にして下さい

■配布元
https://autohotkey.com/download/

■前スレ
AutoHotkey スレッド part30
https://egg.5ch.net/test/read.cgi/software/1644236539/

■日本語解説等
AutoHotkey Wiki
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://hdd.s300.xrea.com/ahk/
AutoHotkeyJp(過去ログdatあり)
https://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
https://www6.atwiki.jp/eamat/

■スクリプト投稿
Autohotkey専用うpろだ
https://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
https://pastebin.com/

■その他のテンプレ(5chのURL規制が厳しいのでpastebinに退避しました)
https://pastebin.com/raw/bWipuNmt

次スレは>>950が建てましょう。建てられなかったらレス番指定して頼みましょう
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2022/08/05(金) 19:52:15.03ID:uvVnAC2X0
立てても直ぐ荒らされそう
2022/08/05(金) 20:03:48.40ID:yPoU5tHa0
>>3
なんなの?

中国?
2022/08/05(金) 20:54:43.98ID:Dm2nR56E0
利益があるからやるんだろうけど、
どんな利益があるんだろう。興味深い。
2022/08/11(木) 10:50:48.29ID:m5UQ93DDr
質問させてください

文末に重複があったら削除したいのですが、うまく動きません。
文末の $ を入れないと削除はされるのですが、文末のみの重複に限定したいのです。

title1 = aaabbb xyz
title2 = xyz


title1 := RegExReplace(title1,title2$,"")
msgbox %title1% %title2%
2022/08/11(木) 11:04:28.53ID:NkG5LSw70
title2 "$"
2022/08/11(木) 11:21:21.09ID:m5UQ93DDr
>>7

期待通りのことが出来ました
ありがとうございました!
2022/08/14(日) 12:48:43.42ID:XXvwhqy40
このスレたまにしか見ないけど突然前スレ終わっててビビった
2022/08/15(月) 17:24:10.49ID:ZTdf6VGh0
タイマーイベント内でマウスの右クリックを検知して座標を取得したいのですが
うまく行きません。添削お願いします。


OnTimer_RButtonClick:
global gTmerEndFlg
global wk_xPoint
global wk_yPoint

GetKeyState, state, RButton, "p"
if( state = D ){
MouseGetPos, wk_xPoint, wk_yPoint,,,
SetTimer, OnTimer_RButtonClick, Off
gTmerEndFlg := 1
}
Return
2022/08/15(月) 17:44:31.41ID:R1eaQbaI0
"D"
2022/08/15(月) 17:47:30.69ID:ZTdf6VGh0
>>11
ありがとうございます。
凡ミス過ぎる・・・。おかげで夏休みの宿題片付きそうです。
2022/08/17(水) 16:56:44.57ID:KsHadKqZ0
例えばEXCELで、
「シートA」がアクディブか、「シートB」がアクティブかを、
Autohotkeyで判定できますかね?
2022/08/17(水) 18:48:00.23ID:2BAVRMcb0
正攻法では無理
2022/08/17(水) 19:12:30.69ID:kIebPVjG0
ウィンドウサイズ取得して左下からの相対座標でシートAとシートBのタブの相対座標を計算しておいて
タブの座標の色で判定するとか?
(最適解とは思えないけど)
2022/08/17(水) 19:23:48.01ID:KsHadKqZ0
>>15
まあ、その泥臭い方法だとできますね…w

あと、EXCELのウィンドウを手前にする必要がありますね…w
2022/08/17(水) 23:15:11.96ID:KsHadKqZ0
>>16
あ、
もしかしたらできるかも…
2022/08/18(木) 10:51:08.97ID:NO3EHSnN0
質問すみません
ブラウザでタブが複数開いていてその内クックパッドのページでだけ動作する
スクリプトを書きたいのですが、上手くいきません
以下の記述でタイトル指定しても無視されてるみたいで
全てのタブでshift+pgdnが実行されてしまいます
どう修正したらよいでしょうか?


WinActivate, ahk_exe firefox.exe
SetTitleMatchMode, 2
if (WinTitle =クックパッド)
{
send, ^{PgDn}
}

Else
{
MsgBox, none
}
ExitApp
2022/08/18(木) 11:24:58.40ID:3HYKiH080
>if (WinTitle =クックパッド)

この文法はahkには無いのでは
WinActivateしたあとIfWinActiveで分岐
2022/08/18(木) 11:54:41.90ID:NO3EHSnN0
>>19
おおお、一発で直りました
wikiや解説ページを参考にしてたんですがまさか文法自体が無かったとは
お陰様で解決です、ありがとうございました
2022/08/18(木) 12:01:03.61ID:YUO4Xk0o0
WinActivate, 〜 の上で何やってるか分からないが、if (WinTitle =クックパッド) の
「クックパッド」が変数名なら式は成立するけど「クックパッド」が文字列なら "" で囲まないとだめだろ
2022/08/18(木) 12:02:39.71ID:YUO4Xk0o0
ああ…ページ更新しないままレスってしまった○| ̄|_
解決したんなら良かったね
2022/08/23(火) 12:21:50.60ID:Cs7plx7/M
win+y、ctrl+yにはホットキーを割り当てられますが、
どういうわけかwin+ctrl+yには割り当てられません(割り当てても発動しない)
これは「おま環」でしょうか?
2022/08/23(火) 12:32:51.70ID:p5HwKJnd0
>>23
おま環というよりただのおまミスじゃね
書いたスクリプト貼れば
2022/08/23(火) 17:44:29.61ID:yxlja+qw0
v1.1.34.04
2022/08/24(水) 23:21:04.84ID:HUC+HBvh0
>>23
使ってるキーボードがその組み合わせの同時押しに対応してないとかは?
2022/08/24(水) 23:42:20.03ID:CaKTK6FI0
どういうスクリプト書いてるのか貼ろうとしない時点でお察し
無変換とか非修飾キーならまだしもCtrl+Winの3つ押し出来ないキーボードなんてまずあり得んし
2022/08/25(木) 00:49:59.43ID:DZGBU5100
CapslockをCtrlに置き換えとかしてる可能性もって思ったんよ
2022/08/25(木) 01:31:33.65ID:HvwW5Qsg0
まあそういう時はね
タスクトレイのスクリプトをOpenしてKey historyを見るのが定石よ
あとソフトウェアキーボードで確認するのも大事
スクリーンキーボードでもタッチキーボードでもOK
昨今の高級()キーボードには専用ユーティリティー付属なのが多くて
こいつが悪さをしている可能性もなくはないので
2022/08/25(木) 01:54:36.14ID:26F0up850
だからまずは本人出てきてスクリプト貼るのが先だっての
それを見もせずに空想であれこれ言っても無意味
2022/09/07(水) 14:51:22.09ID:GinzskfR0
このスレで質問しない方がいいよ
答えてくれないから笑

Yahoo!知恵袋で質問した方がまだ良い
2022/09/07(水) 15:06:19.53ID:wS8S8zE60
>>18の様にちゃんとスクリプト貼って質問すりゃ答えてくれてるがな
知恵袋()
2022/09/07(水) 15:21:36.59ID:6I5eoeDw0
情報全然出さない or 後出しで、エスパー期待するのはちょっとな。
2022/09/07(水) 15:25:59.64ID:wS8S8zE60
>>6>>10もちゃんと答えてもらえてるしな

>答えてくれないから笑 ←
2022/09/26(月) 13:30:02.05ID:BY6iQps40
単純にctrlとtabキー同時押したいんですけど
どう書けばいいんでしょうか?
2022/09/26(月) 14:03:31.60ID:VMr/5Xk50
>>35
wikiでSendのページを読みましょう
2022/09/27(火) 12:33:16.29ID:w4iQavtm0
>>36
ありがとうございます
以下のように作ってみたんですが
違う動作をするんですが
何か間違っているんでしょうか

Send, 山Tab
実際の動作としては
ctrl shift z で動いてるようです
2022/09/27(火) 14:22:40.25ID:s9W4/Dyt0
>>37
山 ってもはや釣りにしか見えんのだがw
書いたコードはそのままコピペしな

それとTabを送るときは { } で囲う
>>36ちゃんと読もうな
2022/09/27(火) 21:10:31.06ID:8ySQGzJc0
山w
2022/10/02(日) 04:26:36.62ID:pV5yvUuX0
LShift連打の有効無効をIfを使用しbool変数で切り替えるようにしているのですが
IfのFalseブロックに入ったとき何も処理をせずにLShiftを押しっぱなしの状態をマクロを使用していない時と同じ挙動をさせたいのですがどうすれば良いでしょうか


Send, {LShift}
細かく連打されてしまいダメでした


While GetKeyState("LShift","P")
{
Send, {LShift Down}
}
Send, {LShift Up}
これも「LShiftが押されている状態」を細かく入力している感じでダメでした
2022/10/02(日) 07:52:19.86ID:rP4asXXJ0
> LShift連打の有効無効をIfを使用しbool変数で切り替えるようにしているのですが
ここの判定部分を#Ifでやりゃいいのでは?
肝心な部分のソースがないから知らんけど
2022/10/02(日) 16:55:55.45ID:pV5yvUuX0
>>41
仰る通り#Ifで解決しました
ありがとうございました
2022/10/04(火) 12:02:15.23ID:HYSMre/80
トラックポイント付キーボード TEX Shura の購入を検討中ですが、
マウス右ボタンを押してる間、鍵盤右側をテンキーとして使えるようにするのは可能ですか?
2022/10/04(火) 12:30:30.35ID:0Kn+4E9H0
>>43
可能だけどそれによる弊害もあるのでお勧めしません(右ボタンドラッグが出来なくなるなど)
無変換やAppsキーなどあまり使わないキーをを修飾キーとして使った方が良い
2022/10/04(火) 13:39:26.56ID:wAQ4FAs30
TEXはプログラマブルキーボード作ってたと思うけど Shura は違うのかな?
ハードウエアマクロでやれるならそっちのほうがいい
2022/10/04(火) 14:27:15.53ID:HYSMre/80
なるほど マウスジェッウチャーが使えなくなるのか
左ボタンの方を使えばいいのかな?
2022/10/04(火) 19:53:34.31ID:z9pZ/0ve0
>>46
ドラッグ操作一切しないなら良いんじゃね
何事も自分でトライすることが大事だしな
2022/10/04(火) 22:33:58.11ID:aJlWJ7UH0
失敗しても簡単に戻せるのがAHK
2022/10/04(火) 22:38:59.57ID:gq9Z6JBK0
>>43
それだと両手が必要だからキーボードのみで片手だけで完結できるようにした方がよくない?
自分は変換キーのモディファイアでテンキー化してるけど、そのキーボードだと別のキーにしないといけないかな
2022/10/05(水) 11:40:06.43ID:xjGMIgt80
zが真ならzを代入、偽ならhelloを代入ってどうやって書くのがスマート?
期待した挙動を示すのは下二つしかないけどこんなの嫌だ

z := 0

a := z or "hello" ; => 1
b := z || "hello" ; => 1
c := z ? z : "hello"
if(!(d := z)) d := "hello"
2022/10/05(水) 12:15:33.97ID:sSg6WA/ra
言語によって仕様が違う二項演算子の計算順と副作用に頼った書き方をするほうが
スマートじゃないと思うけど・・・
2022/10/05(水) 12:56:38.69ID:1Xl/bfT40
下二つが嫌な理由がわからないのだが

数値と文字列で比較している以上
上二つはどんな言語でも期待した挙動にはならんぞ
2022/10/05(水) 13:57:00.31ID:FKjFoZwt0
>>50
switch もあるよ
スマートか?そんなもの知らん
54名無しさん@お腹いっぱい。 (ワッチョイ 7fdc-eWb8)
垢版 |
2022/10/07(金) 02:29:05.92ID:e7Xju8+j0
曜日は解ったんですが、○時~○時までってどうやって書けばいいですかね?

if (A_DDDD == "月曜日","水曜日","金曜日")
2022/10/07(金) 11:40:20.22ID:klRLsfuu0
いい加減wiki見て自分で考えるクセ付けろよ
2022/10/08(土) 04:33:12.20ID:mD5W1gnQ0
wikiも内容が分かりにくいんだよね
2022/10/08(土) 13:33:27.54ID:r+v8f2dF0
altキーでIMEの切り替え(かなと英字)って出来ないでしょうか?
左altで英字 右altでかな のようなものは先人の方がいるのですが、alt1つでのIME切り替えが調べても出てこず…
宜しくお願いします。
2022/10/08(土) 14:10:19.40ID:wgufoeKZ0
IME_SET(!IME_GET())
IMEトグル自体は↑でいける(要 IME.ahkインクルード)
https://w.atwiki.jp/eamat/pages/17.html

ただしaltをトリガーにするのは最近のwindowsでは難が出る可能性あり
alt-ime-ahkなどのソースを参考に工夫するといいよ
2022/10/08(土) 14:31:22.62ID:zHQr5LKD0
AutoHotkeyの基本中の基本機能を理解してれば余計な事せず一行で済むと思うんだが…
やりたいこと違ってたらスマン
2022/10/08(土) 14:34:57.31ID:zHQr5LKD0
>>59
>余計な事せず
この表現は悪かった
特別な事せず に訂正
2022/10/09(日) 03:07:24.78ID:QnWuAlr/0
「英数」キーのVKを使えば、ANSIでもJISでもイケるよね?
Alt::Send,{VKF0}
2022/10/10(月) 15:29:08.39ID:lzWY/cPe01010
>>58
IME_SETでいけますかね
altキーの他のキーと組み合わせた時はちゃんと動作してほしいです
2022/10/10(月) 19:16:09.54ID:FnI1IryF01010
IMEのON/OFF自体はIME_SET()でも>61でもいける
altの挙動は工夫しないとだめ
2022/10/10(月) 21:03:24.42ID:YhwK7IiZ01010
ああ>>61じゃ「英数」に変換されちゃって、Alt修飾が一切不可になるのか

レジストリでAlt→F24に変換し、AutoHotKeyは
F24::Send,{VKF0}
とかで回避せんとダメだね
2022/10/10(月) 22:08:16.33ID:m8oS8Phr0
文字入力するときの、入力カーソルの場所って取得できる?

Google日本語入力みたいに。
2022/10/11(火) 12:27:59.51ID:OMxLL6kOa
>>62
LAlt & F13::return
LAlt::send, 〇〇

1行目でLAltをコンビネーションキーとして定義しておく。
単押しの時だけ2行目の動作、定義されていない組み合わせの時はAltのままにできる。
2022/10/16(日) 19:05:55.46ID:kl4M2UqF0
ctrl + X に矢印キー↓を割り当てたんですが、ctrl + X の「切り取り」の機能を他のキーに割り当てるにはどうしたらいいですか?
^T::Send, ^X みたいにすると単に下矢印しか出力されません。
コピーして削除にすればほぼ置き換えられますが、一部のアプリケーションで微妙に動作が違います。
2022/10/16(日) 19:08:53.17ID:Yvlik8to0
$^t
2022/10/16(日) 19:42:04.18ID:kl4M2UqF0
>>68
うまくいきました。感謝です。ありがとうございました。
2022/10/17(月) 13:36:49.23ID:RxUUNAbdd
autohotkey.comが死んだ今、AutoHotkey_Lってどこで入手すれば良いの
2022/10/17(月) 13:44:47.14ID:s52yQWDy0
死んでないけど?
2022/10/17(月) 14:35:02.17ID:SKkajNNXd
すみません生きてました
1.1.34.04も入手できました
ありがとう
73名無しさん@お腹いっぱい。 (ワッチョイ 2bdc-w9bA)
垢版 |
2022/10/21(金) 00:52:55.90ID:Xzcdz+ek0
同じホットストリングをIME状態で分岐したいのですが、IME ONだけうまくいきます。
OFF時はどうやって書けばよいですか?

#if !IME_GET(1)
:*?:/11::""{Enter}{left 1}
#if

#if IME_GET(0)
:*?:/11::""{left 1}
#if
2022/10/21(金) 08:37:12.61ID:6HMTdr3r0
IME_GET(WinTitle="A")

引数はWinTitleなので0とか1とか入れたらダメ
75名無しさん@お腹いっぱい。 (ワッチョイ 2bdc-w9bA)
垢版 |
2022/10/21(金) 09:50:00.13ID:Xzcdz+ek0
>>74
ありがとうございます出来ました
#if (IME_GET() = 1)
:*?:/11::""{Enter}{left 1}
Return
#if

#if (IME_GET() = 0)
:*?:/11::""{left 1}
Return
#if
2022/10/23(日) 20:55:32.02ID:uUOu1k1D0
キーボード右側にあるシフトキー+矢印キーで下記のショートカットを実現したかったけど自力では無理だったわ

「右Shift+下キー」で「全て選択(Ctrl+A)」
「右Shift+左キー」で「コピー(Ctrl+C)」
「右Shift+右キー」で「貼り付け(Ctrl+V)」
「右Shift+上キー」で「切り取り(Ctrl+X)」

よろしければ正解の記述が知りたいっす
2022/10/23(日) 21:09:21.38ID:oSxsO/JW0
諦めましょう
2022/10/23(日) 21:22:06.36ID:GICQ4rt00
そもそもShift+矢印は範囲選択だから、厄介だよね?
2022/10/23(日) 21:27:41.44ID:p2kRp6br0
誤爆する未来が見える
2022/10/23(日) 22:55:55.36ID:NzC8nYy90
コンビネーションキーでいけんじゃない?
試してないけどRshift起点にすりゃLshiftや矢印の挙動も殺さずいけそうな気はする

個人的にはLshift+矢印は片手で範囲選択できる有能操作キーなので
そこを潰すなんてとんでもないと思ってる
2022/10/24(月) 10:15:04.65ID:vUKmm1ej0
AutoHotkey超初心者です。
質問があります。
スクリプトを書いたのですが、動作しません。
どこが間違っているのか教えて下さい。

;「Insert」が押されたら、「Alt+F4」が押されたことにする。
Insert:: Send,{Alt}{F4}
2022/10/24(月) 10:46:57.23ID:UBfKOW/ja
>>81
それだと同時押しにならない
send, {Alt Down}{F4}{Alt Up}
もしくは
send, !{F4}

ここ見るといいよ
http://ahkwiki.net/Send
2022/10/24(月) 17:25:57.17ID:vUKmm1ej0
>>82
教えていただいたリンク先を見ても理屈は理解できませんでしたが、動作はするようになりました!
どうもありがとうございます!

^!+#でスクリプトを書くと楽そうです。
2022/10/24(月) 17:59:42.09ID:D1MgUsK30
>>83
キーボードにはキーの「押し下げ」とキーを「離す」の2つの動作があることを常に意識しような
>>81の書き方だとAltを押し下げて、Altを離して、F4を押し下げて、F4を離す
という動作になるから Alt+F4 同時押しにならない

^!+# は元から修飾シンボルとしてAHKが定義してるのでそのままで同時押し前提となっている
要するに>>82の {Alt Down}{F4}{Alt Up} の省略形が !{F4}
2022/10/25(火) 07:08:11.38ID:2HD1Pqk60
>>84
なるほど。理解できたような気がします。どうもありがとうございます!
86名無しさん@お腹いっぱい。 (ワッチョイ 79b0-T+yX)
垢版 |
2022/10/30(日) 10:25:44.60ID:+ob+x67t0
>>76
$+Down::{
 if GetKeyState("RShift", "P")
  Send("^a")
 else
  Send("+{Down}")
}

これでどうだろう
Shift+Down が押されたとき(LShift でも該当)
もし RShift が押されていたら Ctrl+a を Send し、
違えば元の Shift+Down を Send する

先頭の $ は、同じキーを内部で送信する場合があるので必要
(無限ループにならないように)

v2 用の文法で書いたし、テストはしていない
ロジックの参考になれば

(この方法の欠点は、
LShift+Down をゲームなど他の用途で使うと弊害があるかもしれない
スピードが要求される場合や、
押しっぱなしにする場合
このあたり、私にはわからない)
2022/10/30(日) 21:07:07.14ID:i8WL978r0
1.1.35.00
2022/10/31(月) 01:00:45.84ID:4tz5na+d0HLWN
>>87
v2からいくつかバックポートされたのは良いな
将来的な移植が多少楽になる
2022/10/31(月) 07:55:44.82ID:GBkwuq/oHHLWN
>>76
「Rshift & 方向キー::」でええんじゃない?
2022/10/31(月) 10:29:48.83ID:Kxp0Ifq30HLWN
>>88
v1って、将来廃止になるの?

大量のスクリプトの移植が大変w
2022/10/31(月) 12:59:09.79ID:4tz5na+d0HLWN
>>90
v2が出てから2-3年のメンテナンス期間を経て終了じゃないかな
有料コースがあるようなスクリプトじゃないから、そんな長くはサポートしないと思う
v2自体は今、b13で更新ペースも短くなってるから今年中には正式リリースする可能性が高い
2022/10/31(月) 14:21:06.09ID:Kxp0Ifq30HLWN
>>91
そうですかw

大量にスクリプトを作ったので、移植が大変だな…w

どうせv2が正式になるなら、今から移植進めようかな…w
2022/11/03(木) 16:32:24.45ID:lOjYoenZ0
capsキーを押すたびにIMEを切り替える(トグル式)にはどうすればいいのでしょうか?
changekeyでCAPSキーをF14キーにしました。
しかしそこからIMESETを勉強したのですがIMEのオンとオフはあるのですがワンキーでの切り替えが分からず…
USキーなのでかな英切り替えキーみたいなものもありません
宜しくお願い致します。
2022/11/03(木) 16:53:28.37ID:TvxHMwpE0
>>93
何のIME使ってるか知らんけど、IME側でF14キーをIMEオン/オフ切り替えキーに設定すればいいと思ったけど出来なかったっけ?
2022/11/03(木) 17:21:33.92ID:lOjYoenZ0
>>94
IMEオン/オフ切り替えキーというのはどういう記述をすればよろしいでしょうか?

IME_SET(0)と IME_SET(1)はそれぞれ別ですし、調べても出てこず分かりません…
2022/11/03(木) 17:25:53.67ID:lOjYoenZ0
すいませんvkC0で出来ました!IMEはこれだったんですねありがとうございます
97名無しさん@お腹いっぱい。 (ワッチョイ 5190-Tk+f)
垢版 |
2022/11/03(木) 20:17:39.73ID:AqMq0WYH0
v2 への移行、結構難儀してる
#Include と Lib フォルダがうまく制御できん
2022/11/03(木) 20:27:49.20ID:5WSCqZqu0
SC03A::Send,{VKF0} ; 英数
+SC03A::Send,{CapsLock} ; Caps

これだけでイケるね
2022/11/03(木) 20:32:34.11ID:UVaNn5At0
そもそもAHK使う必要が無い
IMEのプロパティ設定だけで出来ること
2022/11/03(木) 20:40:45.95ID:5WSCqZqu0
不要なのは、ChangeKeyでのF14変換では?
2022/11/03(木) 21:32:54.30ID:Eb+9h7ipd
v2でコントロール指定する方法がよくわからない
それだけでもうv1からの移植挫折しそう
2022/11/03(木) 23:27:54.42ID:BuJPiAZX0
v1→v2への変換ツール的なものの可能性はありますか?
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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