探検


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/08/01(火) 06:12:22.99ID:LeIBHMIx0
alt-F4をキャンセルしたい時はesc
クリックでもいいけどそもそもマウス使わずに済ませたい人用の機能だし、
元のフォーカスも失ってしまう
2023/08/01(火) 06:36:36.43ID:+AylZDS10
元のフォーカス失ったときにどーこーする、って考えたらできそう
342322
垢版 |
2023/08/01(火) 08:59:22.86ID:y+eyYRkp0
>>339
どういう意味?

ウィンドウ外?
GUIとは?
2023/08/01(火) 09:18:46.41ID:D6173uez0
Alt + F4 はどうでも良くて、ウインドウ外をクリックでウインドウを閉じたい
ちゅうことやと思うけれど…… それだと実現したい状況・要件が不十分やろ。

デスクトップ上に単一ウインドウしかなけりゃそれでも良いけれど、複数の
ウインドウがあったらどれを閉じるの?プロセス総ざらいとかやるとタスクバー
タスクトレイ内の常駐系とかも閉じることになるで。
2023/08/01(火) 09:34:34.97ID:NSGjAKJ50
ウインドウ外をクリックでウインドウを閉じるGUI
つうことで作ってみた(非アクティブになったら閉じる訳ではない)

#NoTrayIcon

Gui, New, +HwndMyGuiHwnd, テストタイトル
Gui, Add, Text, x-0 y-0 w130 h30, テストテキスト
Gui, Show, x200 y100 h150 w250
Return

GuiClose:
ExitApp

~LButton::
MouseGetPos, , , Hwnd
if (Hwnd != MyGuiHwnd) {
gosub, GuiClose
}
Return
2023/08/01(火) 12:21:58.81ID:pJ50EAS30
Alt+Tabの言い間違いじゃなくって
2023/08/01(火) 14:20:10.82ID:D6173uez0
ああ「Alt + Tab」か、それなら GUI の意味も分かるわw
347339
垢版 |
2023/08/01(火) 21:57:06.37ID:u4ROO/up0
やりたいのはALT + F4で出てくるwindowsのシャットダウンというウインドウのように
ウインドウ外をクリックすると閉じるGUIにしたいということです
>>344
左だけでなく中、右クリでもこのウインドウは閉じるので何か一括で楽な方法があるのかなと思った次第です
もう少し自分で考えてみますありがとうございました
2023/08/02(水) 10:22:25.49ID:qZ0rgwh10
奇天烈な発想は玄人から出てこんので、もっとやれwwwおもしれー
2023/08/02(水) 13:03:59.93ID:75suMALx0
タッチパネルでウィンドウの外をタップすると
そのウィンドウが消えるというのはあると思う
2023/08/02(水) 13:07:04.26ID:a9LlfJ7o0
web広告によくあるUI
2023/08/02(水) 14:39:20.58ID:6XD1QhP70
>>347
そこまで説明があって初めて万人に伝わる。
>>350
これが一番分かりやすくて実装しやすいかも(誤爆が怖いけどw)。

ちなみにワシは超多ボタンマウス、ロジのG600の(めったに使わないので)
触りにくいサイドボタンに「Alt+F4」のマクロを割り当てて「ウインドウを
閉じる」にしている。

目的、手段、AHK でやるのがベストかどうかも含めてよく吟味したほうが
エエと思うで。
352名無しさん@お腹いっぱい。
垢版 |
2023/08/07(月) 15:18:37.47ID:z0wbPqBa0
#InstallMouseHook
~RButton::
KeyWait, RButton, T1
if (ErrorLevel)
{
While GetKeyState("RButton", "P")
{
Click
Sleep, 20
}
}
else if GetKeyState("WheelDown", "P")
{
Sleep 1000
Click
}
else
{
Send, {Escape}
}
return

