AutoHotkey スレッド part30 IDのみ

■ このスレッドは過去ログ倉庫に格納されています
2022/02/08(火) 18:38:19.33ID:UTRGyCNl0
元々がIDのみの表示で番号の始まっているスレを途中から別の表示で乗っ取るのは「背乗り」行為に当たるので、IDのみの表示で進行とします

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

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

■日本語解説等
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
2023/04/26(水) 15:58:46.75ID:lV75YWmm0
>>122
タスクスケジューラーから最上位特権で実行したらイケないかな?
ツイッター/Giko_Hanyern/status/1572749712335446016
2023/04/26(水) 16:11:36.17ID:rPAoeGO10
>>126
MsgBox % " x+y = " x+y
MsgBox % "The value of Var is " . Var . "."
MsgBox % ("The sum of X and Y is " . (X + Y))
2023/04/26(水) 16:15:01.23ID:XJXsub2s0
>>126
なんで>>125の言うとおりにできないのか
130名無しさん@お腹いっぱい。
垢版 |
2023/04/26(水) 16:18:25.84ID:fzHyTn/Y0
>>128
できました。ありがとうございます。
そういうことだったんですね。
勉強になりました。
2023/04/27(木) 12:43:37.37ID:iW74hXYP0
AHKスクリプトで作ったGUIウィンドウでウィンドウタイトルが固定でないものを
IfWinExistなどでマッチングさせるにはどうしたらいいでしょうか?

○○.ahkのGUIウィンドウというような感じで指定できる方法などありますか?
2023/04/27(木) 13:55:50.13ID:FUOB1sNF0
>>131
ahk_pid ◯◯.ahkのPID ahk_class AutoHotkeyGUI
2023/04/27(木) 15:02:02.79ID:iW74hXYP0
>>132
手動で(自分がそのウィンドウだとわかっていて)
そのウィンドウを直接指定してPIDを調べるというのはできるのですけど
自動でスクリプト名などから割り出してウィンドウを指定したいのですが方法がわかりません
134133
垢版 |
2023/04/27(木) 15:10:23.70ID:iW74hXYP0
説明が下手なので変な文章になってしまったかもしれませんが
タイトル指定の代替として都度手動で調べたりすることなく追従させたいという事です
2023/04/27(木) 15:22:11.05ID:FUOB1sNF0
>>133
スクリプトはGUI作らなくても必ず非表示のメインウィンドウを持ってる(ListLinesとかで出てくるあれ)

そいつのウィンドウタイトルは
(スクリプトのフルパス) - AutoHotkey v(バージョン)
だから前方一致で探してPID取得できる
2023/05/06(土) 05:45:07.97ID:vtzHjqHw0
久々に使ったけど無変換キーはvkF0sc03Aじゃなくてvkf0にしないとだめなのか
wiki通りにずっとやってたらできなかったわ
2023/05/06(土) 06:26:40.46ID:Sr2OwPe+0
その仮想キーとスキャンコードの両方書くスタイル自体が廃止になった
2023/05/06(土) 11:38:37.83ID:gSC4mMc/0
無変換sc07B
変換sc079
2023/05/06(土) 21:56:02.28ID:vtzHjqHw0
ようするにそこらへんのキーは
vkF0かsc03Aみたいにどっちか書けばいいのか
2023/05/07(日) 10:45:28.45ID:ZT8Dl3jT0
Scan CodeとVirtual Key Codeを使い分けられる

例えばJISキーボードをUS配列で使うためにUS104ドライバ動作させると
5つのキーは無効になるけど、AutoHotKeyでドライバの代わりにSC→VK変換させれば使えるようになる
SC07B::VK1D ; VK_NONCONVERT 無変換
SC079::VK1C ; VK_CONVERT 変換
SC070::VKF2 ; VK_OEM_COPY かな
SC073::VKE2 ; VK_OEM_102 \
SC07D::VKDC ; VK_OEM_5 ¥
2023/05/07(日) 11:13:42.00ID:6T9qFBCS0
>>140
未検証だけとこれマジならすごいありがたい情報
142140
垢版 |
2023/05/07(日) 12:08:01.90ID:ZT8Dl3jT0
>>141
俺が実際に使ってるんで、検証済みっす
2023/05/13(土) 05:16:17.49ID:wIr4Hu5e0
#if 直下にこれ仕込んどくと便利

