[過去ログ] AutoHotkey スレッド part30 IDのみ (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
593: 2023/09/30(土)07:49 ID:FJNgzxOZ0(1/2) AAS
>>591
ifの後をブロックで囲ってないからifに関係なくbreakされる
あと
>list=[1,2,3・・・・]
ここと
>, list[A_Index]
ここも直さないと期待通りには動かない
594: 2023/09/30(土)07:58 ID:nXp5JoSn0(1/2) AAS
>>591
その例だとこうだろ
hensuu:=0
a:="bred"
list:=["red","green","blue"]
Loop,% list.Length()
{
If InStr(a, list[A_Index]) {
hensuu:=1
break
省7
595: 2023/09/30(土)08:11 ID:8kGAhi8Z0(1) AAS
ちゃんとlistの長さ分だけループ周ってるの?
とか
list[A_Index]がちゃんと複数文字列としてループ内で展開されてるの?
とかもあるけど
そもそもの話としてIfInStringじゃなくてcontains、RegExMatch()あたりを使うべき処理かと
596: 2023/09/30(土)08:16 ID:nXp5JoSn0(2/2) AAS
普通は検索要素がそう多くなければ正規表現でちょちょってやるような処理よ
フラグを立てるだけならfalseとtrueを使った方が後でソースを見返すときに
分かりやすくていいぞ
hensuu:=false
a:="bred"
if RegExMatch(a,"red|green|blue") {
hensuu:=true
}
msgbox % hensuu
597(7): 2023/09/30(土)22:12 ID:WWZtyfbn0(1/3) AAS
AutoHotkey初心者です。
質問があります。↓のようなスクリプトを書いて実行させました(verは1.1です)。
;「無変換」が単独で押されたら、「Backspace」が押されたことにする。
vk1D::Send,{Blind}{Backspace}
;「変換」が単独で押されたら、「Enter」が押されたことにする。
vk1C::Send,{Blind}{Enter}
通常の「Backspaceキー」と「Enterキー」ですと、キーを押し続けると削除や改行をし続けますが、
このスクリプトだと「無変換キー」と「変換キー」を押し続けても何も反応はなく、
押し上げてやっと1回だけ削除や改行をします。
これを通常の「Backspaceキー」と「Enterキー」と同じように、
省1
598(1): 2023/09/30(土)22:25 ID:FJNgzxOZ0(2/2) AAS
↑いつもの荒らしです
触らないように
599: 597 2023/09/30(土)22:30 ID:WWZtyfbn0(2/3) AAS
>>598
いいえ、私は荒らしではありません。
本当に分からないことがあったので、質問させていただきました。
600: 2023/09/30(土)22:31 ID:lxiWU+kb0(1) AAS
Blindは大抵変なことになるな
601(1): 2023/09/30(土)23:10 ID:g6QA9piE0(1) AAS
>>597
これなんかおかしいよ
Blindで修飾キーの押下の可能性をを示唆しているのに
無変換の単独キーって、よくわからん
例えば、Shift + BS とか Ctrl + BS は普通にエディタ使っていると
人によっては、まあまあ使うんだけど
Shift + 無変換で Shift + BS になってほしいのか、ほしくないのか?
どっち?
602(2): 597 2023/09/30(土)23:37 ID:WWZtyfbn0(3/3) AAS
>>601
私はAutoHotkey初心者なので、「Blind」の意味もよく分かっていません。
参考にしたスクリプトに「Blind」が入っていたので、自分の方でも入れているだけです。
「Shift+無変換」で「Shift+Backspace」にはなって欲しくないです(必要と感じていないため)。
しかし、「Shift+変換」で「Shift+Enter」にはなって欲しいので、
>>597には省略して書きませんでしたが、実際のスクリプトは↓のようになっています。
;「変換」が単独で押されたら、「Enter」が押されたことにする。
vk1C::Send,{Blind}{Enter}
;「Shift+変換」が押されたら、「Shift+Enter」が押されたことにする。
+vk1C::Send,+{Enter}
省7
603(1): 2023/09/30(土)23:42 ID:KnLHxxU/0(1/2) AAS
>>597
単独で押されたら って書いているということは別の行に
無変換+何かのキーとかのスクリプトを書いているんじゃないの?
604(1): 2023/09/30(土)23:47 ID:KnLHxxU/0(2/2) AAS
>602
{Blind}付けるなら +vk1c:: の行は要らないのでは?
605(1): 2023/10/01(日)00:07 ID:aO5V046V0(1/2) AAS
>>602
無変換だけサンプルで
変換の方はわかると思う
vk1D::BS
+vk1D::Del ;Shift + 無変換でdel
;*^vk1D:: ;Ctrl + 無変換は受け付ける
;他の修飾キーと無変換の組み合わせを無効化
*!vk1D::
*#vk1D::
return
省3
606(1): 597 2023/10/01(日)00:24 ID:5y0E7yg10(1/2) AAS
>>603
そうです。別の行に↓のようなスクリプトを書いています。
;「無変換+Q」が押されたら、「Alt+←」が押されたことにする(戻る)。
vk1D & q::Send,!{Left}
;「無変換+W」が押されたら、「Alt+→」が押されたことにする(進む)。
vk1D & w::Send,!{Right}
>>604
今、試してみましたが「+vk1c:: の行」を消すと、
「Shift+変換」を押したら、「Shift+Enter」を押したように動作しなくなります。
>>605
省5
607(1): 2023/10/01(日)00:44 ID:aO5V046V0(2/2) AAS
>>606
無変換の単独押しでリピートしなくなる
他はいける
組み込んで試してみなよ
608(2): 597 2023/10/01(日)08:03 ID:5y0E7yg10(2/2) AAS
>>607
おっしゃっていることがよく分かりません。
私は「無変換」を「修飾キー」として使った上で、
「無変換」単独押しをした時は(Backspaceキーとして)「キーリピート」をして削除し続けて欲しいのですが、
それはできないということでしょうか?
609(1): 2023/10/01(日)08:09 ID:vJZ6he//0(1) AAS
>>608
無変換+q をやりたい時にまず無変換キーを押すと思うんだけど、
そこから1秒程度経過してしまったら自動的に削除リピートが始まって欲しいと?
610: 2023/10/01(日)09:14 ID:jCSy+5iI0(1) AAS
キートップの文字を書き換えたかのように、そのキーを完全に置き換える
どんな組み合わせで押しても置き換わって動作する
という挙動をahkで書くのはなかなか大変だけど、
yamyでは1行だったんだよな
611(1): 2023/10/01(日)09:37 ID:1MOKFxYN0(1) AAS
>>608
修飾キーっていうのは単独押しでは作用しないから修飾キーなわけでしょ
例外はWinキーで、これは単独だと離したときにスタートメニューが発動するから成立している
これを無変換に当てはめるとすると、離したときにBSが発動してたらキーリピートになりようがない
だから前のレスで書いたように、押下時間でリピートになったり、修飾キーになったりみたいな
仕組みにする必要がある
ただBSなんかは瞬時に発動してくれないとイラつくだけだと思うんだよね
修飾キーのつもりで押したのに文字が消えたとか誤爆もあるし
612: 597 2023/10/01(日)10:23 ID:IXVZWApm0(1) AAS
>>609
その通りです。
>>611
分かりやすい例えをありがとうございます。
私の希望は複雑なコードを書けば実現できそうではあるけれども、実現できたところで誤爆の可能性が高くなるのでお勧めしないということですね。
分かりました。実現できたところで不便そうなので、現在のスクリプトのまま使い続けようと思います。
上下前次1-新書関写板覧索設栞歴
あと 390 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s