GetKeyStateを使ってホイール回転を検出しようとすると、ホイールを回した瞬間からずっとOnが返ってくる状態になってしまう。
GPTで調べても的外れな回答しか返ってこない
わかる人誰かタスケテT〜T
353名無しさん@お腹いっぱい。
垢版 |
2023/08/07(月) 16:07:59.97ID:z0wbPqBa0
右クリックを長押しするとクリック連打、右クリックを押しながらホイールダウンでクリック、
それ以外はエスケープになるというスクリプトです。
分けて書くと別々に動いてしまうのでそれを避けるようにしています。
2023/08/07(月) 16:27:38.76ID:AjxfGTno0
>>352
確かにそういう挙動をしめすね。ただ、

Hotkeys - Definition & Usage | AutoHotkey
https://www.autohotkey.com/docs/v1/Hotkeys.htm#Wheel
> Finally, since mouse wheel hotkeys generate only down-events
> (never up-events), they cannot be used as key-up hotkeys.

という記述が何か関係しているのかも。
もしくは(この記述絡みで)一度ホイールを動かすとAHKの内部的なフラグが
立ちっぱなしになっている?
2023/08/07(月) 16:37:16.17ID:AjxfGTno0
なんか既視感があるなぁ、と思ったらワシも右クリック&ホイールアップ・
ダウンなスクリプトを組んだことあるわw

そのときは
~RButton & WheelUp::
~RButton & WheelDown::
でやってたな。

他に
WheelUp::
WheelDown::
と
~RButton::
なホットキースクリプトも同時にやってたけど、誤爆した記憶はないな。
全部 MouseGetPos で位置と id を取得して、それを以て処理してる。
356名無しさん@お腹いっぱい。
垢版 |
2023/08/07(月) 17:00:56.80ID:z0wbPqBa0
自分も最初
~RButton::
~RButton & WheelUp::
~RButton & WheelDown::
でやってたんですが、それだと右クリックを離した瞬間に
~RButton::が動き出してしまうんですよね……
無効にしたり同時に動かなくする処理があればいいんですが;。;
2023/08/07(月) 18:56:52.04ID:AjxfGTno0
>>356
離した時じゃなくて押した時ちゃう?右クリで ~RButton:: へ行って、
同時にホイールを触ると~RButton & WheelUp/Down:: が動き出す。

ワシの場合は、~RButton:: の処理内容が右ダブルクリック。
設定時間内にダブルクリックを検出しなければ何もせずに終了、と
していたので特に問題は起きていない。