EditMe() {
e := Exception(0, -1)
run % Format("myeditor.exe -line {1} -file ""{2}""", e.Line, e.File)
}

#if WinActive("ahk_exe notepad.exe")
+!Q::EditMe()
2023/05/14(日) 19:41:47.39ID:SpZWqZhg0
ChatGPTもBardもAHK v2の質問にはろくに答えてくれなくてつれぇ
ChatGPTは2021年までの情報しかないからしゃーないが・・
2023/05/14(日) 20:23:51.28ID:wLis/bTc0
公式サイトの V1→V2の変更点とか、各ページでV1↔V2で切り替えて
見られるから、それで何とかならんか?
V2でなくなったものなんかも、こんな風に実装しなはれ的なコード例が
大抵あるし。
2023/05/14(日) 20:56:38.42ID:vdcP1ne90
V2にすると速くなるって本当ですか?
2023/05/15(月) 09:48:50.28ID:0ANZuee90
v2はwindow spyで取得できなくなって操作も受け付けなくなったものがあるから移行したくても出来ないんだよな
そのためにv1v2混在させるならv1のままでいいかってなっちゃう
2023/05/16(火) 11:54:56.58ID:di1TSdIO0
ここ読めば1でもパフォーマンスは上がる余地はある
https://www.autohotkey.com/docs/v1/misc/Performance.htm

そもそもAHKで遅いような処理書くなら
外部スクリプトに投げるのが手っ取り早い
2023/05/16(火) 13:24:36.49ID:fxYBD07v0
プログラムど素人がやっとAHKに慣れてきたというのに
2を使いたいなら一から勉強し直さないといけないのかorz
2023/05/16(火) 14:45:31.10ID:bfOlPNzX0
対して変わらんって。
他言語習得者ならV2の方が自然かけるし、大概の場合V1っぽく書けるし。
2023/05/16(火) 16:23:01.03ID:z+AiwZyr0
v1しか対応してないライブラリが残ってて困ってる
2023/05/16(火) 18:41:24.82ID:bfOlPNzX0
あ〜ある程度の規模のものになると自前で書き換えもしんどいか。
2023/05/16(火) 21:32:24.91ID:fxYBD07v0
そうですしんどいですorz
でもWindowsを使う数少ない理由がAHKなのでしがみつくしかない
154名無しさん@お腹いっぱい。
垢版 |
2023/05/17(水) 19:26:37.34ID:YbDlyAZ20
V2童貞なんだけどIME.ahkはV2で使えるの?
2023/05/18(木) 02:16:37.64ID:aVqMgVDQ0
中身が変わる文字列の4行目だけをまるまる削除したいのですがスマートにやるにはどうすればいいのでしょうか?
2023/05/18(木) 03:32:56.53ID:m4Xwoaak0
V2の情報が公式頼りだから時間だけ消費して折れる
ブログはほぼV1だからV2ではまるで使えない
V2にすると苦労するがV2で使い人は多いだろうな
2023/05/18(木) 04:00:09.93ID:ICsWNhV10
>>155
正規表現で置換
2023/05/18(木) 15:39:18.20ID:aVqMgVDQ0
>>157
ありがとうございます!
StringSplitとかで区切って~とか面倒くさいやろうとしてました
2023/05/18(木) 22:43:10.56ID:58DYFPVC0
UWSCからAHKかautoit に乗り換えようと迷ってたけど困ったな
AHKのいいとこは日本語の文献が多いことだったのに
2023/05/19(金) 06:27:08.82ID:SM+6djjW0
>>153
Linux版AHKはアカンの?
2023/05/19(金) 11:10:07.99ID:EbTobve50
>>159
autoitの利便性が見いだせない
AHK一択でちょっと込み入った処理はpythonでしょ
2023/05/19(金) 16:23:44.36ID:cqae+3LS0
ピソンてguiが難しいんだよね…
2023/05/23(火) 01:51:38.80ID:qHWX0/Vx0
半角全角の切り替えだけならvk19でリマップすればIME.ahkいらんよね
2023/05/23(火) 12:27:21.13ID:JtLhu4ps0
>>163
無いと困るっつーの

