元々が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
AutoHotkey スレッド part30 IDのみ
■ このスレッドは過去ログ倉庫に格納されています
2022/02/08(火) 18:38:19.33ID:UTRGyCNl0
2023/10/01(日) 00:44:40.72ID:aO5V046V0
608597
2023/10/01(日) 08:03:39.09ID:5y0E7yg10 >>607
おっしゃっていることがよく分かりません。
私は「無変換」を「修飾キー」として使った上で、
「無変換」単独押しをした時は(Backspaceキーとして)「キーリピート」をして削除し続けて欲しいのですが、
それはできないということでしょうか?
おっしゃっていることがよく分かりません。
私は「無変換」を「修飾キー」として使った上で、
「無変換」単独押しをした時は(Backspaceキーとして)「キーリピート」をして削除し続けて欲しいのですが、
それはできないということでしょうか?
2023/10/01(日) 08:09:26.00ID:vJZ6he//0
2023/10/01(日) 09:14:16.51ID:jCSy+5iI0
キートップの文字を書き換えたかのように、そのキーを完全に置き換える
どんな組み合わせで押しても置き換わって動作する
という挙動をahkで書くのはなかなか大変だけど、
yamyでは1行だったんだよな
どんな組み合わせで押しても置き換わって動作する
という挙動をahkで書くのはなかなか大変だけど、
yamyでは1行だったんだよな
2023/10/01(日) 09:37:27.76ID:1MOKFxYN0
>>608
修飾キーっていうのは単独押しでは作用しないから修飾キーなわけでしょ
例外はWinキーで、これは単独だと離したときにスタートメニューが発動するから成立している
これを無変換に当てはめるとすると、離したときにBSが発動してたらキーリピートになりようがない
だから前のレスで書いたように、押下時間でリピートになったり、修飾キーになったりみたいな
仕組みにする必要がある
ただBSなんかは瞬時に発動してくれないとイラつくだけだと思うんだよね
修飾キーのつもりで押したのに文字が消えたとか誤爆もあるし
修飾キーっていうのは単独押しでは作用しないから修飾キーなわけでしょ
例外はWinキーで、これは単独だと離したときにスタートメニューが発動するから成立している
これを無変換に当てはめるとすると、離したときにBSが発動してたらキーリピートになりようがない
だから前のレスで書いたように、押下時間でリピートになったり、修飾キーになったりみたいな
仕組みにする必要がある
ただBSなんかは瞬時に発動してくれないとイラつくだけだと思うんだよね
修飾キーのつもりで押したのに文字が消えたとか誤爆もあるし
612597
2023/10/01(日) 10:23:09.43ID:IXVZWApm0613名無しさん@お腹いっぱい。
2023/10/01(日) 18:48:40.48ID:MIF/cMMY0 クリップボードに画像ファイルがコピーされた時に、それを開いて画像データをクリップボードに持つようにしたいのですが、どう書くのがいいでしょう?
powertoyでもできたりしますか?
powertoyでもできたりしますか?
2023/10/02(月) 07:50:12.52ID:Y0OCwQiz0
>>613
正:それを開いて画像データをメモリに持つ
誤:それを開いて画像データをクリップボードに持つ
ということ?
Win10/11 以降の Snip & Sketch/Snipping Tool なら特に何もせんでも
頭36yte分の Clipborad の header/Signature? を読み飛ばしゃ PNG の
画像データがそのまま入ってる。
それ以前の場合はちょっと面倒で、歴史的経緯?でちょっと古い形式での
Windows BMPデータが入っているっぽいので色々と変換せんと、今どきの
BMPデータにならない。
正:それを開いて画像データをメモリに持つ
誤:それを開いて画像データをクリップボードに持つ
ということ?
Win10/11 以降の Snip & Sketch/Snipping Tool なら特に何もせんでも
頭36yte分の Clipborad の header/Signature? を読み飛ばしゃ PNG の
画像データがそのまま入ってる。
それ以前の場合はちょっと面倒で、歴史的経緯?でちょっと古い形式での
Windows BMPデータが入っているっぽいので色々と変換せんと、今どきの
BMPデータにならない。
615名無しさん@お腹いっぱい。
2023/10/02(月) 19:37:50.10ID:tI65VkKa0 AHK v2 の fat arrow function は
() => expr
というフォーマットで、式だから 1行しか書けない
() => 123
{} が来る場合は JavaScript のように複数行書けたらいいのにな
```
() => {
a := 123
b := 456
return a + b
}
```
のように
比較的簡単に実装できそうだけど、実装すれば breaking change になってしまう
現状だと () => {} はオブジェクトを返すという意味なので。
JavaScript の場合は、{} が来たら例外的に関数本体として扱われるようになっていて便利だ
() => expr
というフォーマットで、式だから 1行しか書けない
() => 123
{} が来る場合は JavaScript のように複数行書けたらいいのにな
```
() => {
a := 123
b := 456
return a + b
}
```
のように
比較的簡単に実装できそうだけど、実装すれば breaking change になってしまう
現状だと () => {} はオブジェクトを返すという意味なので。
JavaScript の場合は、{} が来たら例外的に関数本体として扱われるようになっていて便利だ
2023/10/02(月) 19:38:02.65ID:4IbfaSx20
ahk v1.1です。
エクスプローラーで使用しています。
IME.ahk を使用しています。
文字入力中(名前の変更や検索欄入力)だった場合は、 a
そうでない場合は、+^a のスクリプトにしたいのですが
下記の方法だと文字入力中の判定がうまく出来ないので
教えていただきたいです。
a::
If IME_GetConverting() = 0 {
Send, +^a
}else{
Send, a
}
Return
エクスプローラーで使用しています。
IME.ahk を使用しています。
文字入力中(名前の変更や検索欄入力)だった場合は、 a
そうでない場合は、+^a のスクリプトにしたいのですが
下記の方法だと文字入力中の判定がうまく出来ないので
教えていただきたいです。
a::
If IME_GetConverting() = 0 {
Send, +^a
}else{
Send, a
}
Return
2023/10/02(月) 19:38:16.12ID:4IbfaSx20
ahk v1.1です。
エクスプローラーで使用しています。
IME.ahk を使用しています。
文字入力中(名前の変更や検索欄入力)だった場合は、 a
そうでない場合は、+^a のスクリプトにしたいのですが
下記の方法だと文字入力中の判定がうまく出来ないので
教えていただきたいです。
a::
If IME_GetConverting() = 0 {
Send, +^a
}else{
Send, a
}
Return
エクスプローラーで使用しています。
IME.ahk を使用しています。
文字入力中(名前の変更や検索欄入力)だった場合は、 a
そうでない場合は、+^a のスクリプトにしたいのですが
下記の方法だと文字入力中の判定がうまく出来ないので
教えていただきたいです。
a::
If IME_GetConverting() = 0 {
Send, +^a
}else{
Send, a
}
Return
2023/10/02(月) 19:38:30.91ID:4IbfaSx20
ahk v1.1です。
エクスプローラーで使用しています。
IME.ahk を使用しています。
文字入力中(名前の変更や検索欄入力)だった場合は、 a
そうでない場合は、+^a のスクリプトにしたいのですが
下記の方法だと文字入力中の判定がうまく出来ないので
教えていただきたいです。
a::
If IME_GetConverting() = 0 {
Send, +^a
}else{
Send, a
}
Return
エクスプローラーで使用しています。
IME.ahk を使用しています。
文字入力中(名前の変更や検索欄入力)だった場合は、 a
そうでない場合は、+^a のスクリプトにしたいのですが
下記の方法だと文字入力中の判定がうまく出来ないので
教えていただきたいです。
a::
If IME_GetConverting() = 0 {
Send, +^a
}else{
Send, a
}
Return
2023/10/02(月) 22:31:01.66ID:JWMVaWUA0
2023/10/03(火) 17:39:12.06ID:2DNPH3ID0
>>618
あなたがやりたいことは>>581の方法で実装できます
ただし、検索欄等のキャレットは取得できないかもしれないので
その場合は ControlGetFocus でコントロール名を照合するなどの別のアプローチが必要になるかもしれません
蛇足ですが IME_GetConverting() は変換候補ウィンドウが表示されているかどうかを判別しているだけなので
直接入力時や変換未確定(文字列に下線が付いてるだけの状態)時は文字入力中と判断されません
また、IMEの仕様上の問題で別のプロセスから入力コンテキスト(変換中の情報)を取得することはできないので
外部アプリの文字入力中かどうかの判定にはそのアプリに適した様々な方法を試す必要があります
あなたがやりたいことは>>581の方法で実装できます
ただし、検索欄等のキャレットは取得できないかもしれないので
その場合は ControlGetFocus でコントロール名を照合するなどの別のアプローチが必要になるかもしれません
蛇足ですが IME_GetConverting() は変換候補ウィンドウが表示されているかどうかを判別しているだけなので
直接入力時や変換未確定(文字列に下線が付いてるだけの状態)時は文字入力中と判断されません
また、IMEの仕様上の問題で別のプロセスから入力コンテキスト(変換中の情報)を取得することはできないので
外部アプリの文字入力中かどうかの判定にはそのアプリに適した様々な方法を試す必要があります
2023/10/03(火) 19:30:40.48ID:759jFrqH0
2023/10/04(水) 18:56:24.73ID:tIruFCPa0
重い腰を上げてようやくv2に移行したがv2最高だわ
普通の文法のプログラムが書けるというすばらしさ
v1のサポートさっさと打ち切ってネット上の醜いv1のコード駆逐してほしい
普通の文法のプログラムが書けるというすばらしさ
v1のサポートさっさと打ち切ってネット上の醜いv1のコード駆逐してほしい
2023/10/04(水) 22:35:25.70ID:kSzEGkao0
624名無しさん@お腹いっぱい。
2023/10/05(木) 06:02:55.84ID:bWuMkV3d0 >>615 です
関数本体を宣言できる機能が1ヶ月前に v2.1-alpha で追加されたみたいです
書き方は、
() => {}
ではなく、
() {}
こうするらしい
(たしかにこれだと breaking change にならない)
```
SetTimer(() {
MsgBox "5 second timer expired."
}, -5000)
```
使い捨ての関数を宣言したいことはよくあるので便利そう
https://www.autohotkey.com/docs/alpha/Functions.htm#funcexpr
alpha で追加されたことに気づかずに forum で feature request して、
更に実装日を1ヶ月勘違いして数日前に実装されたのかと勘違いして返事してしまった
関数本体を宣言できる機能が1ヶ月前に v2.1-alpha で追加されたみたいです
書き方は、
() => {}
ではなく、
() {}
こうするらしい
(たしかにこれだと breaking change にならない)
```
SetTimer(() {
MsgBox "5 second timer expired."
}, -5000)
```
使い捨ての関数を宣言したいことはよくあるので便利そう
https://www.autohotkey.com/docs/alpha/Functions.htm#funcexpr
alpha で追加されたことに気づかずに forum で feature request して、
更に実装日を1ヶ月勘違いして数日前に実装されたのかと勘違いして返事してしまった
625名無しさん@お腹いっぱい。
2023/10/05(木) 06:18:36.34ID:bWuMkV3d0 v2-alpha のドキュメント
https://www.autohotkey.com/docs/alpha/
v2-alpha のダウンロード
https://www.autohotkey.com/download/2.1/
v2-alpha のリリースノート
https://www.autohotkey.com/docs/alpha/ChangeLog.htm
https://www.autohotkey.com/docs/alpha/
v2-alpha のダウンロード
https://www.autohotkey.com/download/2.1/
v2-alpha のリリースノート
https://www.autohotkey.com/docs/alpha/ChangeLog.htm
626名無しさん@お腹いっぱい。
2023/10/06(金) 01:45:23.21ID:ev1enbnj0 v2.1 の無名関数を試した
AHK の無名関数は、OTB style としての僅かな制約(最初の { で改行しないといけない)があるけど、
それ以外は普通に使える
無名関数がサポートされたことで、言語としての書き心地は JavaScript とかなり近くなった
無名関数が使えると発想も変わるし、多用もする機能なので、
実質的には v2.5 くらいの変化に感じる
AHK の無名関数は、OTB style としての僅かな制約(最初の { で改行しないといけない)があるけど、
それ以外は普通に使える
無名関数がサポートされたことで、言語としての書き心地は JavaScript とかなり近くなった
無名関数が使えると発想も変わるし、多用もする機能なので、
実質的には v2.5 くらいの変化に感じる
2023/10/06(金) 05:15:27.47ID:jYxejNZf0
fat arrowで無理やり書いてたのから開放されるのか
三項演算子覚えたてみたいな見た目になるから嫌だったんだよ
三項演算子覚えたてみたいな見た目になるから嫌だったんだよ
628名無しさん@お腹いっぱい。
2023/10/07(土) 19:31:15.14ID:9zvIUWci0 v2.1 では、unset というもの(JavaScript の undefined のような)が導入された
これまで、引数のデフォルト値などは 0, -1, '' あたりを代入してごまかすしかなかったけど、unset できれいに(普通に)書けるようになった
```
; これまでの書き方
myFunc(a, b := '') {
if b != ''
do something
}
; v2.1
myFunc(a, b := unset) {
if IsSet(b)
do something
}
```
unset 導入に伴い、?, ??, ??= 演算子も使えるようになった
```
obj?.a?.func()
b := c ?? 123
d ??= 456
```
変数を(自分のメモ用に)宣言だけしたいときにも、適当な値を代入する代わりに unset が使える
```
; これは実質的には何も宣言していないのと同じで、この行自体が存在しない場合と等価
a := unset
```
これまで、引数のデフォルト値などは 0, -1, '' あたりを代入してごまかすしかなかったけど、unset できれいに(普通に)書けるようになった
```
; これまでの書き方
myFunc(a, b := '') {
if b != ''
do something
}
; v2.1
myFunc(a, b := unset) {
if IsSet(b)
do something
}
```
unset 導入に伴い、?, ??, ??= 演算子も使えるようになった
```
obj?.a?.func()
b := c ?? 123
d ??= 456
```
変数を(自分のメモ用に)宣言だけしたいときにも、適当な値を代入する代わりに unset が使える
```
; これは実質的には何も宣言していないのと同じで、この行自体が存在しない場合と等価
a := unset
```
629名無しさん@お腹いっぱい。
2023/10/07(土) 19:32:02.43ID:9zvIUWci0 JavaScript のように a === undefined とは書けず、IsSet(a) と明示的にチェックする必要があるという違いがあるけれど、undefined のようなものが使えるようになった、という話
なぜ IsSet() で明示的なチェックが必要なのかというと、JavaScript の(strict mode の)場合は a という変数が存在して(宣言はされていて)その値が undefined だけど、AHK v2.1 の場合は、a := unset とすると、a という変数自体は存在しないまま
IsSet() は、変数の値が unset かどうかをチェックしているのではなく、変数自体が存在するかをチェックしているからだろうと思う
このことと関連して、デフォルト引数で unset を代入したとき、その引数を他の関数に渡したい場合は次のように書く
```
myFunc(a := unset) {
myAnotherFunc(a ?? unset)
; myAnotherFunc(a) だと、a が unset のとき、a という変数自体が存在しないのでエラーになる
}
```
なぜ IsSet() で明示的なチェックが必要なのかというと、JavaScript の(strict mode の)場合は a という変数が存在して(宣言はされていて)その値が undefined だけど、AHK v2.1 の場合は、a := unset とすると、a という変数自体は存在しないまま
IsSet() は、変数の値が unset かどうかをチェックしているのではなく、変数自体が存在するかをチェックしているからだろうと思う
このことと関連して、デフォルト引数で unset を代入したとき、その引数を他の関数に渡したい場合は次のように書く
```
myFunc(a := unset) {
myAnotherFunc(a ?? unset)
; myAnotherFunc(a) だと、a が unset のとき、a という変数自体が存在しないのでエラーになる
}
```
2023/10/07(土) 19:53:04.05ID:p00Uoc4y0
めんどくさいだけでメリットを感じない
2023/10/08(日) 13:05:54.46ID:SBMAHfMn0
2023/10/08(日) 13:53:44.85ID:SBMAHfMn0
なんかこれ系使ってるの書いたなと思って探してきた
前にループでRangeを使いたいって話があった後、自分でも範囲指定のが欲しくなったときのやつ
; PythonのRangeみたいなやつ(forで使うことしか考えてない)
Range(start?, stop?, step?) {
s := Integer(step ?? 1)
if !IsSet(start) && !IsSet(stop) && !IsSet(step)
c := 1 - s ; Range()
else if IsSet(start) && !IsSet(stop) && !IsSet(step)
c := 1 - s, m := Integer(start) ; Range(stop)
else if IsSet(start) && IsSet(stop)
c := Integer(start) - s, m := Integer(stop) ; Range(start, stop[, step])
else
Throw Error("パラメータが変です。", "Range")
return (&n) => (n := c += s, !IsSet(start) || c <= m)
}
前にループでRangeを使いたいって話があった後、自分でも範囲指定のが欲しくなったときのやつ
; PythonのRangeみたいなやつ(forで使うことしか考えてない)
Range(start?, stop?, step?) {
s := Integer(step ?? 1)
if !IsSet(start) && !IsSet(stop) && !IsSet(step)
c := 1 - s ; Range()
else if IsSet(start) && !IsSet(stop) && !IsSet(step)
c := 1 - s, m := Integer(start) ; Range(stop)
else if IsSet(start) && IsSet(stop)
c := Integer(start) - s, m := Integer(stop) ; Range(start, stop[, step])
else
Throw Error("パラメータが変です。", "Range")
return (&n) => (n := c += s, !IsSet(start) || c <= m)
}
633名無しさん@お腹いっぱい。
2023/10/08(日) 23:51:41.99ID:yx819iOD02023/10/13(金) 20:31:04.41ID:lUFs50Mf0
v2使ってます
ダブルクオーテーションで囲んだ変数を展開する方法はあるでしょうか?
調べてみたらv1の頃はできたっぽいんですが…
以下は例で、本当にやりたいのはテキストファイルに書いておいた文字列が含む変数を展開することです
v := "「A_AhkVersion」"
MsgBox v ; A_AhkVersionと表示されるのを2.0.10とかにしたい
ダブルクオーテーションで囲んだ変数を展開する方法はあるでしょうか?
調べてみたらv1の頃はできたっぽいんですが…
以下は例で、本当にやりたいのはテキストファイルに書いておいた文字列が含む変数を展開することです
v := "「A_AhkVersion」"
MsgBox v ; A_AhkVersionと表示されるのを2.0.10とかにしたい
2023/10/13(金) 21:09:19.74ID:kszrn8gL0
無変換(SC07B)+変換(SC079)+o
はどうやって書けばいいでしょうか?
~SC079 & SC07B & o::
は動きませんでした
はどうやって書けばいいでしょうか?
~SC079 & SC07B & o::
は動きませんでした
2023/10/13(金) 22:58:19.97ID:1crCpIhe0
>>634
https://ahkscript.github.io/ja/docs/v2/Variables.htm#Intro
>>635
修飾キー(Ctrl、Shift、Alt、Win)以外の3つ以上のコンビネーションキーはサポートされていない
ホットキーを2つまでにして、#IF または ホットキーの処理内で GetKeyState で3つ目以降のキー状態を取得して分岐させることは可能ではあるが
そもそも使用中のキーボードによっては修飾キー以外のキーは3つ以上の同時押しを認識できない場合も多々あるのでそこら辺は環境による
https://ahkscript.github.io/ja/docs/v2/Variables.htm#Intro
>>635
修飾キー(Ctrl、Shift、Alt、Win)以外の3つ以上のコンビネーションキーはサポートされていない
ホットキーを2つまでにして、#IF または ホットキーの処理内で GetKeyState で3つ目以降のキー状態を取得して分岐させることは可能ではあるが
そもそも使用中のキーボードによっては修飾キー以外のキーは3つ以上の同時押しを認識できない場合も多々あるのでそこら辺は環境による
2023/10/13(金) 23:04:18.36ID:ERs/JTAS0
>>634
https://www.autohotkey.com/docs/v2/lib/RegExMatch.htm#ExDeref
これv1の時からTransform廃止するからこんな感じの関数でやってねって言ってたけど
関数内ローカルの展開に使えなくてTransformの代わりにならない
https://www.autohotkey.com/docs/v2/lib/RegExMatch.htm#ExDeref
これv1の時からTransform廃止するからこんな感じの関数でやってねって言ってたけど
関数内ローカルの展開に使えなくてTransformの代わりにならない
2023/10/14(土) 00:58:11.68ID:iMxXiXwK0
>>636
ありがとうございます
アドバイス通りにやったらうまくいきました
#If GetKeyState("SC07B", "P") && GetKeyState("SC079", "P")
i::
SendInput, {Up}
return
#if
ところが次の問題が~sc079 & i::を設定していると動かなくなります
同時併用はできないでしょうか?
ありがとうございます
アドバイス通りにやったらうまくいきました
#If GetKeyState("SC07B", "P") && GetKeyState("SC079", "P")
i::
SendInput, {Up}
return
#if
ところが次の問題が~sc079 & i::を設定していると動かなくなります
同時併用はできないでしょうか?
2023/10/14(土) 08:08:17.62ID:DXkbEwUP0
2023/10/14(土) 08:39:17.96ID:281ftA3E0
>>638
実際にどういう書き方をしているかはわからんけど、おそらく #If が同条件での発動になってて ~sc079 & i:: の方が優先されているだけだと思う
やり方は色々あるけど一例としてこんな感じでも動く
#If !GetKeyState("SC07B", "P")
~sc079 & i::SendInput, {Down}
#If
#If GetKeyState("SC07B", "P") && GetKeyState("SC079", "P")
i::SendInput, {Up}
#If
実際にどういう書き方をしているかはわからんけど、おそらく #If が同条件での発動になってて ~sc079 & i:: の方が優先されているだけだと思う
やり方は色々あるけど一例としてこんな感じでも動く
#If !GetKeyState("SC07B", "P")
~sc079 & i::SendInput, {Down}
#If
#If GetKeyState("SC07B", "P") && GetKeyState("SC079", "P")
i::SendInput, {Up}
#If
2023/10/14(土) 09:17:07.76ID:3TcJyM+70
>>637
どうにかならないかと思ったけどあんまりどうにもならなかった
ローカル変数を扱いたいときだけ列挙してクロージャにして渡して
MsgBox Deref("%var1%def%var2%", varName => (var1, var2, %varName%))
関数定義のところで受け取って
Deref(Str, derefFunc?)
途中のderef部分を
out .= IsSet(derefFunc) ? derefFunc(m[2]) : %m[2]%
みたいな
どうにかならないかと思ったけどあんまりどうにもならなかった
ローカル変数を扱いたいときだけ列挙してクロージャにして渡して
MsgBox Deref("%var1%def%var2%", varName => (var1, var2, %varName%))
関数定義のところで受け取って
Deref(Str, derefFunc?)
途中のderef部分を
out .= IsSet(derefFunc) ? derefFunc(m[2]) : %m[2]%
みたいな
2023/10/14(土) 13:14:24.79ID:281ftA3E0
>>634
636だけどちょっと読み違えてた。そういうことをやりたいならこんな感じで変数にしたい文字列を置き換えるかな…
v := "「A_AhkVersion」「A_YYYY」"
for var in ["A_AhkVersion", "A_YYYY"]
v := RegExReplace(v, var, %var%)
MsgBox v
連想配列を用いる方法もある。一見冗長に見えるがプログラミング的に推奨されるのはこちらの方だと思う
variables := Map("A_AhkVersion", A_AhkVersion, "A_YYYY", A_YYYY)
for key in variables
v := RegExReplace(v, key, variables[key])
v1のTransformも内部的には同様のことやってると思う。ただ、廃止された理由にも含まれると思うけど
予想外のところが変換されてたりしてバグの温床になるのであまり推奨されない
やるにしてももっとマッチパターンを厳密化した方が良い
>>641 の言ってることは別の問題で、やりたくはないんだろうけど元の変数をグローバル化してしまうのが簡単ではある
まあ手段が目的化してしまってる所もあるんだろうけど、
単純な文字列展開なら文字列結合やFormat関数でどうとでもなるので別にいらないのでは?とも思う
636だけどちょっと読み違えてた。そういうことをやりたいならこんな感じで変数にしたい文字列を置き換えるかな…
v := "「A_AhkVersion」「A_YYYY」"
for var in ["A_AhkVersion", "A_YYYY"]
v := RegExReplace(v, var, %var%)
MsgBox v
連想配列を用いる方法もある。一見冗長に見えるがプログラミング的に推奨されるのはこちらの方だと思う
variables := Map("A_AhkVersion", A_AhkVersion, "A_YYYY", A_YYYY)
for key in variables
v := RegExReplace(v, key, variables[key])
v1のTransformも内部的には同様のことやってると思う。ただ、廃止された理由にも含まれると思うけど
予想外のところが変換されてたりしてバグの温床になるのであまり推奨されない
やるにしてももっとマッチパターンを厳密化した方が良い
>>641 の言ってることは別の問題で、やりたくはないんだろうけど元の変数をグローバル化してしまうのが簡単ではある
まあ手段が目的化してしまってる所もあるんだろうけど、
単純な文字列展開なら文字列結合やFormat関数でどうとでもなるので別にいらないのでは?とも思う
2023/10/14(土) 17:31:51.42ID:iMxXiXwK0
2023/10/14(土) 21:33:45.85ID:3TcJyM+70
645633
2023/10/15(日) 13:03:37.69ID:/B+GGiqI0 お返事をくださった皆さん、ありがとうございました
書き忘れてましたがv1でのやり方はご指摘の通りTransformでした
使う変数は組込変数で、使う場面も限定されるので、連想配列で工夫したいと思います
書き忘れてましたがv1でのやり方はご指摘の通りTransformでした
使う変数は組込変数で、使う場面も限定されるので、連想配列で工夫したいと思います
2023/10/15(日) 15:47:01.10ID:TKXXnipr0
https://www.autohotkey.com/docs/v2/Scripts.htm#continuation-section
だいぶ前のレスで上記URLを参考にしたと思われる
v2でのヒアドキュメントが変数を絡めると見にくくなる話が出てたが
継続行開始と終了の()の内側に"入れ改行位置を分けてやればいけることに気がついた
F1:: { ; 公式ドキュメントの例に則った記述
MsgBox("
(Join
現在のバージョンは「
)" A_AhkVersion "
(
」です。
)", "テストメッセージ")
}
F2:: { ; ちょっと詰め込みすぎて逆に分かりにくかもだがこんな感じでいける
MsgBox(
(Comment
"現在のバージョンは「" A_AhkVersion "」です。
今年は" A_YYYY "年です。
来年は" A_YYYY + 1 "年になるでしょう。 ; VSCODE AHKv2-LSP では文字列カラーになるけど、
; Commentオプションも機能する
来月は" ((A_MM + 1 > 12) ? 1 : A_MM + 1) "月のはずです。"
), "テストメッセージ")
}
ただし、公式記法と違い文中の"は`"のように明示的にエスケープする必要がある
その他の自動インデント判定等は普通に機能する
だいぶ前のレスで上記URLを参考にしたと思われる
v2でのヒアドキュメントが変数を絡めると見にくくなる話が出てたが
継続行開始と終了の()の内側に"入れ改行位置を分けてやればいけることに気がついた
F1:: { ; 公式ドキュメントの例に則った記述
MsgBox("
(Join
現在のバージョンは「
)" A_AhkVersion "
(
」です。
)", "テストメッセージ")
}
F2:: { ; ちょっと詰め込みすぎて逆に分かりにくかもだがこんな感じでいける
MsgBox(
(Comment
"現在のバージョンは「" A_AhkVersion "」です。
今年は" A_YYYY "年です。
来年は" A_YYYY + 1 "年になるでしょう。 ; VSCODE AHKv2-LSP では文字列カラーになるけど、
; Commentオプションも機能する
来月は" ((A_MM + 1 > 12) ? 1 : A_MM + 1) "月のはずです。"
), "テストメッセージ")
}
ただし、公式記法と違い文中の"は`"のように明示的にエスケープする必要がある
その他の自動インデント判定等は普通に機能する
2023/10/16(月) 06:27:36.80ID:HnFsiC+R0
なんか無理やりヒアドキュメント使いたいってだけで本末転倒なんよ
最初の例だと
F1:: {
MsgBox(
"現在のバージョンは「"
A_AhkVersion
"」です。"
,"テストメッセージ"
)
}
とか書けばいいだけだし、二番目の例だと逆に可読性が低くてメンテナンスに問題出やすい
それに仕様の穴を突くような変態表記していると、本体更新で後々にバグとして顕在化してきて支障が出る
最初の例だと
F1:: {
MsgBox(
"現在のバージョンは「"
A_AhkVersion
"」です。"
,"テストメッセージ"
)
}
とか書けばいいだけだし、二番目の例だと逆に可読性が低くてメンテナンスに問題出やすい
それに仕様の穴を突くような変態表記していると、本体更新で後々にバグとして顕在化してきて支障が出る
2023/10/16(月) 10:20:02.59ID:Bz5r9zRC0
なにがなんでもv2の欠点を欠点と認めない人がずっと頑張ってるけど
その行為なんかメリットある?
その行為なんかメリットある?
2023/10/16(月) 11:38:46.89ID:Wb0gkuWM0
v3まで待つしか
2023/10/16(月) 12:44:38.46ID:JfuEMiXm0
v1のヘンタイコードに対応することは二度とないよ
2023/10/16(月) 16:43:14.30ID:eNxVDezc0
過去の資産のあるゴミ言語から
資産のないゴミ言語になった
資産のないゴミ言語になった
2023/10/16(月) 16:50:51.45ID:Wb0gkuWM0
先進性があるならともかく、どっかで見たような言語を再開発する意味とは
2023/10/16(月) 18:31:08.61ID:dLR3pMBg0
すまん例が悪かった。AHKでヒアドキュメントを使いたい理由って大抵は簡易的なリストや箇条書きなどの複数行の文を出力する際に
コード上で書いてあるインデントをLTrimで無視したい場合だと思うんだけど、公式例通りにやると変数が絡むとややこしくなるが、こういう風にも書けるということ
俺も理解が足りてなかったが、仕様上の穴ではなく、公式ドキュメントが分かりにくいだけで継続セクションが実際にどのようにどこまで有効であるのかという話
よく読んだら引用符で始まらない場合は式として扱われるという主旨のことが回りくどく書いてあった。正直そんなに必要になることはないし、どうでもいいと言われればそれでいいんだけどね
; 公式例 ""で囲んだ文字列内で継続セクションを開始している為()内の全てが文字列として扱われ、文中の"も文字として扱われるので、式を扱う場合は一度セクションを区切る必要がある
MsgBox("
(LTrim
現在のバージョンは「
)" A_AhkVersion "
(LTrim
」です。
あいうえお
かき"く"けこ`nさしすせそ
)"
) ; 5chの仕様の為、インデントは全角スペースに置き換え
; 文字列結合 各行頭行末に"、文中の"はエスケープ、改行もエスケープされた物のみ 全文を1行にまとめても良い
MsgBox(
"現在のバージョンは「" A_AhkVersion "」です。`n"
"あいうえお`n"
"かき`"く`"けこ`nさしすせそ"
)
; ""の位置を変え、文中の"はエスケープ 文字列結合と同じく式として扱われ、対応する()内が継続セクションと認識される
MsgBox(
(LTrim
"現在のバージョンは「" A_AhkVersion "」です。
あいうえお
かき`"く`"けこ`nさしすせそ"
)
)
コード上で書いてあるインデントをLTrimで無視したい場合だと思うんだけど、公式例通りにやると変数が絡むとややこしくなるが、こういう風にも書けるということ
俺も理解が足りてなかったが、仕様上の穴ではなく、公式ドキュメントが分かりにくいだけで継続セクションが実際にどのようにどこまで有効であるのかという話
よく読んだら引用符で始まらない場合は式として扱われるという主旨のことが回りくどく書いてあった。正直そんなに必要になることはないし、どうでもいいと言われればそれでいいんだけどね
; 公式例 ""で囲んだ文字列内で継続セクションを開始している為()内の全てが文字列として扱われ、文中の"も文字として扱われるので、式を扱う場合は一度セクションを区切る必要がある
MsgBox("
(LTrim
現在のバージョンは「
)" A_AhkVersion "
(LTrim
」です。
あいうえお
かき"く"けこ`nさしすせそ
)"
) ; 5chの仕様の為、インデントは全角スペースに置き換え
; 文字列結合 各行頭行末に"、文中の"はエスケープ、改行もエスケープされた物のみ 全文を1行にまとめても良い
MsgBox(
"現在のバージョンは「" A_AhkVersion "」です。`n"
"あいうえお`n"
"かき`"く`"けこ`nさしすせそ"
)
; ""の位置を変え、文中の"はエスケープ 文字列結合と同じく式として扱われ、対応する()内が継続セクションと認識される
MsgBox(
(LTrim
"現在のバージョンは「" A_AhkVersion "」です。
あいうえお
かき`"く`"けこ`nさしすせそ"
)
)
2023/10/16(月) 19:09:39.65ID:pPRJ1RqD0
この仕様を見ていると変数展開させて使うって人は
ほとんどいないんだろうなと思うわ
PowerShellみたいにした方が良いのに
ほとんどいないんだろうなと思うわ
PowerShellみたいにした方が良いのに
2023/10/16(月) 19:19:36.47ID:YfG7lbKB0
pythonのf文字列も実装遅かったしな
前からあったアイディアなのに採用しなかったということは、意図的に避けたんだろう
前からあったアイディアなのに採用しなかったということは、意図的に避けたんだろう
656名無しさん@お腹いっぱい。
2023/10/17(火) 19:53:48.71ID:v6kMRlAv0 右クリックだけの時は普通に右クリックして、
右クリック+ホイールの上下でブラウザの拡大縮小をやりたいんですが
下のマクロだとマウスクリック+ホイール上下で拡大縮小と右クリックメニューが同時に出ます
また、ブラウザのマウスジェスチャが効かなくなります。
どうやって修正したらいいですか。
RButton::RButton
return
RButton & WheelUp::
SendInput, {RButton}^{-} ; マウスの右クリック + ホイール上でCtrl+「-」が送信される
return
RButton & WheelDown::
SendInput, {RButton}^{+} ; マウスの右クリック + ホイール下でCtrl+「+」が送信される
return
右クリック+ホイールの上下でブラウザの拡大縮小をやりたいんですが
下のマクロだとマウスクリック+ホイール上下で拡大縮小と右クリックメニューが同時に出ます
また、ブラウザのマウスジェスチャが効かなくなります。
どうやって修正したらいいですか。
RButton::RButton
return
RButton & WheelUp::
SendInput, {RButton}^{-} ; マウスの右クリック + ホイール上でCtrl+「-」が送信される
return
RButton & WheelDown::
SendInput, {RButton}^{+} ; マウスの右クリック + ホイール下でCtrl+「+」が送信される
return
657sage
2023/10/17(火) 21:25:54.42ID:hsUb4Jn70 右クリックメニューが最後出てもいいなら
WheelUp::
if GetKeyState("RButton")
SendInput {ctrl down}{WheelUp}{ctrl up}
else
SendInput {WheelUp}
return
WheelDown::
if GetKeyState("RButton")
SendInput {ctrl down}{WheelDown}{ctrl up}
else
SendInput {WheelDown}
return
WheelUp::
if GetKeyState("RButton")
SendInput {ctrl down}{WheelUp}{ctrl up}
else
SendInput {WheelUp}
return
WheelDown::
if GetKeyState("RButton")
SendInput {ctrl down}{WheelDown}{ctrl up}
else
SendInput {WheelDown}
return
2023/10/17(火) 22:29:56.60ID:zT0TFsHP0
MouseGestureLならMG_CancelDefBehavior()で右クリックメニューを抑制できるから
AutoHotkeyでも出来るだろうね
AutoHotkeyでも出来るだろうね
2023/10/17(火) 22:39:17.44ID:pYkaTV7l0
>>656
個人的な見解で申し訳ないが…
>ブラウザのマウスジェスチャが効かなくなります。
このように不都合なことが起こりかねないから
1)ブラウザ側のマウスジェスチャだけでやる
か、
2)ブラウザの機能を無効にして外部マウスジェスチャツール(例えばMouseGestureL.ahk)だけでやる
かどっちかにした方が良いよ思うよ
2)だとブラウザの操作がショートカットキーで全て実現できるならマウスジェスチャツールでも実現できるし
そのブラウザだけじゃなく他のアプリでも個別に設定したマウスジェスチャで操作できる利点があるし
個人的な見解で申し訳ないが…
>ブラウザのマウスジェスチャが効かなくなります。
このように不都合なことが起こりかねないから
1)ブラウザ側のマウスジェスチャだけでやる
か、
2)ブラウザの機能を無効にして外部マウスジェスチャツール(例えばMouseGestureL.ahk)だけでやる
かどっちかにした方が良いよ思うよ
2)だとブラウザの操作がショートカットキーで全て実現できるならマウスジェスチャツールでも実現できるし
そのブラウザだけじゃなく他のアプリでも個別に設定したマウスジェスチャで操作できる利点があるし
2023/10/18(水) 00:50:07.18ID:6hRvblQL0
2023/10/20(金) 17:07:44.29ID:xwrdv7kg0
解決策がさっぱりわからない事でみなさんのご意見伺おうと整理して文章書いてたら解決してしまった…
2023/10/21(土) 00:14:47.71ID:QsqkSmLl0
>>661
あるある
あるある
2023/10/21(土) 00:15:10.09ID:QsqkSmLl0
>>661
あるある
あるある
664名無しさん@お腹いっぱい。
2023/10/21(土) 07:27:33.45ID:uDJeYMX30 書くと考えが整理されるよね
2023/10/21(土) 08:58:11.72ID:670MOFi40
変な話だけどコーディングは漢字の書き取りみたいに
不細工でもいいから手で繰り返し書くと習得が早まるのはあるな
コピペだけしているようだと全然仕組みを覚えない
不細工でもいいから手で繰り返し書くと習得が早まるのはあるな
コピペだけしているようだと全然仕組みを覚えない
2023/10/21(土) 10:25:37.09ID:qkI01+t50
改行を\nではなく`nにしないといけない理由って何だっけ
2023/10/21(土) 10:57:36.70ID:A46hLlw90
2023/10/21(土) 11:12:42.18ID:670MOFi40
Windowsのコマンドラインと干渉させないためでしょ
例えば、\note というディレクトリが誤判定される危険性がある
\\でエスケープすればいいじゃんって見解もあるが
Windowsで既に用いられてるからね(例えばレジストリトファイル)
それをエスケープしようとすると\\\\のエスケープ地獄に陥るから
変えるのは妥当
どうしても嫌ならエスケープ文字を変えるオプションもあったはず
全くお勧めしないけど
例えば、\note というディレクトリが誤判定される危険性がある
\\でエスケープすればいいじゃんって見解もあるが
Windowsで既に用いられてるからね(例えばレジストリトファイル)
それをエスケープしようとすると\\\\のエスケープ地獄に陥るから
変えるのは妥当
どうしても嫌ならエスケープ文字を変えるオプションもあったはず
全くお勧めしないけど
2023/10/21(土) 11:18:54.11ID:670MOFi40
レジストリトファイル
↓
レジストリ ファイル
↓
レジストリ ファイル
2023/10/21(土) 11:46:02.56ID:qkI01+t50
他の言語と同じ方法にしとけばいいのに、独自路線を選ぶんだよな
誰も気付かなかったうまいやり方見つけちゃった
ちげーよ、デメリットがでかいから誰もやらないだけだよ
誰も気付かなかったうまいやり方見つけちゃった
ちげーよ、デメリットがでかいから誰もやらないだけだよ
2023/10/21(土) 12:02:08.83ID:PFRfZnbl0
「"」はなんで「`"」じゃダメだったんだろう
2023/10/21(土) 12:31:59.43ID:Ls2E16c40
最近使い始めてどうしても意味がわからない事がありお教えて頂きたいのですが例を見ると二行目とか三行目の最初10個くらいスペース空けています
あれは必ず何個空けないといけないとか空けずに書くと弊害が起きるとか理由や意味があるからなってるんですよね?
空けずに左端から書くのがわかりやすいし書きやすいと思ったのですけどルールがあるならちゃんと知っておきたいと思って質問させて頂きましたサンプルなどを見てやっているのでV1です
よろしくお願いします
あれは必ず何個空けないといけないとか空けずに書くと弊害が起きるとか理由や意味があるからなってるんですよね?
空けずに左端から書くのがわかりやすいし書きやすいと思ったのですけどルールがあるならちゃんと知っておきたいと思って質問させて頂きましたサンプルなどを見てやっているのでV1です
よろしくお願いします
2023/10/21(土) 12:32:12.21ID:qkI01+t50
:= も同様の拘りなんだよな
何故かデファクトスタンダードに逆らってイキりたがる
= は曖昧だから:=と==だけにします、なら判る
= は既によく判らん用途に使ってるからとか基本設計がおかしい
何故かデファクトスタンダードに逆らってイキりたがる
= は曖昧だから:=と==だけにします、なら判る
= は既によく判らん用途に使ってるからとか基本設計がおかしい
2023/10/21(土) 12:39:38.67ID:MgetEplM0
2023/10/21(土) 12:42:29.00ID:uwWEvv0P0
v1の頃に決まった話になると、そんな小さいことに目くじら立てるどころじゃない気が
20年くらい前で他の同系統の言語も同じようなものとはいえツッコミどころが山盛りでは
20年くらい前で他の同系統の言語も同じようなものとはいえツッコミどころが山盛りでは
2023/10/21(土) 12:47:14.39ID:MgetEplM0
2023/10/21(土) 15:26:28.94ID:Ls2E16c40
2023/10/21(土) 21:30:29.25ID:9BoGHaTl0
見やすくというか
読みやすくというか
理解しやすくというか
読みやすくというか
理解しやすくというか
2023/10/21(土) 23:29:27.11ID:Ls2E16c40
680名無しさん@お腹いっぱい。
2023/10/23(月) 03:03:06.70ID:WlJrDHiJ0 \\\\のエスケープ地獄は、たしかにちょっとつらい
なので ` でエスケープする妥当性はわかる
けど、JavaScript のように `` を文字列のリテラルとして使えるともっと嬉しかった
変数置換ができるなら更に嬉しい
(変数置換ができないとしても、' も " もエスケープなしで記述できるだけでも嬉しい)
AHK の無名関数は、JavaScript のように () => {} こうは書けず、() {} こう書く必要がある >>624
AHK は JavaScript を参考にしつつも、微妙に追随できていなくて、独自路線(しかもちょっと残念な)があるのが、たしかにちょっと残念に思う
個人的には、ここまで JavaScript を参考にしているなら、基本的に JavaScript と同じにして、
JavaScript + AHK 用の関数群という形にしてほしいと思う
v3 ではそうなるといいなと思う
なので ` でエスケープする妥当性はわかる
けど、JavaScript のように `` を文字列のリテラルとして使えるともっと嬉しかった
変数置換ができるなら更に嬉しい
(変数置換ができないとしても、' も " もエスケープなしで記述できるだけでも嬉しい)
AHK の無名関数は、JavaScript のように () => {} こうは書けず、() {} こう書く必要がある >>624
AHK は JavaScript を参考にしつつも、微妙に追随できていなくて、独自路線(しかもちょっと残念な)があるのが、たしかにちょっと残念に思う
個人的には、ここまで JavaScript を参考にしているなら、基本的に JavaScript と同じにして、
JavaScript + AHK 用の関数群という形にしてほしいと思う
v3 ではそうなるといいなと思う
2023/10/23(月) 08:16:22.70ID:YDc6e+fm0
> JavaScript + AHK 用の関数群
これってたしか日本の人がそういうの大分前に作ってたよね
ちょっと検索しても出なかったけどやめちゃったのか
これってたしか日本の人がそういうの大分前に作ってたよね
ちょっと検索しても出なかったけどやめちゃったのか
2023/10/23(月) 21:54:32.87ID:9tna838Y0
v2公式でGUIにHTML/CSS/JSサポートしてくれたらいいのになぁ
683名無しさん@お腹いっぱい。
2023/10/24(火) 02:00:01.88ID:LXOelMg+0 ahkにキーボードマクロ機能ってあったりするのでしょうか?
具体的には、レノボ トラックポイントキーボードIIで、
起動時にFn+Escを自動で押したいのです
このキーボードでファンクションキーはデフォルトで機能キーが割り当てられていて、
ファンクションキーとして使うためには起動毎にファンクションロックしてやらないとダメなのを自動化したいのです
ベクターのキーボードマクロをいくつか試したのですが、
Fnキーみたいなキーボード個別の特殊キーに対応したのが見つけられません
ahkならキーコード拾えそうなので質問してみました
よろしくお願いいたします
具体的には、レノボ トラックポイントキーボードIIで、
起動時にFn+Escを自動で押したいのです
このキーボードでファンクションキーはデフォルトで機能キーが割り当てられていて、
ファンクションキーとして使うためには起動毎にファンクションロックしてやらないとダメなのを自動化したいのです
ベクターのキーボードマクロをいくつか試したのですが、
Fnキーみたいなキーボード個別の特殊キーに対応したのが見つけられません
ahkならキーコード拾えそうなので質問してみました
よろしくお願いいたします
684名無しさん@お腹いっぱい。
2023/10/24(火) 02:56:41.93ID:LXOelMg+0 >>683自己レス
どうやらこのFnキーはPCにはキーコードを発出しておらず、キーボード内で完結しているみたい
こりゃPC側で何やっても無理ですね
レノボに要望出すくらいかできることはなさそうです
お騒がせしました
どうやらこのFnキーはPCにはキーコードを発出しておらず、キーボード内で完結しているみたい
こりゃPC側で何やっても無理ですね
レノボに要望出すくらいかできることはなさそうです
お騒がせしました
685名無しさん@お腹いっぱい。
2023/10/24(火) 03:07:23.96ID:XK3z8D+O0 >>682
HTML を表示できるコンポーネントが使えたら便利そうだね
HTML を表示できるコンポーネントが使えたら便利そうだね
2023/10/24(火) 07:13:30.38ID:35rovyz10
Fnキーはどこもステルスだが
つーか使いにくいからFnキーとして置かなくても別キーとかでも良いのに、手前に陣取って邪魔なんだよな
つーか使いにくいからFnキーとして置かなくても別キーとかでも良いのに、手前に陣取って邪魔なんだよな
2023/10/24(火) 08:38:38.26ID:Peo0Ada/0
Ctrlとかと誤爆しやすい位置にリマップ不可なFnなんて、悪意しか感じん
2023/10/24(火) 10:26:10.08ID:Hn9xTC4v0
ノートPCはディスプレイとキーボードを外付けして使うのが正解
2023/10/24(火) 10:43:45.23ID:hLY2TQAp0
ノートって今は中途半端すぎて売り上げ落ちているらしいな
スマホとかUSBメモリとかクラウドとか理由はいろいろあるんだろうけど
スマホとかUSBメモリとかクラウドとか理由はいろいろあるんだろうけど
2023/10/24(火) 11:02:12.95ID:Hn9xTC4v0
うちの会社はフリーアドレス化したのでノートじゃないと無理だな
キーボード繋がせて欲しい
アプリケーションキーが存在しないとか意味判らん
キーボード繋がせて欲しい
アプリケーションキーが存在しないとか意味判らん
2023/10/24(火) 11:42:22.74ID:hLY2TQAp0
AppsKeyは右クリが壊れた時に使ってたわ
あの時はアプリによっては右クリでしか呼び出せないメニューがあることに気づいいて
UI設計の大切さを学んだわ
あの時はアプリによっては右クリでしか呼び出せないメニューがあることに気づいいて
UI設計の大切さを学んだわ
2023/10/24(火) 12:35:47.02ID:utY4MNcR0
ThinkPadキーボード、Fnキー、Appsキーの話になってるので質問させて下さい
キーボードをThinkPadキーボードに変えたらやらないといけない事が出来たので何かアドバイスお願いします
ThinkPadキーボードは旧型のUSB接続
今まではAppsキーに二回押したらEscを割り当てていました(サンプルコード集参照)
ThinkPadキーボードに右クリボタンがありAppsキーは無いので記述をRbuttonに書き換え
これで以前と同じ使い心地になる…と思ったらそうではありませんでした
例えばファイルやメールにフォーカスがある時、Appsキーならカーソルがどこにあってもそフォーカスの物に右クリメニューが出ますが右ボタンだとカーソルのある場所の右クリメニューが出る
それは当たり前ですが、その使い方を望んではおらず
じゃあRbuttonをAppsキーにすればとも思いましたが、それだとマウス自体の右ボタンの挙動も変わってしまう
それも望んでいない
AHKにはRbuttonとして認識されているのでどうにも出来ないでしょうか?
それと真ん中のボタン、押しながらトラックポイントを動かせばスクロールする機能ですがこれにも何か別の機能とかを割り当てられないかとKey historyを見ても何も出ていません
Fnと同様で他に使う事は無理でしょうか?
Win11 Pro
AHK v1.1.37.01
キーボードをThinkPadキーボードに変えたらやらないといけない事が出来たので何かアドバイスお願いします
ThinkPadキーボードは旧型のUSB接続
今まではAppsキーに二回押したらEscを割り当てていました(サンプルコード集参照)
ThinkPadキーボードに右クリボタンがありAppsキーは無いので記述をRbuttonに書き換え
これで以前と同じ使い心地になる…と思ったらそうではありませんでした
例えばファイルやメールにフォーカスがある時、Appsキーならカーソルがどこにあってもそフォーカスの物に右クリメニューが出ますが右ボタンだとカーソルのある場所の右クリメニューが出る
それは当たり前ですが、その使い方を望んではおらず
じゃあRbuttonをAppsキーにすればとも思いましたが、それだとマウス自体の右ボタンの挙動も変わってしまう
それも望んでいない
AHKにはRbuttonとして認識されているのでどうにも出来ないでしょうか?
それと真ん中のボタン、押しながらトラックポイントを動かせばスクロールする機能ですがこれにも何か別の機能とかを割り当てられないかとKey historyを見ても何も出ていません
Fnと同様で他に使う事は無理でしょうか?
Win11 Pro
AHK v1.1.37.01
2023/10/24(火) 12:41:50.16ID:acf7AARQ0
>>690
BTキーボードくらい繋がるでしょ
BTキーボードくらい繋がるでしょ
694名無しさん@お腹いっぱい。
2023/10/24(火) 14:02:16.64ID:7EB3AWV+0 キーAを押しながら、キーBを押すって動作をスクリプトに書いた場合、
Aを押した状態でB以外の入力を受け付けなくなるのって回避方法ある?
Aを押した状態でB以外の入力を受け付けなくなるのって回避方法ある?
2023/10/25(水) 00:46:51.16ID:xHwpED+J0
696名無しさん@お腹いっぱい。
2023/10/25(水) 07:18:48.75ID:0tfdF69F0 >>694
キーAとキーBは何キーですか?
キーAとキーBは何キーですか?
697名無しさん@お腹いっぱい。
2023/10/25(水) 20:18:18.98ID:BMAQsHQh0 質問です。Potplayerをバックグラウンドで操作したいのですが以下のスクリプトでは動作しません。アドバイスお願いします。 v1.11.11
!enter::
DetectHiddenWindows, On
ControlSend, ahk_class, {space}, ahk_class PotPlayer
return
!enter::
DetectHiddenWindows, On
ControlSend, ahk_class, {space}, ahk_class PotPlayer
return
2023/10/26(木) 20:39:28.63ID:stdJKV+p0
その第一引数はなんなの
2023/10/27(金) 17:11:32.49ID:W6kx2B0a0
cmdでif必要なときはbatかahkで書いてたけど、|使って論理演算子作れるの発見して驚愕してる
wikiのRunに書いてほしかった…
wikiのRunに書いてほしかった…
2023/10/27(金) 18:13:18.72ID:Gr5vROVq0
これと、
Run / RunWait - Syntax & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/lib/Run.htm#Return_Value
これの組み合わせってこと?
Variables and Expressions - Definition & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/Variables.htm#Operators
Run / RunWait - Syntax & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/lib/Run.htm#Return_Value
これの組み合わせってこと?
Variables and Expressions - Definition & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/Variables.htm#Operators
2023/10/28(土) 04:22:30.30ID:MaaLhlYz0
|単体のパイプだとわからないけど、&や&&や||でコマンドライン1行に複数コマンドを書く話?
それならAutoHotKeyじゃなくてWindowsのcmdの解説だからwikiに書いてないのでは
それならAutoHotKeyじゃなくてWindowsのcmdの解説だからwikiに書いてないのでは
702名無しさん@お腹いっぱい。
2023/10/28(土) 05:36:10.86ID:JXkBTMwt0 >>699
もう少しわかりやすく書いてほしい
もう少しわかりやすく書いてほしい
2023/10/28(土) 11:18:23.74ID:Ti0/3LdE0
2023/10/29(日) 14:07:13.81ID:Pb3Qv4nh0
Sendで上下左右を指定すると通常の動作で一呼吸置いてから連打しますが、最初から連打(加速)させる方法ありますか?
2023/10/29(日) 14:17:04.36ID:WbJiFF2/0
お祈りが足りていないと思われます
706697
2023/10/29(日) 18:02:57.55ID:lxd/WQLd0 >>698
前身のKimplayerでは、この部分にahk_parentと書けば動いたので、試行錯誤の名残です。省略してもahk_parentと書いても動作しません。
前身のKimplayerでは、この部分にahk_parentと書けば動いたので、試行錯誤の名残です。省略してもahk_parentと書いても動作しません。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… [BFU★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★7 [おっさん友の会★]
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- 「高市人気」どこに? 自民候補が福島市長選で大敗、葛飾区議選でも苦戦 衆院早期解散論に冷や水 [1ゲットロボ★]
- 【ホタテ】中国が水産物輸入停止を伝達「ビクビクしながら…」北海道の水産業者からは落胆の声 [おっさん友の会★]
- 日銀「利上げなんだけど」高市さん「そういうことね、よしなに🙂」 [881878332]
- 高市早苗「つい言い過ぎた」公邸で一人ひきこもる😲 [861717324]
- 【悲報】普通の日本人「総理が高市さんになって日本が正常化していく…!」 [714769305]
- 日本人、ついに気づく「あれ、日本が対中国で取れる対抗措置ってなくない…?」 [931948549]
- JAL、ANA「国内線赤字です」「新幹線に負けるので値上げどころかセール連発で値下げします」👈ビジネス的にもう厳しくね [943688309]
- 外務省局長「答弁撤回は拒否する。薛剣はクビにしろ。訪日自粛やめろ。あと在留邦人の安全確保しろ」 [834922174]