そこまでテストコードを書いていないからできるかどうか自信ないけれど、
~RButton:: 内に WheelUp/Down のチェックを入れるとかで
回避できそうではある。
358名無しさん@お腹いっぱい。
垢版 |
2023/08/08(火) 00:02:10.85ID:2tx9nkkk0
~RButton::
KeyWait, RButton, T1
If (ErrorLevel)
{
While GetKeyState("RButton", "P")
{
Click
Sleep, 20
}
}
else
{
Send, {Escape}
}
return
~RButton & WheelUp::
{
Sleep, 500
Click
}
return
~RButton & WheelDown::
{
Sleep, 1000
Click
}
return
処理内容は簡略化されてますがこんな感じです。
右クリックしながらホイールを動かすとクリックが処理されて、その後右クリックを離した所でエスケープが入力されてしまいます。
それを防ぐために~RButton::の中でホイール状態を取得しようとした結果>>352。それぞれを独立して動作させたいのですが無理なんでしょうか(ヽ´ω`)
2023/08/09(水) 03:34:35.28ID:xviYZMnK0
MouseGestureLなら簡単に出来そうだから本家でも出来るんじゃね
2023/08/09(水) 18:25:52.85ID:syUydIU00
スレッド周りの設定を変にいじってなければ
こんな感じで希望しているような動作になると思う

~RButton & WheelUp::IsWheelUp := True
~RButton & WheelDown::IsWheelDown := True
~RButton::
IsWheelUp := IsWheelDown := False
KeyWait, RButton, T1
if(IsWheelUp){
ToolTip, WheelUp
}else if(IsWheelDown){
ToolTip, WheelDown
}else if(ErrorLevel){
While(GetKeyState("RButton", "P")){
a++
ToolTip, % a
Sleep, 20
}
}else{
ToolTip, Escape
}
return
361名無しさん@お腹いっぱい。
垢版 |
2023/08/12(土) 00:09:18.32ID:O1uhjaQy0
>>360
あなたが神か……ありがとうございます
GetKeyStateでうまく動かない所はこれでなんとかなりそうです(・∀・)
2023/08/12(土) 00:12:17.13ID:bDvu5aai0
タブキーを押しながら C キーを押したのを
4に割り当てるにはどのように書けばいいんでしょうか?
2023/08/12(土) 00:16:11.70ID:yq4dIsr+0
普通に入力されるキーをモディファイアにするんじゃない
2023/08/12(土) 06:13:36.00ID:nmj8+2WF0
"A"で指定してるのに
Error: Target window not found.
になるのは何なんだろう
2023/08/12(土) 11:15:30.71ID:pQJSgS+a0
A じゃなく "A" で指定してるからじゃね?
実際のスクリプト見てないから分からんけど
2023/08/12(土) 11:32:35.55ID:nmj8+2WF0
"A"で合ってる
大半は動いて特定のウィンドウだけエラーになる
2023/08/12(土) 11:48:12.98ID:LsOfcGj10
だから"を抜けという話なの
2023/08/12(土) 11:57:58.01ID:ZMeXwxNY0
よかれと思って分かりやすい表記をするのはコード実行において難しい問題よね

若い頃コマンドラインの-- <set numbers>の<>を入れなくていいの解らず一日溶かしたことある
2023/08/12(土) 12:07:58.71ID:nmj8+2WF0
"を抜くと
Warning: This variable appears to never be assigned a value.
そもそも実行できない
2023/08/12(土) 12:10:30.17ID:D5LFJTyY0
具体的に書かない奴はスルー
2023/08/12(土) 13:07:33.77ID:nmj8+2WF0
要は、アクティブウィンドウが無い、という状態になっている
そんなことはあるのか?
2023/08/12(土) 16:33:19.42ID:srAYYviQ0
Release v2.0.5 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.5
2023/08/13(日) 10:31:50.59ID:dS54wA3a0
https://www.autohotkey.com からv1.1落とそうとするとボタンが [Download v1.1 (deprecated)]となってるな、初めて気づいた
https://www.autohotkey.com/download/ の方は特に変わった様子無いけどv1.1はもう打ち止めってことかなあ(´・ω・`)
2023/08/13(日) 23:17:51.19ID:wbZBZ9Ux0
アナウンスされてから半年以上たつ気がするけど
2023/08/15(火) 09:46:17.85ID:RO47lguz0
メニューを開いた瞬間に何故かフォーカスが外れて操作できないことがたまにあるけど、
何が原因なんだろう
2023/08/16(水) 03:18:07.49ID:L2eBlJqO0
>>371
ループで状態を取得しつづけていると、
たまにそのようなアクティブウィンドウがないかのような状態になることはありますね…
2.0にして気がついたんだけど、多分1.1の時はエラーにはならずに適当に済ませられていたのが、
厳密にエラーをスローするようになったという感じな気がする