IME onで処理を止める(入力中と判断)
IME状態に応じてキャレットサイズとマウスポインタを変える
起動すると必ずIME offになるアプリでonにする
2023/05/23(火) 13:44:01.48ID:2Vhse2QX0
IME.ahkなんか難しいことなんにもやってないのに
自分で読んでみたこともないのか
166名無しさん@お腹いっぱい。
垢版 |
2023/05/24(水) 01:43:35.25ID:acjDN++40
>>163
なるべくどんな状況でも確実にOFFするために使ってるよ
2023/05/26(金) 00:11:57.64ID:c1g7n9Bd0
タイマーについて質問すみません

起動すると音だけ鳴って30分経つと終了のmsgboxがポップアップする
下のようなシンプルすぎるタイマーを作りました
たまに残り時間を知りたいことが出てきたので
何かキーを押してる間だけツールチップで今何分経過したかを表示させたいのですが
どんな式を追加したらいいでしょうか?
settimerで60000ms毎に変数に+1して・・・などおぼろげに想像するも
あまりに素人すぎて全く形にすることが出来ませんでした

SoundPlay, *-1
sleep, 1800000
SoundPlay, *16
msgbox, 30min
return
2023/05/26(金) 08:43:38.40ID:uk7fS3gc0
https://duckduckgo.com/?q=ahk+pomodoro+timer&ia=web
2023/05/26(金) 09:07:22.68ID:Wq8Okrmz0
cnt := 0
SetTimer, countup, 1000
SoundPlay, *-1
sleep, 1800000
SetTimer, countup, Off
SoundPlay, *16
msgbox, 30min
return

countup() {
global cnt
cnt++
}

F1::
ToolTip % cnt // 60 " min " Mod(cnt, 60) " sec"
sleep 100
; KeyWait "F1"
return
F1 up:: ToolTip
2023/05/26(金) 12:03:02.96ID:c1g7n9Bd0
>>168
ポモドーロタイマーというのがあるんですね、初めて知りました
今回はカウントダウン機能が欲しかったので少し異なるものでしたが
かなり便利そうだったので公開されてたahkを幾つか保存しておきました
どうもありがとうございます

>>169
正にこれを作ろうとしてました、完璧です
コピペしただけでは全く身にならないのでコードの内容を全部理解出来てから
お礼を書こうと思ったのですが、コアであろうcountup() { 略 }が何してるのか
wiki見ながらググってもよく判りませんでした
なので先に返信させて頂いてこれからじっくり、ahk 初めて、で出てくるサイトで
勉強することにしますね、素晴らしい物をありがとうございました!
2023/06/05(月) 19:49:57.34ID:s6jaA7//0
一つ情報提供を・・・

最近ChromeやEdgeやFirefoxでAutoHotkeyが効かなくなってお困りの方へ
ウイルス対策ソフトに「ESET」を使っておりませんか?
ESETをバージョンアップしたことにより、一部のブラウザでAutoHotkeyが効かなくなることがあるようです。

私は↓の方法で直りました!
ttps://www.jh4vaj.com/archives/37143
2023/06/06(火) 21:32:03.79ID:9bAtqEXG0
未初期化変数のデフォルト値って変えられないの?

"3joi3@reqwirjowej@"
とかにしてtypoしたときに分かりやすくしたい
2023/06/06(火) 22:06:32.47ID:Xmyfp1Hs0
>>172
変える意味がないから変えられない
2023/06/06(火) 22:24:01.41ID:EOs7ePVH0
ちゅうかそもそもの話で AutoHotkey に無関係やろそれ。
アンタのコーディング・プログラミングスタイルの問題。
2023/06/10(土) 17:50:53.71ID:WuavGT3n0
v2ならエラー吐くから嫌でも分かるな
176名無しさん@お腹いっぱい。
垢版 |
2023/06/10(土) 21:51:33.98ID:ZTh/5Uee0
Shift +「2」(sc003)キーで@を出すスクリプト