そして"A"とAの違いは2.0と1.1の違いではないですかね
2023/08/16(水) 06:23:05.41ID:B5Recerj0
"A"を参照する前にメニューを出しているので、メニューが閉じてから直前にアクティブだったウィンドウが
再びアクティブに戻るまでに一瞬の間がある
参照する前に一瞬sleepを入れるとエラーにならなくなった
2023/08/18(金) 11:43:00.99ID:oTZ9q3EL0
メニューを2つ作っていて、片方は頻繁にフォーカスが外れるけど、もうひとつは外れたことがない
やってることは大差ないのに何が違うんだろう
2023/08/18(金) 12:04:12.80ID:Q7ZhVJTA0
いいかげん独り言は余所でやれ
2023/08/18(金) 12:14:34.24ID:6chi+Qaa0
頑なにスクリプトを見せるの拒む限り自己解決するしかないだろうな
2023/08/18(金) 12:19:24.68ID:6chi+Qaa0
んんーなんかこのスレというか5ch重いような…書き込みボタン押してからページ反映まで5,6秒ほど掛かるう、オマ環かなあ(´・ω・`)
独り言スマン
2023/08/18(金) 12:21:11.45ID:6chi+Qaa0
>>381
x5,6秒
○15 6秒
2023/08/18(金) 13:29:28.79ID:MXhu+9P00
>>381
今日遅いね
2023/08/18(金) 13:41:02.30ID:oTZ9q3EL0
コードさえ見れば解決できるという自身はどこから出てくるんだ
解決できずに別スクリプトを起動してマウスでクリックしてフォーカスを戻してる人もいるくらいで、
多分今も直ってないahkのバグなんだろう
知りたいのは回避方法ではなく原因
2023/08/18(金) 13:51:37.99ID:yGxZYDcS0
5chは攻撃受けてるから重い
2023/08/18(金) 13:54:35.13ID:yGxZYDcS0
>>384
コード見ずに判断付くはずねーだろ
コードは間違ってないって自信こそどこから来るのか
自分でコード見て自分で考えるならここじゃなく、xなりnoteなりnationなりで好きにやってくれ
2023/08/18(金) 14:02:47.28ID:oTZ9q3EL0
ああ、menuね、あれはどうやっても駄目だったよ、とか、
こういう上手い方法があったよとか、知見のある人が反応すればいいんだよ
何も情報を持ってないのにとにかく何か回答しなければという質問スレによく巣食ってる癌は、
S/N比下げるだけなのでミュートしてて欲しい
2023/08/18(金) 15:13:36.08ID:HkO0/SET0
>>387
そういうことやりたいなら5chは向かないから余所でやれってそんなに難しい話か?
ミュートしてて欲しいならコテハン付けてくれ
2023/08/18(金) 15:36:46.27ID:Z7SU+ZYe0
>>378を見る限り、二つとも自分で書いているのに、原因となる
それらの差分を読み取れないってどういうことなのかと
今流行りのAIにお願いで作ったのか?
2023/08/19(土) 19:26:49.91ID:37zB30Y00
winキーとか何かが押しっぱなしになって、押して離してをやっても直らなくて、
一旦ahkを終了して再度立ち上げないとどうしようもない、というケースにたまに遭遇する
その手続き自体をahkからやれないもんか
2023/08/19(土) 19:52:39.80ID:PhJHVGEu0
監視させるしかないんじゃないの
down状態が5秒続いたら、強制的にupにするとか
それが利かないくらいバグってたら、スクリプト再起動に移行するとか
明らかにdown状態なのに、up返しちゃうくらいおかしいなら
別のアプローチが必要だけど
2023/08/19(土) 20:03:51.32ID:k3nzvT+I0
>>390
この過去スレにあったやつ(だったかどうかは忘れた)

Alt・Ctrl・Shiftキー押されっぱなし対処.ahk
Send, {Alt Up}{LAlt Up}{RAlt Up}{Ctrl Up}{LCtrl Up}{RCtrl Up}{Shift Up}{LShift Up}{RShift Up}{LWin Up}{RWin Up}{LButton Up}{RButton Up}{MButton Up}
Send, {ESC}

変だなぁと思ったら実行
オレはいつもこれで直してる、常駐してるahkは終了しなくても良いと思うよ
2023/08/19(土) 20:09:59.50ID:37zB30Y00
ESCは何で押すの?
2023/08/19(土) 20:23:47.88ID:37zB30Y00
{RButton Up}が入ってると、右クリックが押されちゃうな
2023/08/20(日) 00:05:33.73ID:uFCBx9Pl0
reboot
2023/08/20(日) 07:46:57.56ID:+NO2vz+70
>>390
その辺のキーが押しっぱになる現象って、CapsLock を Ctrl と入れ替えを
やってるとか?AHK はもちろん PowerToys でやっても起こる(多分、他の
リマップ系でも)。

それならこれがおすすめ。今のところ押しっぱ現象も他の妙な副作用もない。
※ただしキーボードから CapsLock の機能がなくなるw
Ctrl2cap - Sysinternals | Microsoft Learn
https://learn.microsoft.com/ja-jp/sysinternals/downloads/ctrl2cap
2023/08/21(月) 06:52:36.46ID:ynMBgfwj0
おお、MS純正デバイスドライバなんだ
Capsはモディファイアに変更してるけど、定番のChangeKeyでレジストリを変えてる
押しっぱなし現象はみんなフック同士の干渉が原因だと思っていて、根本的には避けられない
デバイスドライバ版ahkみたいなのがシェアウェアで出たら買うのに
現状そういうのはのどか一択で、書きやすさはahk v2が勝ってる
2023/08/26(土) 13:40:30.41ID:e6Z469D70
Sticky Keys対策でShiftやCtrlを押し終わるたびにShiftを5回空打ちさせてる
2023/08/29(火) 15:17:03.33ID:Jbveauwv0
右下ろのキーを押した時_にしたくて
¥::
send,+¥
return
としたのですが変わらず¥で出ます
¥::+¥
としても変わらず
簡単な事だと思うのですが、何故出来ないのかヒント頂けないでしょうか?
よろしくお願いします
2023/08/29(火) 15:18:53.87ID:Jbveauwv0
あ、V1です
401399
垢版 |
2023/08/29(火) 15:31:39.18ID:Jbveauwv0
すみません、検索で例を色々見てたら丁度見付かりました
vkE2::_
で出来る様になりました
スレ汚し失礼しました
2023/08/29(火) 15:32:11.68ID:X8K0rgTu0
\は右上のキーだからろの方はキーコードで指定しないとダメ

sc073::_
403399
垢版 |
2023/08/29(火) 16:52:46.65ID:Jbveauwv0
>>402
そうなんですね
良かったです、教えて頂きどうもありがとうございました
2023/08/30(水) 17:19:47.77ID:Ryl/SOdu0
Release v2.0.6 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.6
2023/08/30(水) 18:11:41.37ID:oxpZC/QU0
v2.0.6
2023/08/31(木) 22:40:51.14ID:vlAyug6p0
yキーを押してもSend, abcが送信されません。
何が駄目なんでしょうか。
Send, abcの処理はsub.ahk側でしたいです。

;main.ahk------------------
global test

y::
Sleep, 1000
test := "yes"
Sleep, 1000
Return


;sub.ahk------------------
#Persistent
#Include main.ahk

SetTimer, mitukeru, 100

mitukeru:
if (test = "yes") {
Send, abc
}
Return
2023/09/01(金) 02:23:36.87ID:6AcEfkHF0
y::
を見てみなよ
処理内容は、ただ代入しているだけだ
次にSetTimerでサブルーチンに飛ばさないと
ただこのタイマーいつ終わるの?
終了処理が何もないようだけど
2023/09/01(金) 07:19:25.96ID:qhzzshke0
会社のノートPCにmenuキーが無いのが不便すぎる
フリーソフトとか禁止なので、regeditだけで解決したった
2023/09/01(金) 07:37:42.70ID:dbcMt4Cv0
>>408
スレ違い
2023/09/01(金) 12:03:41.12ID:fxBmgcCa0
>>407
ありがとうございます。
まだ理解できてませんが教えてくださった通りやったらできました!
2023/09/01(金) 12:08:50.00ID:fxBmgcCa0
すみません。まだ出来てないかもです。
がんばってみます。
2023/09/01(金) 12:12:26.82ID:qhzzshke0
っていうか、複数のahk間でプロセス間通信しようとしてるんでしょ
そんなの無理だよ
2023/09/01(金) 12:33:22.63ID:YJ2o2ktm0
幾つか突っ込みどころあるが、とりあえず #Include行の位置が悪いな
まあ、#Include行の位置を直しただけじゃまともに動かん…と言うか変数「test」をクリアする行を加えないと暴走するよ
2023/09/01(金) 12:39:44.02ID:fxBmgcCa0
>>412
はい。FindTextの処理が重いのでマルチスレッドを実現したかです。
この方法では不可能なんですか?
clipboardやFileReadでやるしかないですかね。
2023/09/01(金) 12:43:11.43ID:fxBmgcCa0
>>413
ありがとうございます。
ごちゃると見にくいと思ったので、暴走は完成してからにしようと思ってました 笑。
2023/09/01(金) 12:44:19.26ID:6AcEfkHF0
sub.ahkってのをライブラリとして使ってるんじゃないの?
includeが逆でなんだかなあって感じだけど
本来は関数化した方が遥かに融通性が高いんだけど
まあ学習の順序があるから
2023/09/01(金) 12:57:45.45ID:qhzzshke0
includeするならプロセスは1つだけど
両方動かすんじゃないの?
2023/09/01(金) 19:29:28.33ID:aCFUmNnL0
v2で
a := 1
b := &a
%b% := 2
と同じように
tmp := {a:1}
b := &tmp.a
%b% := 2
でbにtmp.aのVarRefがほしいんだけど&tmp.aでエラーが出ちゃう
これどうやったらいいの?
2023/09/01(金) 20:46:26.25ID:0/jYgXFo0
>>418
直接にはできない。

関数 - 定義と使用法|AutoHotkey v2
https://ahkscript.github.io/ja/docs/v2/Functions.htm#ByRef
2023/09/01(金) 21:17:49.17ID:aCFUmNnL0
>>419
仕様でできなかったんですね
オブジェクトの方を持ち歩くようにします
ありがとうございました
> 既知の制限事項:
> オブジェクトのプロパティ(foo.barなど)やA_Clipboardなどの 組み込み変数に対してVarRefを構成することはできないので、これらをByRefで渡すことはできない。
2023/09/02(土) 17:26:28.26ID:xDVNYmLx0
何か V2.0.4/2.0.6 でエンバグしてるんやって。
スクリプトが動かんようになったって人はアップデートしてみるのも手。

Release v2.0.7 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.7
2023/09/02(土) 18:33:36.19ID:X8oxdeT80
v2.0.7
2023/09/03(日) 14:39:01.92ID:dL6VhtA+0
ヒアドキュメントの仕様が変わってわけわからん

ver.1の頃は
MsgBox, % "
(
 さて、
 あなたのバージョンは 「" A_AhkVersion "」ですわね。
 オホホ
)"

でよかったのがver.2になってから

MsgBox("
(
さて、
あなたのバージョンは「
)"A_AhkVersion "
(
」ですわね。
オホホ
)")

とかしないといけなくなって可読性がー
2023/09/03(日) 15:01:38.43ID:8zusJ6RA0
理解しているのにわけわからん
とは、どういうことなのか?
長文の文字列は変数に格納するのが通例なんで
関数化されたmsgboxに直接使わなければいいんじゃね
2023/09/03(日) 15:20:17.21ID:0KBNlEKj0
v2 仕様やとこんな感じやろ(場合よって「"」の位置に気を使う必要がある)。

MsgBox "
(
Here Document,
HERE!!!
)"
2023/09/03(日) 15:31:18.57ID:Xi/Z1aW+0
改行が意味持ってたり、括弧無しでもokだったり、未だに古臭い
v3に期待
2023/09/03(日) 15:39:07.37ID:0KBNlEKj0
変数絡みやとちょっと面倒くさいことになるかな?
%VarRef% なパターンやと埋め込めるみたいやけど。

MsgBox "
(
AutoHotkey version is`s
)" A_AhkVersion "
(
.
Here Document,
HERE!!!
)"
2023/09/03(日) 16:01:47.82ID:0KBNlEKj0
ああ、v2 やと %VarRef% も埋め込まれへんみたい。
2023/09/03(日) 16:48:50.59ID:dL6VhtA+0
いやMsgBoxとの取り合わせが悪いとかじゃなくて
式を埋め込めなくなってるのが個人的に致命傷
%VarRef%もだめだしさ

あとオプション周りの挙動がだいぶ変わったように見えて混乱中
2023/09/03(日) 17:16:51.07ID:dL6VhtA+0
ヒアドキュメントに式を埋め込めて、実際に表示されるメッセージを想像しやすいのがよかったのに…
できるっぽい説明あったけど、実際の書き方がまるで理解できなかったし、いま読み返すと全然別の説明っぽい

> If ( or ) appears in the options of a potential continuation section (other than as part of the Join option), the overall line is not interpreted as the start of a continuation section. In other words, lines like (x.y)() and (x=y) && z() are interpreted as expressions. A multi-line expression can also begin with an open-parenthesis at the start of a line, provided that there is at least one other ( or ) on the first physical line. For example, the entire expression could be enclosed with (( ... )).

> ( or ): If an opening or closing parenthesis appears to the right of the initial opening parenthesis (except as a parameter of the Join option), the line is reinterpreted as an expression instead of the beginning of a continuation section. This enables expressions like (x.y)[z]() to be used at the start of a line, and also allows multi-line expressions to start with a line like (( or (MyFunc(.

そしてこういうのに限ってサンプルがない。詰んだ。寝る
2023/09/03(日) 18:24:58.98ID:lC0PTvot0
>>423
Format関数使えば多少見やすくなるかも

MsgBox(Format("
(
さて、
あなたのバージョンは「{1}」ですわね。
オホホ、{2}年ですわ。
)", A_AhkVersion, A_YYYY))
2023/09/03(日) 18:46:21.42ID:Xi/Z1aW+0
pythonでf文字列の実装が妙に遅かったのと同様に、
なんか埋め込むのを嫌う風習があるんだよな
便利なのはperlとかでとっくに判ってたのに
2023/09/03(日) 21:59:50.39ID:PW2pKi2Q0
2系の押しっぱ病はいつになったら治るんだ…
2023/09/03(日) 22:09:25.95ID:0KBNlEKj0
>>433
>>396 な話じゃなくて?
2023/09/03(日) 22:14:39.29ID:Xi/Z1aW+0
なんでもないビュアーがすごい行儀悪くキーをフックしてるみたいで、
それを起動した状態で他のソフトを使うと高確率で押しっぱなしになる

開いたまま他のことをしない、しか回避方法が無い
2023/09/03(日) 22:38:34.74ID:8zusJ6RA0
そういうアプリはどんどん名前出していこうぜ
情報共有してこその掲示板なわけだし
2023/09/04(月) 12:28:15.52ID:K09FILDQ0
epubビュアーのKinoppyだけどね
ahkからKinoppyを何か制御するでもなく、ただいるだけでいろいろおかしくなる
2023/09/04(月) 21:28:18.16ID:dQWiiGqe0
>>437 解決の参考にならんかもだが、Kinoppyをインストールして俺環で常駐しているMyScriptに下記のホットキーを追加し
メインアプリとビューアー起動した状態で他のアプリ色々起動したり、しばらく別のことやってたけど特に問題は発生しなかった

問題になりそうな点をあげるとclass名が独特でGUID部分が起動毎に変わるのと
ビューアーの方はExplorer等と同様にahk_exeではhwndが取得できなかったくらい
なのでこれらを含めたウィンドウ指定を直接じゃなくてもGroupやExcludeTitleなんかで行っているとおかしくなる
そうでないなら残念ながらおま環の可能性が高い

; 俺環での関係ありそうな設定
SetTitleMatchMode("RegEx")
InstallKeybdHook()
InstallMouseHook()
A_MenuMaskKey := "vkFF"
return

; メインアプリ
; Kinoppy for Windows
; ahk_class HwndWrapper[Kinoppy.exe;;feff14f8-8819-45a6-9cc5-5edbb2951528]
; ahk_exe Kinoppy.exe
#HotIf WinActive("Kinoppy for Windows ahk_class HwndWrapper\[Kinoppy.exe;; ahk_exe Kinoppy.exe")
XButton1:: MsgBox(WinGetTitle("A"))
LCtrl:: MsgBox(WinGetTitle("A"))
#HotIf

; ビューアー 本は最初から付いてた奴
; [1/160] scripta 18号(2011年冬号、紀伊國屋書店
; ahk_class HwndWrapper[Viewer20.exe;;5f512ab6-52a1-4bc8-8445-abdb7c67f500]
; ahk_exe Viewer20.exe
#HotIf WinActive("ahk_class HwndWrapper\[Viewer20.exe;;")
XButton1:: MsgBox(WinGetTitle("A"))
LCtrl:: MsgBox(WinGetTitle("A"))
#HotIf
2023/09/05(火) 23:11:23.66ID:uAjrKV030
質問なのですが ctrl+マウス左クリック で 左クリック を送りたいのですが

^lbutton::
mouseclick,left, , , , 0
return

と書いても左クリック単発ではなくctrl+左クリックになってしまいます
どのように書けばいいですか?
■ このスレッドは過去ログ倉庫に格納されています