+sc003::@

こう書くと「@」じゃなく「`」(Shift + @のバッククォート)になっちゃうんですが、どうすれば良いですか?
2023/06/10(土) 22:23:49.54ID:0vreqA470
普通に
+2::@
でイケるんちゃうか?

ていうか日本語キーボードをUS-ASCII配列にしたいとか?
それなら AutoHotkey で弄るより、キーマップ変更の常駐物なり
レジストリ弄りの方がエエと思うけど。
178名無しさん@お腹いっぱい。
垢版 |
2023/06/11(日) 00:29:31.46ID:DBOvZWu20
>>177
V1で、+2::@も同じ結果でしたが、普通の結果じゃないみたいなので、念の為V2でも試したら成功しました
ありがとうございます


ですが今度は「{」の入力スクリプト
+sc01A::{

V1は正常にできてV2だとエラー
-----
Error: Missing "}"
▶︎ 001: {
The program will exit.
------
になってしまいます

表記を"{"や/{/にしても駄目でした
{ はV2ではどんな表記ならできますか?


お察しの通り、目的はJISキーでのUS配列の再現です
AutoHotkeyの勉強兼ねてやってます
このままやり方分からなかったら諦めて別の方法でやってみるつもりです
2023/06/11(日) 04:27:24.68ID:QJYFa2Xb0
+SC003::VKC0 でイケない?
2023/06/11(日) 06:44:59.43ID:ysLsrQv50
>>176
Send, @
2023/06/11(日) 07:32:58.53ID:EJYtQWxJ0
+SC003::SendText "{"
+SC003::Send "{Raw}{"
2023/06/11(日) 07:36:32.72ID:Ba/t18ei0
>>172
#WarnのUseUnsetLocalとUseUnsetGlobalとか
2023/06/11(日) 08:18:34.78ID:RVNeeTUS0
>>178
V2なら
+sc01A::send "{{}"
でダメかな?
184名無しさん@お腹いっぱい。
垢版 |
2023/06/11(日) 15:01:45.49ID:DBOvZWu20
>>179
V2では成功で、V1だとバッククォートになっちゃいました
>>180
両バージョンで成功しました
>>181
前者はV2で成功しました(V1ではエラー)
後者もV2で成功しました(V1では"{"という3文字が出力される)
>>183
V2で成功しました(V1では"{"という3文字が出力される)

V2で何とかなりそうです
ありがとうございました
185名無しさん@お腹いっぱい。
垢版 |
2023/06/17(土) 09:58:41.78ID:H5Hx9I3p0
バックスラッシュのキー(sc073)をShiftにして
2のキー(sc003)をShiftと一緒に押して@が出るようにしたいんですが

sc073::Shift
+sc003::SendText "@"

このスクリプトだとsc073とsc003一緒に押すと@じゃなく"が出ます
sc073ではなく元からのShiftキーを使うと正しく@が出ます
どうすればいいですか?
2023/06/17(土) 13:42:45.41ID:L5n38dfU0
Shift置換せずに、
SC073 & SC003::@
でいいんじゃ?
187名無しさん@お腹いっぱい。
垢版 |
2023/06/17(土) 14:59:15.42ID:H5Hx9I3p0
>>186
なるほど、@以外の組み合わせもこれでゴリ押しすればいけそうですね
ありがとうございます
2023/06/20(火) 04:34:37.23ID:sT1WC8H30
Version 2.0.3
バグ修正いろいろ
2023/06/28(水) 17:15:24.25ID:vl8/4m5J0
無変換でIME offに設定したのに無視される場合
sc07B::send {sc07B}
のように同じキーコードを送るとちゃんと動作する
(何故かSuppressedにされてしまう)
2023/06/28(水) 19:06:23.10ID:9d24A2oK0
>無変換でIME off
ahkでやらずIME側で割り当てろよ
2023/06/28(水) 19:22:12.41ID:vl8/4m5J0
Suppressedだから無理
2023/06/29(木) 13:49:31.57ID:HvNLPeRK0
いつになったらキーボードの入力はキーコード直接送信するようになるのかな
文字はUnicodeで一意に決まるし、装飾キーも今後増えることはないからコード割当てきるだろうに
ドライバでキーの位置を決めるなんて無くなって欲しい
2023/06/29(木) 14:08:57.88ID:P65O2+vE0
タスクバーの1番目に例えばエクスプローラーとかピン止めしておいて、
win-1を押すとタスクバーをクリックしたのと同様にアクセスできる
エクスプローラーが複数起動していた場合は、win-1を1回押すと1番目で2回押すと2番目が選択できる

ahkで何かのキーを ::#1 みたいに定義すると、起動しているのが1つなら同様に動作するけど、
複数起動していると画面がおかしくなる
多分タイミングの問題なので、ゆっくり送信すればうまくいく筈だと思うけど、
#1 をゆっくり送信する方法が判らない
2023/06/29(木) 14:45:32.45ID:P65O2+vE0
例えば、以下のようにして、無変換(sc07B)+qでwin-1を発生させようとしても、
1回目を押して正しくアイコンが表示されるところまでは行けても、
無変換+qでKeyWaitしている最中に、再度無変換+qの処理を開始できない
(他のキーなら受け付けるし、入れ子は正しく処理される)

sc07B & q::
  if (win1down != 1) {
    send, {Lwin down}
    win1down = 1
  }
  send, {1 down}
  KeyWait, q
  send, {1 up}
  KeyWait, sc07B
  send, {Lwin up}
  win1down = 0
  return
2023/06/29(木) 23:58:49.00ID:LnRI2dek0
これでどう?

sc07B::
win1down := 1
return

sc07B up::
if(win1down = 1)
send {sc07B}
if(win1down = 2)
send {LWin UP}
win1down := 0
return

~sc07B & q::
if(win1down = 1){
Send {LWin Down}
win1down := 2
}
if(win1down = 2)
send 1
return
196名無しさん@お腹いっぱい。
垢版 |
2023/06/30(金) 17:51:59.54ID:I13+A2Ls0
選択したファイルの絶対パスをダブルクオーテーション抜きでショートカットでコピーする方法ないでしょうか?

https://qiita.com/flhtc1964/items/dcee80576370785f0339
こちらを参考にしたのですが、windows純正のパスのコピーを使用するのでどうしてもパスの前後に"が付いてしまいます。

"を毎回削除するのが煩わしいので、どうにかパスをそのままコピーしたいのですが方法ないでしょうか?
2023/06/30(金) 18:00:42.92ID:8GKPkB550
ClipboardChangeで書換
2023/06/30(金) 18:02:46.59ID:ktXPCW8H0
Trim()の1行が煩わしいんじゃ他の方法も無理では
2023/06/30(金) 18:19:03.59ID:ZTZJy8xI0
RegexReplace(str, """", "")
2023/06/30(金) 19:29:19.96ID:O3h73S2Q0
ファイル選択して ctrl + c で終わりだべ
"" など関係ねぇべよ
2023/06/30(金) 19:44:30.66ID:lLRwY/Li0
文字列を貼り付けたい場合はソフトが対応してないと無理だべ?
2023/06/30(金) 20:37:05.62ID:O3h73S2Q0
clipboard := clipboard
この一行追加でどうだべ
2023/07/01(土) 14:44:49.97ID:JSbfNA7M0
>>195
なんで動くか判らんけど動くなあ
2023/07/02(日) 18:54:37.91ID:mq1/CYK10
1.1.37.00
2023/07/02(日) 19:10:55.46ID:WAJOWZNC0
無変換+qだけじゃなくて、無変換+wとかにも拡張するのは簡単だった

ただなー
こんな大仰なことしなくても、yamyだったら
key M1-q = W-_1
だけで完全に動作したんだよな

yamyの方がより低いレイヤーでフックしているから
ahkの方が行儀がいいんだけど、奪い合いになると負けてしまう
2023/07/04(火) 22:59:47.60ID:bLMqkorL0
麻生なんだー
2023/07/04(火) 23:24:03.60ID:UvZzeLwp0
たまにctrlとか押しっぱなしになるのも、奪い合いに負けた結果なんだよな
もっと低レベルにはできないんだろうか
2023/07/06(木) 00:38:30.75ID:equDk8Un0
PathMatchSpecが日本語のテキストで誤動作する問題で七転八倒してしまった…
なんでこんなバグ放置してんだアホエスは
そしてAHKはワイルドカード判定標準でつけろよ
2023/07/06(木) 05:37:54.46ID:152urR560
ちょっとググってみたら PathMatchSpec 関係は色々と仕様変更が積み重なったり
挙動が怪しいってあるな。PathMatchSpec〜 で色々とバリエーションがあるし。
(自前でAPI相当の処理を書いている人とかも)
2023/07/06(木) 22:54:46.22ID:ZPNlWptz0
AutoHotkey初心者です。

Space::Space
Space & G::Send,{Space}
Space & D::Send, !{Left}
Space & F::Send, !{Right}
Space & W::Send, ^w
Space & Q::Send, +^t

このようなスペースキーを基本にしたショートカットのためにAutohotkeyを導入しました。
その割当自体は出来たのですが、
これだとPhotoshopでのスペースキー単体押しっぱなしで使用する手のひらツールが使えなくて困っています。

上記1番上はボタン離さないと反応せず、2番目のは連続押し扱いになってしまいます。
雑魚すぎて押しっぱなしをどうすればいいか分からないので先輩方ご教授よろしくお願いします。
2023/07/06(木) 23:09:55.63ID:ngOiScvr0
Space::Space
なんか普通は要らんのでは
2023/07/07(金) 02:12:46.03ID:i2+/p1fp0
USキーボード使いか
2023/07/07(金) 07:00:54.88ID:tGky2Wy+0
Photshopを持ってないので試せないけど、これは?

~Space & D::Send, !{Left}
~Space & F::Send, !{Right}
~Space & W::Send, ^w
~Space & Q::Send, +^t
214名無しさん@お腹いっぱい。
垢版 |
2023/07/07(金) 08:00:59.63ID:gKueDstZ0
日本語キーボードにして無変換キーとか使った方が良いと思うよ
2023/07/07(金) 11:44:12.53ID:pJkFv0pf0
そいつ例の荒らしだろ
2023/07/07(金) 12:32:39.40ID:SgVFrTeV0
Space::Space
Space & LButton::
Send {Blind}{Space Down}
Send {Blind}{LButton Down}
return
Space & LButton up::
Send {Blind}{LButton Up}
Send {Blind}{Space Up}
return

kritaで動作確認した限り大丈夫そうだけどおすすめしない
2023/07/07(金) 19:05:25.60ID:Hk97H3l30
usにもスペースの両側に汎用モディファイアがあると便利だと理解してる人おらんのかな
2023/07/08(土) 13:46:17.68ID:KfMZLAsY0
:=を=で書くとどうなる?
2023/07/08(土) 15:35:21.76ID:KDIUdI2h0
v1.1.37.01
2023/07/08(土) 18:24:46.41ID:KDIUdI2h0
v2.0.4
2023/07/08(土) 22:11:35.60ID:/y72iKeO0
>>219-220

Release v2.0.4 ・ AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.4
2023/07/08(土) 22:21:33.01ID:KfMZLAsY0
今日2.0.3にしたのに
2023/07/09(日) 08:47:46.64ID:O8ddG7Yq0
A_Indexの代わりに別の変数をループに使えないものか
そもそも思い出せないし、長いし、意味不明だし、多重ループが混乱するし、
v3にした時には是非追放して欲しい
2023/07/09(日) 09:03:31.70ID:kubK6LSG0
そんなの自分で定義すればいいだけじゃん
2023/07/09(日) 09:54:52.67ID:yVBZYIBZ0
loop でも while でも好きなように組むだけやろ。
2023/07/09(日) 15:09:38.14ID:jS/iPaVQ0
不満点の全てが意味不明で笑う
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

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