X



AutoHotkey スレッド part30 IDのみ

レス数が1000を超えています。これ以上書き込みはできません。
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
2022/02/10(木) 15:45:10.69ID:WabIUjFV0
キンドルストアで売ってる唯一の日本語マニュアル買ってみたんだけど
ボリューム無かった
もうちょっと色々情報欲しかった
3名無しさん@お腹いっぱい。
垢版 |
2022/02/11(金) 10:02:20.40ID:12WhonFv0
それぞれのコマンドの使い方
新しく加わっていくコマンド
バージョンが変わって削除されたコマンドはどう確認すればいいの?
4名無しさん@お腹いっぱい。
垢版 |
2022/08/05(金) 19:59:48.12ID:0sEFrCso0
ふあああ
5名無しさん@お腹いっぱい。
垢版 |
2022/08/06(土) 07:53:15.43ID:bxMhPJ900
お、普通の表示で立ってる
よかったあの表示気持ち悪いし邪魔臭くて嫌いなんだ
2022/08/12(金) 17:44:44.58ID:gepA59Dc0
ChromeのDOMって操作できる?
FireFoxでもいいけど
7名無しさん@お腹いっぱい。
垢版 |
2022/08/12(金) 20:08:12.42ID:wga9M1ej0
https://www.autohotkey.com/boards/viewtopic.php?t=42890

ブラウザ自動化なら個人的にPythonでSelenium使ったほうが汎用性高いと思う
スクレイピングならBeautiful Soup 4
ちょっとDOM弄りたいならUserscript
2022/08/20(土) 16:00:14.36ID:DC/mpmo50
このダイアログが出た状態から
d:\src\test.ahkの2行目にタグジャンプする方法ってないの?
全世界のAHKユーザーは手動でジャンプしてるの

---------------------------
test.ahk
---------------------------
Error at line 2.

Line Text: test
Error: This line does not contain a recognized action.

The program will exit.
---------------------------
OK
---------------------------
9名無しさん@お腹いっぱい。
垢版 |
2022/08/25(木) 20:50:53.77ID:KCQBMTmu0
ClassNNのテキストはどうやって取得すればいいですか?
10名無しさん@お腹いっぱい。
垢版 |
2022/08/28(日) 20:37:58.64ID:4Ld0lk3O0
んー
2022/10/01(土) 08:56:55.79ID:BZE5Zfde0
tps://qiita.com/catfist/items/22efb95194d8b2b270e1
を元に引数を渡せるようにしてみた

cuteExecALT.exe 実行ファイル 引数

; タスクバーをブリンクさせず強制的にアクティベート
#WinActivateForce
; 引数に実行ファイルのフルパスを与える(Bluewindからの使用を想定)
; http://usbcafe.blog111.fc2.com/blog-entry-103.html

ExePath = %1%
Argument = %2%
SplitPath, ExePath, ExeName

Process,Exist,%ExeName%
if ErrorLevel<>0
WinActivate,ahk_pid %ErrorLevel%
else
Run,%ExePath% %Argument%
return
2022/12/21(水) 16:13:00.91ID:knyn9FQ50
mousegesturelは2.0に対応するのかな
2023/01/07(土) 09:21:26.65ID:k8PWupBR0
テステス
2023/01/09(月) 05:54:47.41ID:SbiXzeCZ0
規制された?
2023/01/15(日) 13:17:40.08ID:MvNFHUkJ0
TEST
2023/01/16(月) 21:09:56.01ID:J7VhRFDb0
書けた!
2023/01/21(土) 22:29:52.40ID:O9/s6Vjc0
あなたはこのスレッドにはもう書けません?
2023/01/22(日) 00:58:51.93ID:Tm/c0CE40
test
2023/01/22(日) 18:02:03.10ID:mlOoBT3e0
余所でやってください。
2023/01/26(木) 07:46:23.49ID:CIme8OXU0
ただ今制限を設けております
2023/01/30(月) 07:20:53.01ID:nkvbieUz0
テスト
22名無しさん@お腹いっぱい。
垢版 |
2023/02/03(金) 13:40:49.51ID:tLksw/I00
前スレで選択したファイルを移動するFileMove教えていただいたものですけど、F16でこのフォルダへ移動、F17でこのフォルダへ…と各キーで各フォルダに割り当てる方法ないでしょうか?

;;F16で選択したファイルをYに移動
DestDir := "Y:\"

F16::
Send, ^c
Loop, Parse, clipboard, `n, `r
{
FileMove, %A_LoopField%, %DestDir%
}
clipboard :=
return

;;F17で選択したファイルをY:\tomatoに移動


DestDir := "Y:\tomato"

F17::
Send, ^c
Loop, Parse, clipboard, `n, `r
{
FileMove, %A_LoopField%, %DestDir%
}
clipboard :=
return

この記述ですとF16は機能するのですがF17は機能しませんでした

https://www.autohotkey.com/boards/viewtopic.php?t=69707
を参考にしています。宜しくお願い致します。
2023/02/03(金) 14:47:42.20ID:LANQPsMI0
F16::
DestDir := "Y:\"


F17::
DestDir := "Y:\tomato"
24名無しさん@お腹いっぱい。
垢版 |
2023/02/03(金) 17:25:22.79ID:tLksw/I00
>>23
ありがとうございます
ただこちら試していて分かったのですが、フォルダ名に日本語が入っていると機能しないんですね…
"Y:\書類"ですと機能せずアルファベットですと動きました
autohotkey自体の仕様で、この辺りはさすがにどうしようもないですよね?
2023/02/04(土) 05:27:20.19ID:oKa8UIma0
>>24
スクリプトファイルの文字コードをUTF-8 BOM付きにする
26名無しさん@お腹いっぱい。
垢版 |
2023/02/04(土) 22:55:50.47ID:Hk/oyai50
>>25
ありがとうございます…感動です。これでワンボタンで特定のフォルダへ移動出来るようになりました
何十個もあると本当に移動できているのか確認するすべがないので怖いですが…とにかく感謝です
ありがとうございます
2023/02/05(日) 02:20:54.45ID:tXpgRt7Z0
左SHIFTを2回連打(2回目を離した)ときに起動したいアプリがあるんだけど
SHIFT押しっぱなしで英大文字が入力できなくなってしまう...
簡単に実装できないの?
2023/02/05(日) 08:49:24.13ID:5m2deuZX0
俺はできる
29名無しさん@お腹いっぱい。
垢版 |
2023/02/07(火) 03:53:33.05ID:m+G7oWrP0
altとXでカタカナに変換をしたいのですが、結構な頻度でaltキーが押しっぱなしになってしまいます。
解決方法や他に良い一発カタカナ変換の方法ないでしょうか?

;altとXでカタカナに変換
SetKeyDelay, 0
!x::
Send,{F6}
return
2023/02/07(火) 04:50:27.45ID:72hpDNxz0
カタカナ変換って言ったらCtrl+Iだろ
なんでそんな押しにくい場所に

それにIME周りは状態ON/OFFで挙動変えないといけないから面倒
AHKに頼らずIME側のキーカスタマイズでやったほうが楽じゃね
2023/02/10(金) 09:13:31.27ID:Fan/G82J0
基本US配列なんですがJP配列をトグルで切り替えるにはどうしたらいいですか?
やりたいことは
F13 & Spaceを一度押すとUS→JP(例えば+2::Send, @ が有効)になり
もう一度F13 & Spaceで無効になる、という感じです
ahkファイルをサスペンドすると他のホットキーまで使えなくなるのでトグル切替にしたいです
2023/02/10(金) 09:19:40.77ID:Fan/G82J0
>>31
US→JPは+2::Send, "でしたね
基本JP配列としてULE4JISを試しましたがエクスプローラでは使えないのでAHKでなんとかしたいと思った次第です
2023/02/10(金) 10:30:41.84ID:MnsaaDmR0
>>31
>F13 & Spaceを一度押すとUS→JP(例えば+2::Send, @ が有効)になりもう一度F13 & Spaceで無効になる
素人が思いつくのは、フラグをオン/オフして #IF を使う
2023/02/10(金) 11:00:12.96ID:8wvoSwvS0
ahkでやるのは本末転倒じゃないの?
Windowsなら普通は言語からキーボードレイアウトを追加して
Win+Spaceで切り替えるのが普通だと思うけど
2023/02/10(金) 21:31:55.47ID:KOfPDD7w0
押したキーがahkにとってどういう名称のキーとして認識されているか簡潔に確認するにはどうしたらいいんでしょうか
a~zなどは調べるまでもないですが、例えばゲームパッドのそれぞれのボタンなどはどう認識されているかわかりません
CUIやGUI上に押すたびに記録されて、できればそれをコピペして手早く取り出せるような方法がいいです
2023/02/11(土) 17:28:52.84ID:vStIZvs50
>ULE4JISを試しましたがエクスプローラでは使えないので
タスクスケジューラでログオン時に最上位特権実行させればイケるでしょ
2023/02/12(日) 21:38:52.12ID:wAIifo6Q0
>>35
1.AHK(スクリプト)のウィンドウを表示して
2.メニューからView-Key history and scipt info
3.調べたいキーを押す
4.メニューからView-Key history and scipt info
2023/02/13(月) 00:26:02.67ID:IBQcR0l60
努力だ。勉強だ。それが天才だ
2023/02/13(月) 22:10:18.25ID:vprSE+NJ0
-y(▼。▼メ)Ξ(▼。▼メ)/⌒-~ポイッ!!
2023/02/14(火) 02:14:30.19ID:k+AHi9uy0
昨日から使い始めたけどどうやっても使えない所が3つあった
というのはUSBドングル刺して使うリモコンのメディアキーのVolume_Up Volume_Down Volume_Mute
この3つが何も起こらないので検索したりキーリスト間違ってないか確かめたが何も変わらない

スキャンコード表示して調べたら原因はスキャンコードを使ってないことと判明
どうやらキーボードのメディアキーでなくリモコンなのでキーを吐いてなかった
なんとかしたいがこの3つはやってることは結果的に同じなのだろうがキー吐いてないので無理か
既出の[全角/半角][ひらがな/カタカナ][キャプスロック]のキー押しっぱなし問題にも参った

実はこれ使うまではKeySwapでキー変更して数年使ってきたのだがUSBリモコンのメディアキーを変更したくてこのソフト1本で行こうとしてたのだが
キー押しっぱなし問題の解決がレジストリのキー変更ソフトにまた頼らざるを得ないとは思わなんだ
まぁこのソフトは上の欠点以外なら何でも出来ると言ってもいい汎用性から使うことにしたがリモコンがキー吐かないのは想定外だった
2023/02/14(火) 09:33:39.56ID:Q1zAT7Yx0
このサイトの最初にあるスクリプトでHIDデバイスとして認識される?https://www.autohotkey.com/board/topic/36304-hidextended-input-devices-ms-natural-keyboard-4000-etc/

キャプチャしてリモコンキー押して何か表示される?
もし表示されるならDllCallゴリゴリしまくれば解決できるのかもしれない
(自分にはそのスキル皆無だけど)

ちな上のスクリプトはautohotkeyU32.exeじゃないと動かないと思う

自分はオレ環でどうしてもThumbRemapが使えなかったので前述のGetRawInputDeviceメソッドでタッチ検出してる
2023/02/14(火) 12:37:18.09ID:310xcsUI0
>>40
キーとして吐き出さないようなのが微妙ですが、AHKだとこちらおすすめ
・(3) AutoHotInterception (AHI): Multi-Keyboard / Multi-Mouse support for AHK. Per-device blocking! - AutoHotkey Community
 https://www.autohotkey.com/boards/viewtopic.php?t=45307

上記のAHKサポート終わったので後継がC# GUIで開発されてます。
・Snoothy/UCR: Universal Control Remapper [Alpha]
 https://github.com/Snoothy/UCR
4340
垢版 |
2023/02/14(火) 16:13:19.48ID:QNgIy5BT0
>>41 >>42
紹介されたソフトを試したが使い方が難しく翻訳などして使い方を調べたが正常に使うことは残念ながら出来なかったけど
色々ありがとう

結局KeySwapは削除しキー押しっぱなし問題でF13等に割り振るのにブログで紹介されてるChange Keyでキー変更をKeySwapと同じにし
目的のリモコンの[ブラウザ ホーム] → [スペース] [ブラウザ 戻る] → [ホーム]の2つを変更 [音量 大][音量 小][消音]はキー吐きなしで不可ということに
キー押しっぱなし問題でChange Key使うことになったのでAutoHotkeyで全部やろうとキー変更で時間かけて調べた10個程度の設定は削除したので
今のところAutoHotkeyの設定はリモコン用2つの設定だけになってしまったがキーボードやリモコンを使い易くする設定を追加しないとソフトが勿体ないと言えるほど
色々出来るのでこれからやろうと思う

ちなみにリモコンはG20S PRO https://androidpctv.com/g20s-pro-bt-review/
※メディア・数字・BS・ホーム・方向・ページUDは通常キー同様なのでキー変更可能
2023/02/14(火) 21:33:20.73ID:xlp6NYZy0
>>43
41のやつは使い方難しくないよ。
最初のスクリプトを全部コピペで新しいahkファイル作ってAutohotkeyU32.exeに投げるだけ。
GUIでキャプチャしておいてリモコンの消音とか押してみてGUIにログが流れてきたら一筋の光明あり。
といっても、じゃあその先のスクリプト組もうと思っても恐ろしく難しいんよね
2023/02/14(火) 22:46:48.70ID:QNgIy5BT0
>>44
ありがと それ古い方AutoHotkey_1.1.36.02で投げたら反応あった ※元々実行ファイルが2.0.2になかったね

[音量 大] HND 131153 HID Size 3 Count 1 Ptr 49612784 Input 03E900
[音量 小] HND 131153 HID Size 3 Count 1 Ptr 49612784 Input 03EA00
[消音] HND 131153 HID Size 3 Count 1 Ptr 49612784 Input 03E200
2.0.2にこれらの数値をいくつか入れたけど反応無しだったけど まぁ適当に入れても使えるわけないか

上の数値の正しい書式が有ってAutoHotkeyで使えるかどうかは不明だけどダメ元で調べてみる

あとこのソフトは古くからあるので解説サイトとかブログの設定入れても新しい2.0.2では殆どエラー吐いて使えなかった
設定の書式が短くなったり変わったらしく使えるように短くして2.0.2用にするのが少し面倒だったけど古い方がそのまま使えていいのかもしれないね
ネット情報の殆どが1.1用?ばかりだったので
2023/02/15(水) 01:31:27.77ID:8QbFNS1a0
VSCode使うとAHKで自前で書いた関数の補完や
関数前に書いたJavaDoc的な説明コメントをヒントとして表示してくれたりするの?
2023/02/15(水) 02:44:41.74ID:dV0ccaqa0
>>45
inputがちゃんと一意になってるね
自分も詳しいわけじゃないけど
DLLCallのGetRawInputDeviceInfoでメモリアドレスに色々な情報を読み出してて
その一意の番号もメモリアドレスのどっかに展開されてて、その場所を特定してうまく取り出すことができればAHK側で好きなように処理できる。
ただ引数やらデータの型やらメモリに呼び出すまでのお作法やら、素人が一日や二日で紐解けるようなレベルじゃない。
でも、根気よくスクリプトとにらめっこして試行錯誤繰り返していればいつか目的達成できると思う
2023/02/16(木) 21:19:31.80ID:wBGsdM8x0
>>46
v2ならAutoHotkey v2 Language Supportで
2023/02/24(金) 22:20:53.40ID:lyZ5EZMW0
#Persistentで常駐させているスクリプトがあるんですが、
あるホットキーによるスクリプト実行時のみ一時的に無効にして、スクリプト終了時に再度有効化する方法ってありますか?
常駐スクリプトはアクティブウィンドウが切り替わり時に自動実行するもので、おそらくよく使われているものかと思います。
ウィンドウを短時間にいくつか切り替えたり、クリックメニューを出したりさせているせいか、常駐スクリプトの割り込みが多数発生して
あるスクリプトでは、WinWaitActiveが働かず時間切れになります。
割り込みを禁止しようとしてもコールバック関数自体のスレッド優先度が高過ぎて難しいような気がします。
何か方法はありますでしょうか?

myFunc := RegisterCallback("WinActivateHandler")
myHook := DllCall("SetWinEventHook"
, "UInt", 0x00000003 ; eventMin : EVENT_SYSTEM_FOREGROUND
, "UInt", 0x00000003 ; eventMax : EVENT_SYSTEM_FOREGROUND
, "UInt", 0 ; hModule : self
, "UInt", myFunc ; hWinEventProc :
, "UInt", 0 ; idProcess : All process
, "UInt", 0 ; idThread : All threads
, "UInt", 0x0003 ; dwFlags : WINEVENT_SKIPOWNTHREAD | WINEVENT_SKIPOWNPROCESS
, "UInt")

WinActivateHandler(hWinEventHook, event, hwnd, idObject, idChild, thread, time) {
}
2023/02/25(土) 00:04:25.73ID:awlsmlYs0
あるホットキーの初段で、常駐させているスクリプトをサスペンドして
終了時に復帰させればいいだけなんじゃ
2023/02/25(土) 00:19:10.21ID:dPIaFFwM0
>>49
hookはこちらを

[Class] WinHook - AutoHotkey Community
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=59149
2023/02/25(土) 17:27:22.34ID:IlkaxhTt0
Suspendは試しましたが割り込みますね
Suspendはホットキーの無効化だった気がするので常駐スクリプトには効かないんでしょうか
WinHookは...本文の説明にもある通り難解そうですね やはり単純には行かないのですかね
2023/02/25(土) 18:34:27.22ID:FZpliw6N0
>>52
スマートな方法かどうかは知らないけど
あるホットキーで変数フラグ立ててホットキー処理の最後でフラグ倒して
常駐スクリプトの各コマンドにフラグ倒れてる場合のみ実行の条件つけるとかは?
上手く行くかはまったく分からない
2023/02/25(土) 18:38:38.42ID:FZpliw6N0
常駐スクリプト側にもフラグ付けて特定のホットキーと排他実行するようにしたほうがいいのかな?
2023/02/25(土) 18:55:19.57ID:H2bxHiEl0
>>49

いくつか方法が思いつきますが…
2023/02/27(月) 01:27:48.69ID:pfZK3vd10
>>52
サンプルもドキュメントもきれいに整備されてて簡単
モニタースクリプトもあるし
unhookメソッドもご覧の通り

Method: UnHook(hWinEventHook)
Method: UnHookAll()
2023/03/07(火) 12:30:05.34ID:YBcczSzi0
マウスの横のボタンにctrlを割り当ててるんですが、
ダブルクリックみたいに2回押した時にshiftとして動作させたいみたいなのってどうやったらできますか?
2023/03/07(火) 14:15:05.56ID:iXHDEhaA0
KeyWaitで二回目の押下判定してErrorLevelで分岐
2023/03/08(水) 01:52:07.69ID:iQbD6ijV0
#UseHook On
}
sc07B::
key := "sc07B"
KeyWait, %key%, T0.3
If(ErrorLevel){ ;長押しした場合
KeyWait, %key%
return
}
KeyWait, %key%, D, T0.2
If(!ErrorLevel){ ;2度押しした場合
Send {sc07B down} ;
Send {shift down} ;
KeyWait, %key%
Send {shift up} ;
return
}else{ ;短押しした場合
KeyWait, %key%
return
}
#UseHook Off
2023/03/08(水) 02:05:13.60ID:iQbD6ijV0
教えてもらったErrorLevelでググったところこんな感じのスクリプトがあったので、
改変してやってみたらある程度思ったような動作になりました

ただ、ctrlキーは特殊なようで起動キーをctrlにした場合は動作しないようです

現在マウスキーにctrlを当ててるので代わりに上記の無変換を割り当てたらできないかと思ったんですが、
キーボードの無変換で行った時はできるのにマウスからやるとなぜか動かない
無変換キー単押しは機能するので押せてないわけでもないようなんですが

むずいっす
2023/03/08(水) 02:09:01.10ID:iQbD6ijV0
マウスのボタン押下⇒キーボードの無変換押下と2度押し動作効きます
マウスの二度押しだけが認識されないようですね
スクリプトに何か問題あるでしょうか
2023/03/13(月) 08:13:23.71ID:k3yB0gZ70
stdin/outが使えないのがたまに不便だな
シェルスクリプト的に使えるexeも欲しい
2023/03/13(月) 11:09:57.19ID:46CMp74p0
>>61
マウスに割り当ててる方の無変換が、ボタンを押しっぱなしにしててもすぐに離されてるとか
2023/03/13(月) 22:02:47.95ID:ugPvzASQ0
アクティブでないサブウィンドウを直接閉じる方法はあるでしょうか?
例えば秀丸エディタの検索ウィンドウを消去したい時、秀丸がアクティブなら

winclose, ahk_class #32770

だけで消せるのですが秀丸がアクティブでないなら一度秀丸をアクティブにしてから

winclose, ahk_class #32770

を実行しないと検索ウィンドウが消えません。
これを秀丸がアクティブでない状態で消す方法はないでしょうか?
2023/03/15(水) 07:27:39.83ID:zT06UOBQ0
>>64
WinCloseもWinKillもアクティブなウィンドウか、一番前面のウィンドウが対象みたいなので
非アクティブウィンドウにキーを送ってみたらどうでしょう
^+F12::
DetectHiddenWindows, On ;ウィンドウ探索時に非表示になっているウィンドウを検出対象にする
ControlSend, , {Esc}, ahk_class #32770 ahk_exe Hidemaru.exe ;Escで秀丸の検索ウィンドウは消える
Return
2023/03/15(水) 16:18:33.18ID:NvftbLsi0
#32770はダイアログ全般のクラス名だから他のソフトのものに誤爆してるんじゃないかな

WinClose, ahk_class #32770 [秀丸エディタプロセス名での指定]
でいけない?

とりあえずサクラエディタでは以下で出来た
WinClose, ahk_class #32770 ahk_exe sakura.exe
6764
垢版 |
2023/03/15(水) 17:42:05.68ID:QezACQN30
>>65
ありがとうございます、それでいけました

>>66
DetectHiddenWindows, On を付けないと駄目でした
2023/03/15(水) 19:39:45.78ID:EQI1O5H/0
>>62
FileOpen()で標準ストリーム開けるがそういう話でなく?
2023/03/20(月) 15:15:54.17ID:oGUj5hdD0
ついに消えてしまった。。
https://sites.google.com/site/autohotkeyjp/
2023/03/20(月) 15:49:51.72ID:bV1DpxeR0
>>69
Internet Archive で見られるし AutoHotkey Wiki あるし、そもそも AutoHotkey.chm がある
そのサイトが無くなると困るような独自の情報でもあるんか?
2023/03/20(月) 15:53:43.16ID:bV1DpxeR0
あーただの報告だったのか…
個人的にはいつも AutoHotkey Wiki 使ってるからそこ無くなっても特に困ることはないな
2023/03/20(月) 16:08:10.80ID:QZz0TH140
お前が困らなくても個人的にはいつもautohotkey.jp使ってた人間は困るだろ
なんでこう上から目線の言わなくていいことをいちいち言うのかねえ…
2023/03/20(月) 17:03:43.58ID:4AXSz/VF0
>>72
Internet Archiveで
見れば良いってのは建設的な意見じゃないの?
上からとか目線とかそういうお気持ち表明の方にウンザリするわ
2023/03/20(月) 18:40:03.57ID:FujOoXlw0
wikiがスクリプト仕様とかコマンドの説明とかほぼ一緒(というか丸移植だと思う)で更新が長く続いてた分上位互換だった気がするけど
なんかjpの独自色あったっけ
2023/03/20(月) 19:32:46.08ID:rsciAXcp0
そんなことより公式がcloudflareの認証させられるようになってうざい
2023/03/20(月) 21:27:56.47ID:xHD0/Xk+0
認証は別にいいんだけど、getでやるのが嫌だわ
2023/03/21(火) 00:43:18.00ID:5+/nNgbn0
>>73
ウンザリするとか十分すぎるお気持ち表明ですけど?
他人のにはウンザリするけど自分のお気持ちは表明していくスタイルにウンザリだわw
2023/03/21(火) 01:13:28.05ID:FQhNi63k0
>>72>>77もお気持ち表明以外の中身がないのが趣深い
2023/03/21(火) 01:21:25.29ID:5+/nNgbn0
>>73>>78も全く同様に中身が無い
他人のレスには中身がないが自分のレスには中身があると思っているようなのがこちらも香り高い
2023/03/21(火) 02:14:33.72ID:/Hc7Cqwn0
しょうもな
2023/03/21(火) 20:36:33.82ID:zcT6irHi0
aを押しながらbを押した時のラベルを作りたいのですが
Shift,Alt,Ctrlなどの修飾キー以外で指定する場合どうすればよいでしょうか?
2023/03/21(火) 20:42:02.42ID:37F9JcRS0
公式なり日本語wikiなりのホットキーセクションを読んでくださいよ
2023/03/21(火) 20:47:26.92ID:zcT6irHi0
>>82
&で対応と書いてありましたね
ありがとうございました。
84名無しさん@お腹いっぱい。
垢版 |
2023/03/25(土) 20:21:01.04ID:iMfRZkAd0
教えてください。
shift単押しでenterとなるようにしたいのですがどのようにコードを書けば良いのでしょうか?
2023/03/26(日) 00:44:38.48ID:Ik2oaVkT0
>>84
ChgKey.exeで設定した方がいい
2023/03/26(日) 01:55:32.95ID:NDL62s0r0
正しく機能したところで誤爆が恐ろしいことになるわ
2023/03/26(日) 09:21:45.12ID:0eKdsB6l0
オレは左手で操作しやすいように「無変換」をenterに、「半角/全角」をbackspaceに代えてるよ…なのでIMEオンは「変換」でオフは「カタカナ/ひらがな」という変態構成だけど
誤爆に関しては影響がほぼ無いキーに割り当ててるから無問題
2023/03/26(日) 11:12:13.57ID:BJKwEJiq0
>>86
それが良いと言ってる人に誤爆とかなくない?
2023/03/26(日) 15:38:38.80ID:qBPReUzL0
>>87
そりゃそうだ
どっちも修飾キーじゃないし
2023/03/27(月) 08:55:26.10ID:YRZJoVwd0
俺は右shiftをバックスペースにしてる
かなり使いやすいよ
AHKじゃなくてsharpkeysだからスレチだが
2023/03/27(月) 11:36:25.75ID:hnEBD7aq0
>>90
確かに、自分も右shiftや矢印キーほとんどつかってなかったからいっぺん割り当ててみようかな
2023/03/27(月) 12:13:00.11ID:Ftk2hjGQ0
右シフトとバックスペースの位置ってほとんど変わらないけど意味ある?
右側にしかないキーを左に持ってくるんなら分かるけども
2023/03/27(月) 12:56:26.55ID:Ws7C1MTd0
!?
2023/03/27(月) 14:13:00.68ID:TFnpXbPf0
意味があるかないかは本人が決めることやなあ
他人になくても本人に意味があればそれは意味があるってことになるわなあ
人生もそんなもんちゃう?
2023/03/27(月) 15:04:31.40ID:fUu+sidj0
右手をホームポジションに置いて、小指でBSを押そうとすると右手を思いっきり開きますが、小指で右シフトを押そうとすると右手をわずかに時計回転させるだけですね。よって、右シフトにBSを割り振るのもありだと思います。
2023/03/27(月) 15:07:43.91ID:qBHkYj2L0
>>95
普通のキー配列だとenterを挟んで上がBS、下がShiftだから右手を開くことになるのは同じでは
2023/04/08(土) 17:19:05.18ID:aTLZLycI0
ホットストリングなんですが、IME ONだとなぜか一つ前の文字が消えてしまいます。なぜなんでしょうか?IME OFFだと問題いです。

#if (IME_GET() = 1)
:*?:/kakko::「」
#if
2023/04/08(土) 17:47:33.15ID:2fC324fB0
wikiに書いてある
2023/04/11(火) 12:10:24.07ID:NzPuVBBw0
>>97
解決しました
:*B0?:/kakko::「」{left 2}{BS 4}{Enter}{left 1}
2023/04/12(水) 12:04:08.46ID:lS0p+MWJ0
ホームポジション、キーはほぼ中央だけど、手の平全体は下だからSHIFTの方が近そう。
BS、ひらがな(カタカナ)キーにしても良いかも。
2023/04/13(木) 16:18:51.31ID:4t8tBr5i0
>>27です
それに特化したソフトがあったので乗り換えました
ほんとにSHIFT2回押ししか使わないので...
2023/04/15(土) 16:50:40.73ID:YKWVA/r20
流行りのAIに色々聞いてみたけど
知らない関数だ・・・とか知らない戻り値だ・・・みたいな答えがかなり返ってくるからあんまり役には立たないな
2023/04/16(日) 00:02:26.24ID:RDWO+jse0
そうだね
AHKはあんまり役に立たない
残念
2023/04/16(日) 04:28:49.69ID:XglWpEn70
ちゃんとv1だのv2だのバージョン指定しないとダメ
105名無しさん@お腹いっぱい。
垢版 |
2023/04/17(月) 10:20:17.56ID:0ZruvkIP0
ERRORLEVEL := "test"
RegExMatch(ERRORLEVEL, ".+", $)
MsgBox, %$%

これなんで?
2023/04/17(月) 13:52:30.80ID:uJQi1Dl+0
>>105
ErrorLevel - Definition & Usage | AutoHotkey
https://www.autohotkey.com/docs/v1/misc/ErrorLevel.htm
2023/04/17(月) 20:53:41.78ID:0ZruvkIP0
for i, needle in ["t","e","s","^.",".$","es","st"] {
if RegExMatch(ERRORLEVEL := "test", needle, $)
a .= needle " / " $ "`n"
}
MsgBox, %a%

さっぱりわからん
2023/04/17(月) 21:03:17.18ID:uJQi1Dl+0
何がやりたいのか、何がわからんのか、さっぱりわからん。

ErrLvl := "test"
RegExMatch(ErrLvl, ".+", $)
MsgBox % $
2023/04/17(月) 21:26:34.87ID:HYhfDeyl0
数値型の組込み変数でしょ
2023/04/17(月) 21:52:28.22ID:HYhfDeyl0
あぁ、他の型の場合もあるのか
2023/04/17(月) 22:36:10.92ID:HYhfDeyl0
検索対象の変数(ERRORLEVEL)からマッチ位置を憶え、各位置からOutputVar側にコピーするより前に、ERRORLEVEL内容を書き換えてそう
ERRORLEVELは0になるので
t e s t \0
0 \0  s t \0
2023/04/17(月) 22:41:56.04ID:bN+BDAgh0
ID:0ZruvkIP0
は、期待している値と実現したい内容を明確に書かないとダメよ
コードだけで分からないって言われても、こっちが分からんわって
なるのが普通でしょ
2023/04/20(木) 03:00:06.30ID:w8okL8J50
code1.ahk
code2.ahk
code3.ahk
...
というファイルがありどれも関数foo()を定義している

そのファイルを順番に動的にロードして関数foo()を呼び出して廃棄
exec() {
ret := []
for k,v in ["1", "2", "3"]
{
#include "code%v%.ahk"
ret.push(foo())
#uninclude "code%v%.ahk"
}
return ret
}

すべて同一プロセスで行う

ということがやりたいんだけど↑のようなコードって実現できる?
2023/04/20(木) 14:21:46.80ID:cFx/MHGt0
v1/2を問わず#ディレクティブって条件付き実行ってできないから、
そういう使い方は無理なんじゃないかな?
2023/04/20(木) 14:48:24.82ID:en+46tKw0
そもそも#unincludeってコマンドある?
2023/04/20(木) 14:57:12.72ID:cFx/MHGt0
それもない。
もしかしたらライブラリを作ればなんとかなるかも知れんけど調べてない。
2023/04/20(木) 16:45:19.42ID:k3CogS+T0
動的includeあれば便利そうだよね常駐から使用頻度低い記述を削減したい
2023/04/20(木) 17:01:52.20ID:CZ21fJcG0
>>113

これをやる意図は?
2023/04/23(日) 08:41:54.84ID:qhrW4uB00
SRWare Iron portable上で動作しません。何故でしょうか。
chromeやエクスプローラーなどではちゃんと動作しますが、Iron上では無効化されるんです
2023/04/23(日) 10:11:13.49ID:bEEY46BE0
V1/2 なのかどんなスクリプトなんか知らんが、V2 の Window Spy で見てみ。
そのスクリプトが SRWare Iron のクラス名とかに対応してないんちゃうか?
2023/04/23(日) 14:14:38.45ID:4t6f0QdC0
>>119
https://pastebin.com/raw/bWipuNmt
Q6:Windows Vista(以降)で管理者権限のウィンドウ操作やSendPlayが効かないんだけど?
2023/04/26(水) 10:09:00.82ID:Iah7Z2jh
テレビチューナーアプリのPIXELA StationTVXとXitでAutoHotkeyが動作しないのですが対策方法分かる方いましたら教えてください
2023/04/26(水) 13:28:56.16ID:wRF6CHBz0
エスパー募集中!
124名無しさん@お腹いっぱい。
垢版 |
2023/04/26(水) 14:45:58.26ID:fzHyTn/Y0
超初心者の超初歩的な質問です。
V2での次のスクリプトと同じ動作をするV1のスクリプトは
どのように書けば良いのでしょう。

x := 1
y := 2
var := x+y

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(水) 15:08:10.77ID:rPAoeGO10
>>124
MsgBoxの後に、スペース パーセント スペース
126名無しさん@お腹いっぱい。
垢版 |
2023/04/26(水) 15:48:57.03ID:fzHyTn/Y0
MsgBox % x+y とすると 3が表示されますが、
x+y =3と表示したいのです。

MsgBox x+y = % x+y ではエラーになります。
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
不満点の全てが意味不明で笑う
2023/07/09(日) 15:15:57.21ID:O8ddG7Yq0
v2になって過去の変な部分はばっさり捨ててやっとまともな言語っぽくなったのに、
A_Indexだけ最初期のままなんだよな
loop 3
みたいな文法は捨てるべき
2023/07/09(日) 16:47:00.83ID:yVBZYIBZ0
なんで頑ななまでに A_Index を使いたがるんだろう。
嫌なら使わなきゃいいだけやろ。
Loop [CONST] だと勘違いしてないよな?
Loop Until だってあるし While だってあるし、Break/Return で抜けられるし。
2023/07/09(日) 16:51:54.85ID:xe8gSeL50
>>223


自分で使えば?
2023/07/09(日) 16:52:50.98ID:sA1yQ4MM0
よりモダンで洗練された制御構文欲しいってだけで粘着されてて笑う
2023/07/09(日) 16:58:05.87ID:O8ddG7Yq0
じゃあa[]が用意されていて、インデックスの1から3までを表示する処理をA_Indexを使わずに書いてみて
2023/07/09(日) 17:00:39.78ID:xe8gSeL50
>>231


他のプログラミング言語がダメだ
って主張?
2023/07/09(日) 21:25:56.77ID:yVBZYIBZ0
なぁ、もしかしてプログラミング初心者?それともなんかの課題?
/* 5ch の仕様で SPC が飛ぶかもしれん */
a := ["A", "B", "C", "D"]
i := 1
; Loop ver.
Loop 3
{
buf .= "a[" i "] = " a[i] "`n"
i++
}
; Loop Until ver.
Loop
{
buf .= "a[" i "] = " a[i] "`n"
i++
} Until (i > 3)
; While ver.
While (i < 4)
{
buf .= "a[" i "] = " a[i] "`n"
i++
}
MsgBox buf
2023/07/09(日) 21:43:59.44ID:O8ddG7Yq0
そういう風にしか書けないよねという話
i++とか i > 3とか書きたくなければ A_Index を使うしかない

loop i in range(3) {
みたいに書けるのが理想

後方互換性捨ててるんだから、どう見ても無くしたい部分だろうに、
なんで残したんだろ
2023/07/09(日) 22:57:31.41ID:wL8nS9tI0
素人ですんません
Forループってのもあるけど、これ使っちゃだめですか?
2023/07/09(日) 23:04:32.69ID:xe8gSeL50
>>234


それとA_indexの違いは?
2023/07/09(日) 23:12:13.79ID:O8ddG7Yq0
なんか一人狂信者がいて引くw

どう取り繕ってもahkの文法はぐちゃぐちゃなの
で、v2でそういうのは綺麗にして今後も使っていける感じに直したの
でもなんかよく判らない理由で変な癖が残ってて、なんだかなあという話
2023/07/09(日) 23:13:21.61ID:xe8gSeL50
バカのゴミ書き込みか…

バカは消えろ
2023/07/09(日) 23:15:21.62ID:O8ddG7Yq0
あ、もしかして、いまだにv1使ってるとか?
まさかね
2023/07/09(日) 23:16:08.05ID:xe8gSeL50
お前はもういいから
消えろ

バカが…
2023/07/09(日) 23:21:07.15ID:yVBZYIBZ0
>>234
ここで管を巻いてないで、作者に次期バージョンにおける仕様追加をお願いしてみれば?

>>235
そらかまへんけど、最後まで列挙するのでなければ結局終了判定を入れんと
アカンから ID:O8ddG7Yq0 のお気にめさんやろ。もしくは事前にオブジェクトを
切り出してコピるとかせんと。ていうかこのバターンでの For はワシも好かんw
2023/07/09(日) 23:22:31.66ID:O8ddG7Yq0
あーあ、思考停止しちゃった

まあ、v1の人が A_index を気にしないのは判る
そんなの問題にならないレベルで酷いから
不明確さや不統一さを無くしたv2の中に残ってるのはすごい違和感がある
この感覚はv2を知らない人には理解できないだろう
2023/07/09(日) 23:23:10.40ID:xe8gSeL50
>>241
バカはほっときましょう

ゴミ論争は終了で。
2023/07/09(日) 23:26:14.48ID:O8ddG7Yq0
なんでそこまで狂信的なのにv2知らないの?
v1の信者なの?
2023/07/10(月) 05:02:27.76ID:D1L7kfGR0
ID:O8ddG7Yq0 = ID:xe8gSeL50
いつもの荒らし
2023/07/10(月) 11:50:39.33ID:fPPv+PtL0
確認したら自分の使用バージョンが
Version 1.1.32.00
だった
2023/07/11(火) 19:59:29.75ID:ClHxo8ZG0
>>234
理想とユーザへの配慮の落とし所としては今の仕様も悪くないと思うけど
そのrangeみたいなのがいいなら
f::
{
 Range(m := 0) => (c := 0, (&n) => (c++, n := c, m = 0 || c <= m))
 for i in Range(3)
 {
  for j in Range(3)
  {
   MsgBox "i = " i ", j = " j
  }
 }
}
こういうのを作っておくとか
2023/07/11(火) 21:34:14.53ID:trz2tr7d0
>>246
俺もまだ 1.1.33.02 だわw
2023/07/11(火) 22:48:38.33ID:dnBDALt50
looxarmさん(最初に翻訳してくれた人)だけ?が華麗にA_Indexでの例文を見せてくれてたので
ほえーーてなりました。以来、A_indexのとりこです(*´Д`)
2023/07/11(火) 23:15:09.49ID:FHg1bwQG0
A_シリーズは他にも死ぬほどあって、その中の一つに過ぎないから、
何も変に思わないんだろうな
でもループなんて基礎的な制御構造がちゃんと書けないのは、言語として両手落ち
2023/07/12(水) 02:22:51.65ID:zr6kd7wl0
言語の大幅な仕様変更は鬼門で、理想を追求しすぎて同じ言語だと思ってもらえなかったり実装が遅れたりして
他の良さげなものへユーザが離れていくきっかけになりやすいから、v2みたいにAHKっぽさを意識しながら
どうしようもないところ以外まず仕様を整えるだけにするのはありだと思う
それでループなんだけど、最近の流行りだとループや条件分岐とかを制御文として使うのはバグの元だって
昔のgotoみたいに嫌われだしてるから、将来的には残しても他推奨含みで、今はあまり手を付けてないのかも
AHKの開発まで追っかけてないから妄想だけど
2023/07/12(水) 05:53:04.40ID:5dufTTJG0
1回書いたことは2度書かなくていいよ
2023/07/13(木) 04:07:33.86ID:cFQwAnDn0
日本語化めっちゃ進んでるな
ありがたい
https://ahkscript.github.io/ja/docs/v2/index.htm
2023/07/13(木) 08:01:18.26ID:KdnNDOHT0
変数名に日本語使えるって知ってた?
2023/07/13(木) 14:05:56.55ID:hKdpthgD0
>>250
OSSなんだからフォークして自分でやれよ
2023/07/14(金) 20:25:02.95ID:ABwBca5n0
win-shift-sで領域指定してキャプチャーする操作の、
領域はいつも固定なので自動化したいけど、そんなことできる?
2023/07/14(金) 20:31:50.37ID:+lgJAusH0
Gdip使えば?
2023/07/14(金) 20:36:03.75ID:ABwBca5n0
うーん、苦しそうだ

オールahkでやらんでも、何かのコマンドとかpowershellの呼び出しでもいいんだけど
ウィンドウ全体とか、ファイルにして保存とか、今ひとつ思い通りのが無い
ウィンドウの一部だけをクリップボードに入れたい
2023/07/14(金) 20:48:11.97ID:XHPFxv5S0
>>256
Snip & Sketch(Win10) か Snipping Tool(Win11) でってこと?
やってやれんことはないやろうけど、領域固定なら別の方法でやる方が
楽にコーディグできそうではある。
2023/07/14(金) 21:01:06.56ID:+lgJAusH0
>>258
Gdip使うまでもなかった こいつ使えば望みが叶うよ
https://www.autohotkey.com/board/topic/121619-screencaptureahk-broken-capturescreen-function-win-81-x64/
2023/07/14(金) 21:12:04.91ID:ABwBca5n0
大量のDLLを呼び出すラッパーになるので、どう書いてもそうなるよな
powershellでも同じかもしれない
2023/07/14(金) 22:02:21.02ID:+lgJAusH0
Gdip使うならGdip_BitmapFromScreenとGdip_SetBitmapToClipboard使えばいいよ
2023/07/14(金) 22:27:15.56ID:TZl8HbDe0
>>256
自分は IrfanView と連携してやってる。
領域指定は IrfanView のキャプチャ設定で。呼び出しは AHK で。
2023/07/14(金) 22:56:03.34ID:ABwBca5n0
Add-Type -AssemblyName System.Windows.Forms,System.Drawing
$rect=[Drawing.Rectangle]::FromLTRB(0,0,500,500)
$bmp=New-Object System.Drawing.Bitmap $rect.width,$rect.height
([System.Drawing.Graphics]::FromImage($bmp)).CopyFromscreen($rect.left,$rect.top,0,0,$bmp.size)
[Windows.Forms.Clipboard]::SetImage($bmp)
$bmp.Dispose()

こんな感じのps1でできた
2023/07/15(土) 00:05:03.24ID:KHLZr64A0
V1ですがメニューの幅をどうてきにへんこうできないでしょうか。長いメニュー名を表示した後みじかくすると幅が長いまんまです。
2023/07/15(土) 09:09:51.03ID:Qa0kUJY20
psのウィンドウは-WindowStyle Hiddenを指定しても一瞬表示されて、
それがキャプチャーされてしまっては意味が無いので、JScript等からさらに呼び出す必要がある
https://pmp-style.hatena
blog.com/entry/PowerShell_Hidden
ここのを丸パクリでok
267265
垢版 |
2023/07/15(土) 10:01:30.99ID:KHLZr64A0
結局都度メニューを作り直すことで対応しました。

Loop, 3
MenuName .= "(๑╹ᆺ╹)"
Loop, 3 {
(A_Index > 1 && MenuName := RegExReplace(MenuName, "^.{6}"))
Menu, ContextMenu, Add
Menu, ContextMenu, Delete
Menu, ContextMenu, Add, %MenuName%, A
Menu, ContextMenu, Show
}

A:
Return
2023/07/15(土) 11:59:00.56ID:VaoelrHe0
マウスボタンを押し続け、指定時間が経過したらボタンを離すまでキー連打というのをやりたいです。
方法があれば教えてください。どうぞよろしくお願いします。
2023/07/15(土) 18:29:07.20ID:HqHAS0Is0
#Requires AutoHotkey v2.0

~LButton:: {
time := 1000 ; マウスボタンを押し続ける時間 milliseconds
key := "a" ; 連打するキー
interval := 40 ; 連打間隔 milliseconds

this_hotkey := LTrim(ThisHotkey, "~")
while GetKeyState(this_hotkey, "P") {
if (A_TimeSinceThisHotkey >= time) {
;ToolTip key " mashing"
send key
sleep interval
}
else {
;ToolTip A_Index
sleep 100
}
}
}
;~LButton up:: ToolTip
2023/07/15(土) 21:48:33.57ID:Qa0kUJY20
ホットキー1つにアプリ1つ対応させてタスクスイッチさせてたら、
あっという間にキーが無くなった
大して重要でもないアプリにアクセスのいいキーを割いてしまう

だから、使用頻度の低いのは全部menuにまとめた
起動して1ストロークで切り替わるので快適

立ち上がってなかったら立ち上げもやらせるのでもうランチャーなんだけど、
タスク切り替えできるランチャーってあるのかな
2023/07/15(土) 22:06:56.30ID:vV8ds1jY0
>>270
CLaunchは多重起動させずにアクティブにする設定があるから
タスク切り替えできるかな
あとは旧CraftLaunchとか
272名無しさん@お腹いっぱい。
垢版 |
2023/07/15(土) 22:52:53.90ID:x3WO43km0
>>270
menuって何?
アプリ?
2023/07/15(土) 23:37:49.10ID:F5l6cpD30
Gui Object - Methods & Properties | AutoHotkey v2
https://www.autohotkey.com/docs/v2/lib/Gui.htm
Menu/MenuBar Object - Methods & Properties | AutoHotkey v2
https://www.autohotkey.com/docs/v2/lib/Menu.htm
2023/07/16(日) 12:50:53.11ID:BMcU1kH50
>>269
どうもありがとうございます!
v1を使ってるのでコンバートしてみます!
275名無しさん@お腹いっぱい。
垢版 |
2023/07/16(日) 13:34:32.03ID:l4qSDuiB0
>>273
ありがとう

うまく作ったら便利そうですね。
2023/07/16(日) 13:42:03.94ID:XCq/PQra0
msgbox出して入力させても同じようなことができるけど、enter押さなくていいから軽快なんだよな

menuで選択せずにenterだけ押して終了した時のデフォルトの動作を設定したいけど、
何もせずに終わってるようにしか見えない
2023/07/16(日) 14:16:00.20ID:Km3KtOC30
>>275
ゴリゴリに凝ってGUIなメニューも組めるけれど、結構面倒くさいかもw
ワシは簡単にデフォルトのAHKのメニューにアイテムを追加して簡単な
設定ダアログを表示させているだけ。

https://i.imgur.com/3AbAvve.png

>>276
OnEvent の "Close" にコールバックを登録している?
2023/07/16(日) 16:07:12.73ID:gQLFhoYb0
>>277
最初の2行のTheいらんやろ
2023/07/16(日) 16:11:54.43ID:Km3KtOC30
>>278
そこへ突っ込まれるとは思わなんだ。
面倒くさいからググる翻訳に突っ込んで Grammarly にチェックさせただけw
2023/07/17(月) 00:58:53.53ID:SbIiaArN0
>>269
どうもありがとうございます。コンバートして望み通り動作しました。
2023/07/17(月) 04:09:59.36ID:VOOmaMxG0
メニュー使った2ストローク入力なら古のchoice使うのも手軽
https://justpaste.it/9lbtx
2023/07/17(月) 07:28:27.62ID:xIH5JVqm0
[A] aaaと定義したらcase "A"で判定できるのがいいな

ahkだと、
Menu.Add "[A] aaa", MenuHandler
と定義したら
if (Item = "[A] aaa")
と書かないといけない
283名無しさん@お腹いっぱい。
垢版 |
2023/07/17(月) 07:58:49.86ID:vF6+yovp0
「変換」キーと「;」キーを同時押ししたときに「Shift」長押し
ということはできるでしょうか。

sc079 & sc027::Send, {Blind}{sc036 Down}
このように書いてもダメでした。

KeyWaitやGetKeyStateもコンビネーションが使えない?ようで
どう書けばよいか分からず、できるかどうかもWikiからは読み取れず
お知恵を拝借できればと。。
2023/07/17(月) 07:59:33.80ID:B2mmzP0z0
>>282
Quick Reference | AutoHotkey v2
https://www.autohotkey.com/docs/v2/lib/Menu.htm#MenuItemName
2023/07/17(月) 08:04:20.66ID:B2mmzP0z0
>>284
ああ、ちゃうわ。UI上の話じゃなくてコード上の話か。
連想記憶的に使える Map Object を絡めりゃなんとか実装できるんちゃうか。
2023/07/17(月) 08:21:23.71ID:xIH5JVqm0
表示用文字列とIDは別個というのが自然な発想の筈なのに、
一緒にしちゃえと最初に思ったのでもう後へは引けない

上から何番目かは判るけど、メニューをそれで管理したら絶対保守性悪い
287名無しさん@お腹いっぱい。
垢版 |
2023/07/17(月) 16:51:36.29ID:pYrZa38K0
>>277
ありがとう
いろいろ便利そうですね。

キーボードショートカットで出せると便利そうですね
2023/07/17(月) 17:08:53.58ID:xIH5JVqm0
menu出てる間は処理を取られてるからなあ
下カーソルを押してメニュー選択しようとして、caps-xとか押してもそれは無視される
2023/07/17(月) 17:13:27.67ID:B2mmzP0z0
>>287
そら割と簡単やで、ちゅうか Quick Reference にあった気がせんでもない。
例えば Ctrl+F2 に割り当てるなら
^F2:: MyGui.Show()
ってやるだけ。

面倒くさいのは MyGui := Gui() ってやったあとにひたすら Gui の内容を
構築することw
2023/07/17(月) 19:22:18.19ID:XDsl//0d0
Gui Add Edit で、テキストエリアをクリックするだけで入力されている文字列が選択状態になる方法はありますか?
2023/07/17(月) 21:09:18.79ID:B2mmzP0z0
>>290
OnEvent の "Click" の call back に Send "{Home}+{End}" でイケるかも
知れん…… やったことないから知らんけどw
2023/07/17(月) 21:28:56.07ID:B2mmzP0z0
>>283
Blind 使ってるからちゃうか?
関数化して
sc079 & sc027::
Send, "{Shift down}"
Sleep, Delay time in msec
Send, "{Shift up}"
Return
は?
2023/07/18(火) 14:00:51.15ID:CF9kcEEW0
初歩的な質問ですみません
下を実行しても1までで、2と3が反応しないです
使ってるマウスはロジのM750Lなんですが同様の現象を解決できた方いたら教えてください

Xbutton1::
SendInput, {1}
KeyWait, Xbutton1, U
KeyWait, Xbutton1, D
SendInput, {2}
KeyWait, Xbutton1, U
KeyWait, Xbutton1, D
SendInput, {3}
KeyWait, Xbutton1, U
return
2023/07/18(火) 14:44:28.17ID:lBVfkO4n0
>>293
MouseClick と違って KeyWait には "U" というオプションはないと思うけど。
Options の説明書きを見る限りじゃ、", U" を全部取っ払ったら期待通りの
動作になるかもね。

KeyWait - Syntax & Usage | AutoHotkey
https://www.autohotkey.com/docs/v1/lib/KeyWait.htm
2023/07/18(火) 15:36:22.45ID:w+el2smL0
どういう動きにしたいのか分からないが、オレ環だとかなりゆっくり押す必要あるけど押す度に 1 → 2 → 3 → 1 → 2 → …と数字一つずつ入力される
win10 64bit Kensington SlimBlade Trackball(拡張ボタン1や2は付属ユーティリティで設定が必要な機種)
2023/07/18(火) 15:46:49.31ID:XAgbB53O0
>>293
マウスやドライバによるか知らんが
XButtonとかは押し下げた瞬間にDown→Upになってしまって押しっぱなしという状態ができなかったりする

そのことと2回目の押し下げが効かないこととの関係は俺にはわからない
なんの解決にもなってなくてすまん
2023/07/18(火) 19:05:53.01ID:CF9kcEEW0
回答ありがとうございます

>294
Uは必要なかったんですね
間違えてるのを参考にしてたみたいです
外してやってみたのですが駄目でした

>295
相性から可能なマウス(付属ソフト?)はあるんですね
けど反応速度はほしい・・

>296
昨日1回だけ成功したんですが再現できず謎すぎました
2023/07/18(火) 19:25:05.03ID:w+el2smL0
>>297
>>295の動きが希望通り?だったらもっと軽く動くスクリプトが↓
サンプルコード集 - AutoHotkey Wiki
https://ahkwiki.net/SampleCodes
「1.2 キーを押す度に機能を切り替え」の所にあるから参考にしてみれば?
299名無しさん@お腹いっぱい。
垢版 |
2023/07/18(火) 23:12:13.23ID:+qf1cFv60
>>292
回答ありがとうございます。
まだうまく動いていませんが
参考にして色々試してみます!
2023/07/19(水) 16:55:58.66ID:l/NP6n2/0
>>298
ありがとうございます!
押し離しだけのやつにはそれで出来ました
2023/07/21(金) 03:57:09.33ID:t06Z9tfd0
2用のWikiってないの?
2023/07/21(金) 06:00:31.08ID:Xu2CSu5b0
最初からv2しか無くて、世の中のサンプルが全部v2ならいいのに
2023/07/21(金) 08:00:41.75ID:1JPT1c3e0
v1を理解してるんだったらv2なんて難しくもなんともないのに
2023/07/21(金) 14:38:08.72ID:aUUJgDsM0
たまに V1 → V2 でガラッと変わっているものもあって、
公式のドキュメントサイトで V1 <-> V2 をいったり来たりしながら
コンバートせんとアカンことがあるけどなw
2023/07/21(金) 15:01:03.32ID:TyBbyczW0
splashimageとprogressをtooltip代わりに多用してたせいで難儀してる
オブジェクト関係よく分からんので仕方無しにtooltip使ってるけどフォント変えられないのとマウスで移動させられないのがちょっと困る
2023/07/21(金) 17:01:02.01ID:aUUJgDsM0
慣れれば、というかCやったことあるならとりあえず構造体みたいなもんやと
思っておけばおk
プロトタイプベースがどうのこうの、クラスベースで継承がどうのこうのとか
放り投げとけw
307名無しさん@お腹いっぱい。
垢版 |
2023/07/21(金) 18:14:03.38ID:CzIafqnt0
>>306
移植は簡単?
C++プログラマーです。
2023/07/21(金) 20:00:33.36ID:aUUJgDsM0
そっちかいな。
tooltip 代わりに使っていたというなら、Gui で好きなウィンドウを作ったら
ええんちゃう?
公式ドキュメントの V1 Progress / Splashimage にも非推奨で Gui を使えとあるし。
2023/07/21(金) 20:39:41.20ID:Xu2CSu5b0
v2でしか出来ない新機能
みたいなのがあれば移行を促進するけど、なんも無いもんな
動かないのは確実なのでわざわざ移植なんかしないでv1でいいやになる
2023/07/21(金) 21:05:37.01ID:TyBbyczW0
AddTextで表示させることは出来るんだけどそこからがね
settimerでタイマー的に経過時間を表示させる場合毎回一からウィンドウを作るん?
それとも1回作ったあとはテキスト部分だけを書き換えたりするもんなの
他言語はUWSCくらいしかさわったことないからセオリーが分からん
2023/07/21(金) 21:46:26.30ID:aUUJgDsM0
>>310
GUI Control Types - Syntax & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/lib/GuiControls.htm#Progress
2023/07/21(金) 22:19:00.72ID:TyBbyczW0
t::
t := A_TickCount
Progress, M T X0 Y0 ZX0 ZY0 W120 H0
SetTimer, timer, 1000
return

timer:
Progress, , , , % ((A_TickCount - t)) // 1000 // 60 . "m経過"
return

こんな感じで移動可能なツールチップ代わりに使ってただけで進捗バーとして使ってたわけじゃないんだ
サンプル見る限り.valueでテキスト部分も書き換え可能ってわかったけど旧progressのMに相当するオプションはないっぽいのな
2023/07/22(土) 00:04:18.75ID:cqy/jwFL0
キー関係ないやん、みたいな機能ばっかりなんだよな
pythonか何かのモジュールとしてキー周りの処理に専念して、
UIとかは別の専門の人に任せた方がいいのでは
2023/07/22(土) 01:06:33.01ID:BF/oMHO40
ネットワークが接続されたのを検知してからアイコンを変更したいのですが
何か良い方法ないでしょうか?
runwait,netsh interface set interface Ethernet0 enabled, , Hide
Menu, Tray, Icon, C:\Windows\System32\imageres.dll,363
2023/07/22(土) 12:40:55.43ID:OFupoZqF0
>>314
runcmdライブラリ使ってpingの結果をregexmatchでifってTrayIcon libraryで変更すれば簡単に実装できそうだけど、わざわざAHK使わずともpython使ったら?という要望がこのスレでは多い気がする
2023/07/22(土) 13:20:04.61ID:BF/oMHO40
for文で値を確認すればよいだけでしたねスミマセン
2023/07/26(水) 09:56:13.42ID:GfKX9CCz0
AHK v2ってstaticメソッドの中からthisでクラスを参照できたんだ
知らずにずっとクラス名をベタ書きしてた
変わった仕様だが便利だな
2023/07/26(水) 20:07:05.52ID:wblL14z/0
v1からv2の移行の大半は機械的な置き換えだから、自動化できるわな
https://github.com/mmikeww/AHK-v2-script-converter
2023/07/26(水) 21:34:55.36ID:GfKX9CCz0
移行が面倒くさいから最初のハードルは高いけど
言語としてはv2の方がはるかにマシだから、一度移行したら二度とv1には戻れないな
v1は継ぎ接ぎだらけの奇っ怪な言語だったから
2023/07/26(水) 21:55:31.48ID:5eLaqzDi0
v2はlspが使えるのも便利
2023/07/27(木) 10:19:56.01ID:2+fySodc0
>>318


便利そう
コンバーター
2023/07/27(木) 10:20:55.67ID:2+fySodc0
>>320
LSPとは何でしょうか?
2023/07/27(木) 18:47:43.09ID:RaNL/EWb0
>>322
Language Server Protocol
コードの解析情報をエディタに提供することで、下記の様な便利機能をエディタ内で使えるようになる仕組み
構文エラーの指摘、入力補完、シグネチャ(関数名や必要な引数や戻り値等の情報)の表示、
関数や変数やクラスメソッドやホットキー等の定義一覧表示およびジャンプ、
スコープ内の変数名を一括変更、自動フォーマット等々

あの関数名は何だっけ、どんな引数が必要だっけ、とわざわざ外部ブラウザでリファレンスを確認し、
それを手動でカタカタ入力とか面倒ですよね。そういうのを少々軽減してくれます

v2用。導入にはLSPに対応したエディタが必要
https://github.com/thqby/vscode-autohotkey2-lsp

今探したらv2限定じゃなくv1のもあった。未使用なので詳細は知らない
https://github.com/helsmy/vscode-autohotkey
2023/07/28(金) 13:40:26.93ID:N9mpyyiM0
ホットキーにCtrlが入ってるとShiftの押し下げが効かなくて困ってます
半角の空白を消した{Shiftdown}の形だと動くのですが、
動くならこの表記でも問題ないでしょうか?

^D::
Send, {Shift down}
Sleep, 2000
Send, {Shift up}
return
325322
垢版 |
2023/07/28(金) 13:58:40.45ID:hw/bBjue0
>>323
ありがとうございます。

Visual StudioでC++とか書くときの機能みたいなかんじですかね
便利そうですね
中国人が作ったのかな
VS codeか。
2023/07/29(土) 15:28:44.33ID:0/bV83AT0
マンガミーヤで読んでる時だけ、下カーソルのキーリピートを遅くするとかできる?
2023/07/29(土) 15:40:32.39ID:u+ueY0wx0
できる
まずそのアプリの限定表記を覚えてから
下キーをホットキーとして
キー押下時間を検出して
押している間は任意の感覚で連打
みたいなフロー
ずぶの素人でも一日あれば作れるんじゃないかな
2023/07/29(土) 15:46:03.68ID:0/bV83AT0
キーリピートって、upなしでdownが連続するんじゃなかったっけ
2023/07/29(土) 16:06:46.65ID:u+ueY0wx0
あるけど
keywaitとかあるんで別に
2023/07/29(土) 17:49:31.33ID:0/bV83AT0
ゆっくりキーリピートをsleepで実現すると、
sleepしてる間はキーを離しても認識しないので、
手動で連打して一時的に素早く入力しようとしても設定を超えられない
2023/07/29(土) 18:03:04.96ID:u+ueY0wx0
押下されているか調べて、されていたら
sleepするようにしてみたら?
2023/07/29(土) 19:02:06.65ID:0/bV83AT0
押しているからsleepしてその間に離してまた押しても無視されるので同じこと
2023/07/29(土) 19:57:46.41ID:oKRVeLg90
簡単にできるけどこの人にレスしたくないな
2023/07/29(土) 20:07:23.41ID:0/bV83AT0
そんなことわざわざ書くような精神構造の人がいるとも思えないので、単純に判らないんでしょ
2023/07/29(土) 21:08:57.18ID:E+GDG1c40
面白い題材だと思ってやってみたらできた
簡単ってほど簡単じゃなかったけど、
難しいことはしなかったから簡単なんだろうな
2023/07/29(土) 21:19:43.36ID:0/bV83AT0
sleepを使わずにもっと細かい時間単位の周期処理でやらせる方法もあるけど、
タイミングによっていろんな不具合が出そう
2023/07/29(土) 21:32:07.81ID:E+GDG1c40
肝はsleepをどう使うかだと思うからがんばってね
2023/07/29(土) 21:41:19.98ID:NE5aMCff0
>>335
同じく試しにsleep使わないスクリプト書いてみたら動いた
↓キー長押し(0.5秒)すると2秒間隔で{down}発動、↓キー解放後任意のタイミングで↓キー短押しで{down}発動
2023/08/01(火) 05:06:51.46ID:u4ROO/up0
windowsのALT + F4みたいにウインドウ外をクリックすると閉じるGUIにしたいのですが
なにか簡単に実装できる関数があるのでしょうか?
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+左クリックになってしまいます
どのように書けばいいですか?
2023/09/05(火) 23:27:03.44ID:fMQvsfZE0
Send,{LButton}
2023/09/05(火) 23:29:11.87ID:08fzEwC60
>>439
MouseClick - Syntax & Usage | AutoHotkey
https://www.autohotkey.com/docs/v1/lib/MouseClick.htm
2023/09/05(火) 23:50:46.44ID:uAjrKV030
>>440, 441
ありがとうございます
試したところそのスクリプトでだいたいは上手くいくのですが10回に1回ぐらいはctrl+左クリックになります

具体的にはブラウザのリンクをこのスクリプトをオンにしてctrl+左クリックするとだいたいは元のタブで開くのですが
10回に1回くらいは別タブで開いてしまいます(左クリックだと元タブでリンクが開き、ctrl+左クリックだと別タブで開く)。

これを防止するためにも ^lbutton:: の開始から終了までは強制的にctrlを押していない状態に出来ないでしょうか?
2023/09/05(火) 23:57:06.56ID:U/8+P8mP0
クリックする前に
Send {Ctrl Up}
でも書いておけば?
うまくいくかは知らんけど
2023/09/06(水) 00:04:12.54ID:9rLt8Dwp0
>>443
試したけどだめでした

https://keyboard-test.space/jp/

このサイトでキーの入力状態見てたら Send {Ctrl Up} の瞬間だけ ctrlの入力がオフになっても
次の瞬間またctrlが押された状態になるのでスクリプトが終わるまでずっと {Ctrl Up} の状態を保たないとだめそう
2023/09/06(水) 00:11:36.92ID:GGW0aUGl0
すごいサイトだな
ahkにも似たような機能あるけど
2023/09/06(水) 07:15:27.62ID:Yei4EXvP0
Getkeystateってマウスもいけたっけ?
いけるなら物理的に離されてからup打つとか
2023/09/06(水) 07:53:03.76ID:sYM0CPD00
>>442
Remarks に書いてあることまでちゃんと読んだ?
Remarks
This command uses the sending method set by SendMode.
The Click command is recommended over MouseClick because:
 1. It automatically compensates when the left and right mouse buttons are
swapped via the control panel.
 2. It is generally easier to use.
To perform a shift-click or control-click, use the Send command before and
after the operation as shown in these examples:



The SendPlay mode is able to successfully generate mouse events
in a broader variety of games than the other modes. In addition,
some applications and games may have trouble tracking the mouse
if it moves too quickly. The speed parameter or SetDefaultMouseSpeed
can be used to reduce the speed (in the default SendEvent mode only).

Some applications do not obey a ClickCount higher than 1 for the mouse wheel.
For them, use a Loop such as the following:



The BlockInput command can be used to prevent any physical mouse activity by the user from disrupting the simulated mouse events produced by the mouse commands. However, this is generally not needed
for the SendInput/Play modes because they automatically postpone
the user's physical mouse activity until afterward.

There is an automatic delay after every click-down and click-up of
the mouse (except for SendInput mode and for turning the mouse wheel).
Use SetMouseDelay to change the length of the delay.
448439
垢版 |
2023/09/06(水) 12:17:42.07ID:9rLt8Dwp0
以下で問題無く動くこと確認しました

^lbutton::
BlockInput, on
send, {click, left}
BlockInput, off
return

しかしBlockInput, onが管理者権限でないと機能しないので使用はためらっています
2023/09/06(水) 12:58:50.79ID:ltUQDciW0
>>448
ブラウザ何使ってるか知らんけど、chrome(chromium系)ならchromeのwebストアで「open link same tab」で検索するとやりたい系の拡張出てくるから拡張導入で実現すれば?
2023/09/06(水) 13:01:25.15ID:ltUQDciW0
>>449
あ、スマン ctrl+左クリックかー
>>449は取り消し
2023/09/06(水) 18:44:01.82ID:Yb6yqz+60
>>448
要はCtrlが物理的に押し下げられている間に発生するキーリピートを止めればいいので下記のような方法でもできるが
これだとKeyNameと同名の既存のホットキーがある場合上書きしてしまうため、既存のホットキーをOnにし直す必要がある
あと >>444 のサイトは物理キーと論理キーの区別がされてないのでこの様なケースではテストして使うには不適切だと思うぞ

^LButton::
Hotkey, LCtrl, disable_key, On
Hotkey, RCtrl, disable_key, On
Send, {LButton}
Hotkey, LCtrl, disable_key, Off
Hotkey, RCtrl, disable_key, Off
return

disable_key:
return
2023/09/06(水) 20:22:25.18ID:X26chPwY0
数日パソコンつけっぱにしたら暴走する事ってありますか?
昨日から入力で文字出なかったり重く感じて来たと思ったら今日「っっっっっっっっ」以上の連打状態になったり日本語オンオフが連打状態になったりして、文字入力関係で何かあるとすればこれだけかなって
パソコン再起動で直ったんですがおま環でしょうか?
それか何か記述がおかしくて影響する事とか
ただ今まで問題無くここ数日で追記した事もありません
Win11
V1
2023/09/06(水) 20:25:31.25ID:lmw46YqV0
ただのahkあるある
2023/09/06(水) 21:25:42.58ID:uFzGHYTO0
>>452
そういう時はPC再起動の前にIMEの再起動だね
ググればバッチ書いてるのがすぐ出てくると思う
原因は1回だけでは何とも…
2023/09/06(水) 22:09:08.69ID:9rLt8Dwp0
>>451
ありがとうございます

試すとそのスクリプトを単独の.ahkファイルに書くと問題なく動作するのですが
自分が普段使ってる他にも長々と別のスクリプトが書いてある.ahkファイルの中に書くと
5回に1回ぐらい失敗(ctrl+左クリックが送られる)します

何かの処理が間に合わずに物理ctrlキーが割り込んできているのかと思い以下のようにsleepを挿入しても同じように失敗します

^LButton::
Hotkey, LCtrl, disable_key, On ;LCtrl::return と同じ
Hotkey, RCtrl, disable_key, On
sleep, 500
Send, {LButton}
sleep, 500
Hotkey, LCtrl, disable_key, Off ;上で定義したLCtrlのホットキーを削除
Hotkey, RCtrl, disable_key, Off
sleep, 500
return
disable_key:
return

何でctrlが割り込んで来ちゃうんですかね?
2023/09/06(水) 23:02:51.49ID:Yb6yqz+60
>>455
そうなるとコード全体を見てみないと分からんが
全コード晒すのもそれを解析するのも現実的でないのでとりあえず適当に思い当たるのを挙げとくと
・同条件でトリガーされるホットキーで他に干渉しているものがないかチェックして、あればHotkeyで無効にする
・SetKeyDelay 及び SetMouseDelay を変更しているなら戻す
・SendInput もしくは SendPlay を使用する
・Send, {LButton} の前に Send, {Blind}{LCtrl Up}{RCtrl Up} を入れ明示的に押し上げる
・Hotkey, LCtrl, disable_key, On P100 のように優先度を上げる
・#UseHook を使う
・ホットキーやスレッド周りの設定で極端な設定をしているものがあれば戻す
とまあ基本手当たり次第かな、がんばって
2023/09/08(金) 00:16:48.01ID:suMaKzxk0
質問させてください
AHKでWin10のBluetoothをオン/オフ切り替えるコマンドってありませんか?
2023/09/08(金) 07:45:00.03ID:GbWsAhNI0
>>457
AHK にはないやろ。

autohotkey bluetooth on off - Google 検索
https://www.google.com/search?q=autohotkey+bluetooth+on+off
2023/09/08(金) 08:55:55.00ID:+ULrgBan0
runがあるんだからahkだけで何でもできる
2023/09/08(金) 09:32:53.12ID:GbWsAhNI0
>>459
>>458 の上位にヒットするエントリの中にその辺りの tips もある。
2023/09/08(金) 09:38:25.14ID:MNBExYpU0
runしないといけないってことはahkで出来ないことじゃね?
2023/09/08(金) 09:58:48.37ID:YMO30/bT0
ただの言葉遊びだが、>>457の質問の仕方もちょっとあれだな
恐らくAHK経由で制御できるかを知りたいんだろうが
コマンドと書いてしまっているから、存在しないので、「ない」
という答えが返ってくるはめになる
制御スイッチとしてのスクリプトを書けるかといえば書ける
2023/09/08(金) 13:21:18.66ID:suMaKzxk0
>>462
質問の仕方が悪くて失礼しました
「AHK経由で制御する方法」を知りたかったです

>>458 >>460
参考にさせて貰います
ありがとうございました
2023/09/08(金) 17:58:23.82ID:+ULrgBan0
::の後{の前に改行がいるルールは、何の役に立ってるの?
続けて書いても誤解は無いと思うけど
2023/09/08(金) 18:43:25.14ID:i4UroxiT0
v2の話?
v2ならホットキーは関数だから、そういう書式ルールなんでとしか
ただOTBも許容しているから、別に前でなくてもいいよね

F1::{
Run "Explorer"
}
2023/09/08(金) 18:52:15.25ID:gx8PwsTd0
>>464
パーサの役に立ってるよ
2023/09/08(金) 21:28:52.01ID:GbWsAhNI0
>>464
ちゅうかさ、AHK v2 にそんな「ルール」はないやろ。

「行末の{」に対して、オブジェクト or OTB の判定が入るだけで。

Scripts - Definition & Usage | AutoHotkey v2
https://www.autohotkey.com/docs/v2/Scripts.htm#continuation-expr
2023/09/08(金) 21:38:01.87ID:+ULrgBan0
OTBで書けるケースが限定されている、というルールでしょ
そんなややこしいことにするメリットが判らん
2023/09/08(金) 22:05:34.06ID:zFwuV2d30
>>467
ところが行末でなくてもいいだな、これが

F1::
{ Soundbeep
Run "Explorer"
}
2023/09/08(金) 22:35:10.31ID:GbWsAhNI0
>>468
そもそも論としてホットキー等の記述として「XX:: ~」が原則になっているので
OTBとしての記述が限定されるというのは合理的やとと思うで。
「XX:: {」に対してどう判定する?
>>466でパーサーの都合と書かれているけれど、まさにその通りやと思うで。

>>469
>>467 のリンク先を読めばわかるが「行末の{」に対する判定、エラー吐きの
基準であって、「{は行末に限る」としているわけじゃない。
2023/09/08(金) 22:43:00.25ID:+ULrgBan0
全然判らん
何と何を誤解するという具体例とかあるの
2023/09/08(金) 22:55:06.64ID:zFwuV2d30
>>470
後から読んだんでしょ
正直に言いなさいw
2023/09/09(土) 08:49:36.22ID:pR8NjTB70
v1みたいに処理が一つなら省略できるんだから別にいいじゃん
スクリプトの改行で文句言う奴なんて初めて見たぜ
2023/09/09(土) 13:53:20.96ID:xOfvB+/e0
なんかよく分からないその人なりのこだわりがあるんだろ。
2023/09/09(土) 15:42:27.29ID:feDxAAkf0
何かの互換性の維持の為とかならまあ仕方ないけど、
そんなの関係なくて単に面倒くさいという理由で合理性が欠如してたら、
もうちょっと頑張れよと思うのは仕方ない
2023/09/09(土) 21:56:07.18ID:dR4zuzdz0
>>472
>>467を読んでも{が行末に限るって言ってるとは思わないけど、>>467ではそう主張してたでしょってこと?
2023/09/10(日) 15:58:51.93ID:ZkN65p7R0
AutoHotkeyって、ネーミング通りホットキーに操作を割り当てるだけの物かと思ってスルーしてたけど
調べたら色々出来るんだね

こんなことならUWSC(作者死亡、6年更新ない)に手を出さず、最初からAutoHotkeyにしとけば良かった。
2023/09/10(日) 16:09:06.76ID:oMtz/ggC0
今からでも遅くはありません
勇者よ、学ぶのです
2023/09/10(日) 16:11:04.10ID:ItMWkI4Z0
ImageSearchまだ使ったことないけど、使いこなすと可能性が広がりそうだな
2023/09/10(日) 16:24:59.90ID:oXJfo1RU0
>>477
pythonと組み合わせるのをおすすめする

UIはAHK、処理はpython
2023/09/10(日) 16:36:29.30ID:ApyovvyA0
Keyhac って Python だったよな
2023/09/10(日) 16:46:52.42ID:ItMWkI4Z0
のどかにラッパーを追加してpythonのモジュールみたいにできないかな
ぶっちゃけ、キーの入れ替え以外は全部pythonでできる
2023/09/10(日) 16:57:15.43ID:ItMWkI4Z0
ラッパーていうか、アプリそのものだな
のどかはデバイスドライバとそれを使う本体で構成されてるので、
APIを解析してのどか以外からデバイスドライバを使うことも可能
APIの全機能をカバーしただけの低レベルpythonモジュールをまずこさえて、
それを利用してahkのスクリプトを理解できる上位モジュールから呼び出す
2023/09/11(月) 11:00:53.01ID:ia7g+DFl0
>>481
keyhacは修飾キー周りの設定がめんどいのと更新止まってるから使ってないな
2023/09/11(月) 20:36:49.65ID:AdChF0Gh0
Release v2.0.8 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.8
486322
垢版 |
2023/09/11(月) 20:38:32.90ID:tG+HBWzg0
>>485
2.0移植するか…

数万行の移植… w
2023/09/11(月) 20:39:27.89ID:tG+HBWzg0
>>485
v1.0は
あんまり更新されないな…
2023/09/11(月) 20:51:26.09ID:H9PG0Vk20
メンテナンスだけなんだから
そりゃ当然だわ
2023/09/11(月) 21:17:56.44ID:AdChF0Gh0
公式のダウンロードページでも「Download v1.1 (deprecated)」になってるしな。
セキュリティ絡みかよっぽどなバグでもない限りアップデートはないやろ。
2023/09/11(月) 21:27:50.78ID:tG+HBWzg0
>>480
Pythonと組むって、
具体的に何やるの?

Pythonを使う意図は?
2023/09/11(月) 21:28:32.59ID:tG+HBWzg0
>>490
Pythonは
AI作ってるとこだわ…
492名無しさん@お腹いっぱい。
垢版 |
2023/09/12(火) 02:41:12.62ID:ZxfrDDhW0
漠然とした質問ですがAHKって何に使ってますか?
自分はpython書くくらいしかPCで作業しないので
Pythonであまり使わない@に()を割り当てたり
=と""を打ちやすくしたりしてみたのですが
他に割り当てるほどのことが何も思いつきません

何でもできるツールなので、使い方がわかってないだけだと思うのですが……
切り取り貼り付けなどのショートカットをワンプッシュでできるようにしてみたのですが元々Ctrl+C、Vとかはかなり押しやすい配置なのであまり便利になりませんでした

皆さんが複雑な作業でホットキー設定して便利だと感じているものって何かありますか?
2023/09/12(火) 03:06:37.00ID:TCPOB/1O0
>>492
文書を保存したときに、
.ahk なら再読み込み
.html ならブラウザで表示
セットで操作するショートカットをまとめておく
2023/09/12(火) 04:30:06.97ID:48RxhFtI0
>>492
JISキーボードをUS104ドライバで動作でANSI配列化してるけど、
USには無い5キー(無変換、変換、かな、\、\)は、AHKの「SC::VK」でキードライバ代替させてる
2023/09/12(火) 07:42:20.39ID:Nluft5rv0
mayu -> yamy -> ahk と流れてきて、設定を連綿と引き継いでいる
最初にやりたかったのは、ダイヤモンドカーソル
CapsLock+esdxがカーソルキーになる

他にも極力ホームポジションから動かなくていいように、ファンクションキーとか、
かな入力の一部を別のキーに追加

あとは特定アプリ限定で、マウスでしか操作出来ない機能にキーアサインを追加
2023/09/12(火) 08:32:49.30ID:GBoxE6db0
関数ライブラリ廃止がクソすぎる やってられん
2023/09/12(火) 11:28:42.32ID:qk3wwP0M0
>>492
IMEオンオフ切り替えを含め、遠いキーをなるべく手元に
アクティブウィンドウ枠をIMEオンオフに応じて色付け
再変換:半角文字列を未確定全角に‖未確定全角文字列を確定英数字に
アクティブタイトルバーに暗記したい英単語を順次表示
発音記号、欧文文字ダイレクト入力
アプリ一発起動
各種メディアプレーヤーのホットキーを統一
ClipboardHisoryをAHK版にして、カスタマイズ

自分のスクリプトを点検したら、こんな感じでした。
2023/09/12(火) 11:49:46.07ID:UAm/ijNJ0
>>496
人のコードを使ったりするときに意図せず読み込まれて名前空間が、って開発の気持ちもわかるけど
自分で管理できる分には気楽に使えてAHKをカスタマイズしてる感もあったもんね
2023/09/12(火) 12:43:04.65ID:uIyr4Ei90
別に新規作成のテンプレに必ず使うライブラリ書くとかしておけば
良いだけでしょ
大げさに騒ぎすぎ
2023/09/12(火) 13:14:01.88ID:Nluft5rv0
使ったことないけど、includeするのとは違う名前の管理してくれるの?
2023/09/12(火) 13:56:53.17ID:0mkXggI90
>>492
こういうの読んで参考にしてみては?
https://qiita.com/ryoheiszk/items/092cc5d76838cb5a13f1
2023/09/12(火) 21:03:09.06ID:V/2CrKsZ0
>>496
わかりみしかない

>>492
日時・曜日・年号、記号、使い捨てパスワード生成、ウィンドウ切替、ランチャ、ショートカットのリマップ
2023/09/12(火) 22:19:12.36ID:48RxhFtI0
>>492
左手側に置いたテンキーパッドをAHKでリマップして
マウスボタン、チルト&ホイール、ポインタ1pix移動、矢印Page系キー。
右手のマウス本体ボタンは殆ど使わなくなった
2023/09/13(水) 15:48:09.66ID:m4N6UCY60
>>392
>>395
なんか笑った

再起動を避けるメリットって具体的に何ですか?
2023/09/13(水) 17:24:56.06ID:5W893Rfo0
>>503
おもしろいね

ドラッグドロップできるの?
2023/09/13(水) 17:30:46.12ID:Wgwsv5oV0
そもそもブラウザ以外でマウスを使わない
2023/09/13(水) 17:46:36.73ID:el7ZvXLi0
シェルもCUIかよ
男らしいなw
2023/09/13(水) 21:54:54.11ID:Ep4twdpZ0
>>505
出来るよ。キーリピート防いで、長押保持
NumPad◆::
Click,Left,D
KeyWait,NumPad◆ ;リピート連打防止長押保持
Click,Left,U
Return

それとドラッグ用に、クリックON/OFFトグルも
NumPad▼::
Click,Left,D
Sleep 200 ;×無いと即OFF誤動作
KeyWait,NumPad▼,D ;押込検知
Click,Left,U
Return
2023/09/14(木) 08:58:24.57ID:yiUXLhWC0
a::
Click,L,D
KeyWait,%A_ThisHotKey%
Click,L,U
Return

これ系のホットキー、自前ウィンドウ(GUIやListLines)のタイトルバーに対して押すと
クリックされっぱなしになっちゃうんだけどおま環?
2023/09/14(木) 11:25:43.09ID:KPv1xtwM0
かきこめるのかな
511名無しさん@お腹いっぱい。
垢版 |
2023/09/14(木) 11:38:55.24ID:KPv1xtwM0
https:〜〜=99 というある99番目のページurl があって
StringTrimLeftとStringTrimrightで、https:〜〜= までと 99 に切り分けて
99を数値処理して、再結合して98番目をひらき、97番目をひらき・・・を繰り返したいんですが
https://ahkwiki.net/-Concat で結合すると*の箇所でlist_numが数値ではなく文字列になってしまい実現できません
どうやって解決できるでしょうか?

StringGetPos, OutputVar, url_list,=, R1 ,
StringTrimLeft,list_num,url_list,OutputVar+1
StringTrimRight,url_list,url_list,StrLen(list_num)

Loop,5
{
Sleep,1000
list_url := url_list list_num *
Run,%list_url%
list_num =list_num-1
2023/09/14(木) 11:47:07.84ID:KJr2fbsG0
どこにキー入力の要素が
2023/09/14(木) 12:05:09.94ID:qDtiR+3o0
>>509
まずそのコードだけのスクリプト作って動かしてみればいい
それで正常に動作するなら既存スクリプトのコードの問題、そうでなければおま環

>>511
そのコードの一番下の代入が=になってるからでしょ
2023/09/14(木) 12:17:00.09ID:KPv1xtwM0
>>513
凡ミスでしたありがとうございます。
2023/09/14(木) 12:27:01.77ID:KJr2fbsG0
=と==を大文字小文字の区別の為だけに使い分けて、
そのせいで代入を:=にするのはどう考えてもデメリットが大きいので、
=は代入にしてしまった方がいい
2023/09/14(木) 13:11:14.76ID:yGaUQqIl0
>>508
ん?
これで、どうやってドラッグ&ドロップするの?
具体的に

マウスポインタを動かすのは?
2023/09/14(木) 17:42:45.40ID:DzQdSu6f0
>>516
>>503
右手マウス左手キーボードのスタイルでしょ
俺も腱鞘炎対策にクリック連打とかはキーボードに割り当ててる
2023/09/14(木) 19:58:28.52ID:dC0vICTI0
外部スクリプトよく呼び出すなら

ret := RunScript("
(
#!cmd
echo hello
)")
msgbox % ret ; ==> "hello"
なんてラッパー作っとくと楽だぞ
2023/09/14(木) 20:43:03.47ID:yiUXLhWC0
これほんとに俺だけ?>>509
これだけの記述でも100%再現する
----------------
ListLines

LButton::
Click, L, D
KeyWait, LButton
Click, L, U
Return
----------------
2023/09/14(木) 22:14:28.70ID:qDtiR+3o0
>>519
スマンかった。おま環じゃないなこれ
昼に軽く試したときはならなかったんだが、今やったら確実に再現するわ
むしろ昼にやった時ならなかったのが謎

KeyWaitの有無は関係なく、DownとUpを別々にした場合に発生する模様
タイトルバーを対象とした時のみDown後にUpが送られずスタックして
Escを押すか、タイトルバー以外の場所でLButton押下時にUpが送られてる
Send, {LButton Down} に変えても同様
なんでこうなるかは分からん
2023/09/14(木) 22:39:00.29ID:yiUXLhWC0
検証ども おま環じゃなくてよかった

ちなみにv2でも同じだった
2023/09/14(木) 22:43:30.80ID:/4keP4wt0
>>509
>>508では、それ発生したこと無いなあ
2023/09/15(金) 09:56:11.88ID:8lJJsAOr0
>>517
あー

マウス自体は動かすのか…
2023/09/17(日) 04:25:54.62ID:sHFSptxP0
質問よろしいでしょうか?
Spotifyにグローバルショートカットを送るスクリプトです
これだと最小化している時は反応しません どう修正すればよいでしょうか?

getSpotifyHwnd() {
WinGet, spotifyHwnd, ID, ahk_exe spotify.exe
Return spotifyHwnd
}
spotifyKey(key) {
spotifyHwnd := getSpotifyHwnd()
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%
Return
}

Pause::
{
spotifyKey("!+{B}")
Return
}
2023/09/17(日) 04:31:37.96ID:sHFSptxP0
もうひとつ質問がありまして

上記のスクリプトを改変し、コンパイルしたexeを呼び出した際にSpotifyに !+{B} を自動で送信
その後AHKのexe自体を終了させたいのです

何がしたいかと言うと、遠隔で該当exeを実行するコマンドを送る度に !+{B} をSpotifyに送りたいという事なのですが
可能でしょうか・・・ 宜しくお願い致します。
2023/09/17(日) 05:22:22.98ID:AK0a2owI0
Spotifyを使ってないので適当に書くけど、普通にアクティブにしてから
キー送信するのはダメなの?

getSpotifyHwnd() {
WinGet, spotifyHwnd, ID, ahk_exe spotify.exe
Return spotifyHwnd
}

spotifyKey(key) {
spotifyHwnd := getSpotifyHwnd()
WinActivate ahk_id %spotifyHwnd%
Send %key%
Return
}

spotifyKey("!+{B}")
ExitApp

あと、送信するキーはBじゃなくてbじゃないの?
2023/09/17(日) 05:30:12.82ID:sHFSptxP0
>>526
ありがとうございます!できました!

ええ、Bじゃなくてbですね・・・ ググって出てきたスクリプトを書き換えたダケなんで色々理解していません・・・
{ } で囲う意味も分かって無くて、動かなかったから囲ったら動いた ぐらいのスキルです汗
2023/09/17(日) 05:52:40.93ID:AK0a2owI0
一つ目の関数が冗長なので単純化した

spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinActivate ahk_id %spotifyHwnd%
Send %key%
Return
}

spotifyKey("!+{b}")
ExitApp

getSpotifyHwnd()は消していい
2023/09/17(日) 06:06:33.03ID:sHFSptxP0
ありがとうございますー 完璧ですわ・・・

あとコレ >>524 になんとか改良加えようとしてます
これだとフォアグラウンドでもバックグラウンドでも発動するんですが、spotifyを最小化してると無理なんですよね
毎回フォアグラウンドにアクティブ化されると邪魔なので最小化している時だけアクティブにしたいカンジですがなかなかムズく・・・

>>528は外にいる時に呼び出す用なのでこのままで使い勝手がいいです
2023/09/17(日) 06:38:43.23ID:AK0a2owI0
これで良いんじゃないの?

spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinGet winMM, MinMax, ahk_id %spotifyHwnd% ;ウィンドウの最大化最小化を調べる
if (winMM = -1) ;最小化しているなら
WinRestore ahk_id %spotifyHwnd% ;最小化を解除
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%
Return
}

spotifyKey("!+{b}")
ExitApp

WinRestoreで正しく送信されないなら、WinActivateに変更
2023/09/17(日) 07:35:15.03ID:sHFSptxP0
>>530
おはようございます。ありがとうございます!
でもすみません、>>528は一回実行したら終了する遠隔操作用で、>>524は常駐させるヤツなのでExitAppせずにPauseボタンに"!+{b}"を割り振っておきたいんですよね
ExitApp消したりpause組み込んで修正したんですがうまくいきませんでした 申し訳ないです!
2023/09/17(日) 07:42:33.32ID:sHFSptxP0
ああ、こうですね できました。
が、細かいことですがフォアグラウンドに来てる時だけはキー無効になってしまいますね なんでだろ

spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinGet winMM, MinMax, ahk_id %spotifyHwnd% ;ウィンドウの最大化最小化を調べる
if (winMM = -1) ;最小化しているなら
WinRestore ahk_id %spotifyHwnd% ;最小化を解除
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%
Return
}
Pause::
{
spotifyKey("!+{b}")
Return
}
2023/09/17(日) 07:57:47.81ID:AgjEWBqI0
タブの選択とか実行とかをマウスでしかできないソフトにショートカットキーを追加する
前は座標を測って押してたけど、画像認識に変更した
画像ファイルを引数に指定すると押してくれる関数化したのですっきり
押した後、元のマウスカーソルに戻すので、そのうちahkでやってることを忘れる
2023/09/17(日) 13:24:44.00ID:FD5+4qql0
>>518
いいなーv2はrunscript()なんてあるんだ
dllcallでattachしてとか地味に長い関数書いてた

Run, %exec_command% %arg%,, Hide, pid
WinWait, ahk_pid %pid%
DllCall("AttachConsole", "UInt", pid)
WshShell := ComObjCreate("Wscript.Shell")
exec := WshShell.Exec("%ComSpec% /u /c " . exec_command . " " . arg)
output := exec.StdOut.ReadAll()
DllCall("FreeConsole")
2023/09/17(日) 14:08:18.16ID:RotPmQmd0
Release v2.0.9 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.9

> Fixed stacking of hotstrings with the X option.
> Fixed debugger not listing local vars if the function is at the bottom of the stack.
> Fixed Gui threads to show on the debugger's call stack.
> Fixed some combinations of &/ByRef causing stack overflow in ExitApp.
2023/09/17(日) 14:14:03.80ID:MyPIJBxa0
当分fix祭り終わらなそうだな
2023/09/17(日) 14:21:57.49ID:AgjEWBqI0
さっさとpython化しようぜ
2023/09/17(日) 14:40:09.89ID:vOzAWoz00
>>537
pythonにする理由は何?

ahkでできないこと?
2023/09/17(日) 14:41:24.90ID:AgjEWBqI0
スクリプト再発明してオーバーフローしたー、とか困らなくていい
2023/09/17(日) 15:00:43.17ID:RotPmQmd0
>>534
いや、ないだろ。
2023/09/17(日) 15:05:55.08ID:vOzAWoz00
>>534
これで
何やるの?
2023/09/17(日) 15:09:11.40ID:AgjEWBqI0
ahkのコア部分だけpythonのモジュール化して、キーの置き換えとかいろんな処理はpythonで書く
世界中の人が寄ってたかって便利にすることができる
で、コアだけのどかと差し替えると、スクリプトそのままで安定性が向上する
2023/09/17(日) 15:16:12.59ID:vOzAWoz00
>>542
それを
AHKでやらない意味がよくわかんない…

具体的に
2023/09/17(日) 16:40:52.99ID:ejOMxxCZ0
宗教だから触らない
2023/09/17(日) 16:59:13.01ID:FD5+4qql0
>>540
ないんかいw
2023/09/17(日) 17:23:24.31ID:RotPmQmd0
あらへんねんw
Run/RunWait は普通にあるけど、んなもんあったっけ?と公式リファレンスで見たけどない。
多分、Unix系のスクリプト実行よろしく1行目を見て実際に走らせる shell なりを
変えられるものちゃうか?
2023/09/17(日) 18:11:00.58ID:vOzAWoz00
>>546
Runとやりたいことが違うの?
何が違うの?
2023/09/17(日) 18:55:52.94ID:RotPmQmd0
>>547
それをワシに聞かれても知らんがな。
2023/09/17(日) 21:20:13.01ID:6mVDQMFc0
v2はいつになったら押しっぱが解消されるんだろう…
2023/09/18(月) 00:44:41.37ID:MCvojQwt0
>>549
ちょっと前のレスでもkey upさせる手法出てたけど、処理に装飾キー含まれるときに全部のkeyをupする関数とか入れたら?

holdup_key() {
local keys = ["Ctrl", "Shift", "Alt", "LWin", "sc079", "sc07B"]
for key in keys {
SendInput, {key up}
}
}
2023/09/18(月) 02:13:47.11ID:jPhetF1l0
それローカルの宣言する意味あるの?
2023/09/18(月) 07:32:17.17ID:DiSScFBT0
sleep 1 を入れた方がいいっぽい
ループ処理がそれに代わってるかもしれないけど
2023/09/18(月) 07:39:40.16ID:G+And54K0
*XButton1::
{
while GetKeyState("XButton1", "P")
{
Send {Blind}{WheelDown}
Sleep 10
}
}

v1は正常に動く
v2だと稀にGetKeyStateの状態が更新されずに永久ループする
2023/09/18(月) 07:50:20.70ID:DiSScFBT0
確率の問題なんだろうな
アトムであって欲しい処理のスリットが、v1よりv2の方が広い
ダーティでなくなった分だけ脆弱になってしまうっていう

どこでフックの奪い合いが起きても本質的に問題ない
という作りになってないと、どうしても不安定になる
2023/09/18(月) 13:07:34.00ID:cSd5nxXI0
>>553
これはダメだな

治るのか?
2023/09/18(月) 22:46:50.69ID:oUaH/YqD0
>>553
俺の環境ではそんなこと起こったことないが、公式フォーラムのバグレポート(未解決)に似たような報告があるな
v2ではSendMode("Input")がデフォルトになったが、このモードがGetKeyStateに干渉しているのではないかと推測されている
とりあえずEventモードなら発現しないらしいので
Send("{Blind}{WheelDown}")の所をSendEventにするか、SendModeをEventにしてしばらく様子を見てみて
2023/09/21(木) 18:09:14.32ID:/qgZEuhq0
お世話になっております!また教えて頂けませんか?すみません・・・

NumLock::Run,calculator:

Numロックで電卓を起動したいんですが、「既に起動している場合は、そのプロセスをアクティブにする」にあったコレを追加した時の全体の記述がわからないです・・・
単純に追加しただけだと無限に開けてしまいます

Process,Exist,calculator: ;起動しているかどうかを調べる
If ErrorLevel <> 0 ;起動していた場合(ErrorLevel変数にプロセスIDが格納される)
WinActivate,ahk_pid %ErrorLevel% ;そのプロセスのウィンドウをアクティブにする
Else ;起動していなかった場合
calculator: ;起動する
2023/09/21(木) 18:13:06.53ID:/qgZEuhq0
>>532
あと先日のコレですが、フォアグラウンドに来てる時にはショートカットが効かない原因が全然わかりませんでした
難しいッス
2023/09/21(木) 20:04:42.79ID:3aqubDRm0
>>557
If WinExist("電卓")
WinActivate, 電卓
Else
Run, calc.exe
2023/09/21(木) 20:33:27.57ID:/qgZEuhq0
>>559
ありがとうございます 動きました
サンプルと全然違ったw
2023/09/22(金) 18:18:33.75ID:QYS2Gl5t0
>>558
ifとelseで出来ました!ありがとう!
2023/09/22(金) 18:25:41.20ID:QYS2Gl5t0
else入ってなかったわ
2023/09/22(金) 21:16:52.43ID:QYS2Gl5t0
やっぱりだめでした 他のアプリがアクティブだとそっちでショートカットが発動してしまいます
2023/09/22(金) 21:27:25.15ID:Z0XFNyal0
そうですか

自分が書いたものを貼らないなら
そうですか
としか返せませんよ
2023/09/22(金) 22:05:39.07ID:QYS2Gl5t0
spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinGet winMM, MinMax, ahk_id %spotifyHwnd% ;ウィンドウの最大化最小化を調べる
if (winMM = -1) ;最小化しているなら
WinRestore ahk_id %spotifyHwnd% ;最小化を解除
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%

if (winMM = 1)
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
Send %key%
Return
}

Pause::
{
spotifyKey("!+{b}")
Return
}
2023/09/22(金) 22:05:51.98ID:QYS2Gl5t0
>>564
すみません上書きで消してたみたいでゴミ箱探したりしましたが結局みつからず、たぶんこんなかんじでした
spotifyに直接sendしてないせいですね あと関数やら97%わかってないせいです・・・
5~7行目だけだとSpotifyが最前面にアクティブな時だけ!+{b}が送られない理由がまるでわからくて
if (winMM = 1)以降は意味分かってないのにこうやったら行けた程度のヤツで実際何も分かってないでやってます
2023/09/22(金) 22:08:40.20ID:QYS2Gl5t0
今は電卓のと足してコレで凌いでます Spotifyの上以外では動作するので問題はないです

NumLock::
If WinExist("電卓")
WinActivate, 電卓
Else
Run, calc.exe
return

spotifyKey(key) {
spotifyHwnd := WinExist("ahk_exe spotify.exe")
WinGet winMM, MinMax, ahk_id %spotifyHwnd% ;ウィンドウの最大化最小化を調べる
if (winMM = -1) ;最小化しているなら
WinRestore ahk_id %spotifyHwnd% ;最小化を解除
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend, , %key%, ahk_id %spotifyHwnd%
Return
}
Pause::
{
spotifyKey("!+{b}")
Return
}
2023/09/22(金) 23:03:49.16ID:Z0XFNyal0
これでどうかな

if (winMM = -1) {
WinRestore ahk_id %spotifyHwnd%
}
if WinActive("ahk_id " spotifyHwnd) {
Send, %key%
} else {
ControlFocus, Chrome_RenderWidgetHostHWND1, ahk_id %spotifyHwnd%
ControlSend,, %key%
}
2023/09/22(金) 23:10:08.94ID:aFWrFMGJ0
アクティブになってなかったらアクティブにしてから普通に Send, %key% すればいいんでないの?
2023/09/22(金) 23:16:19.36ID:QYS2Gl5t0
>>568
完璧に動作しました 毎度毎度すみません ありがとうございます
すげー・・・ ビルゲイツかな
2023/09/22(金) 23:17:51.06ID:QYS2Gl5t0
>>569
初心者とかそういうレベルじゃなくて、小学生が大学の講義に来てるような状態なんで汗
そもそもひらがなしか分かってない、みたいな
2023/09/22(金) 23:20:27.07ID:GiZ06ZcB0
>>565-567
これ、なんとなーく動いているようだけど
Chrome_RenderWidgetHostHWND1ってWindow Classでしょ
本来はClassNN、テキスト、コントロールのHWNDのいずれかを指定しなければいけないはずなんだけど
Chrome_RenderWidgetHostHWND1とかIntermediate D3D Window1とか
2023/09/22(金) 23:20:58.65ID:lHAlZ4YK0
一人ウィザードおるよな
何で動くのかじっくり解析しないと判らない
2023/09/22(金) 23:27:39.72ID:GiZ06ZcB0
あっちゃんとClassNNだったか、すまん俺の勘違いだった
忘れてくれ
2023/09/24(日) 14:22:42.43ID:3uyZatfe0
Release v2.0.10 · AutoHotkey/AutoHotkey
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.10

Fixed crashing when a named function hotkey is used after #HotIf.
Fixed numeric literals ending with a dot to not cause line continuation.
Fixed pre-increment/decrement to work with chained array indexing.
Fixed OnNotify/OnCommand applying styles only applicable to OnEvent.
Fixed FileExist/DirExist leaking handles when emptydir\* is used.
Fixed DirExist leaking handles when only files match.
2023/09/24(日) 14:28:51.71ID:rEh5+F890
なんでそんなに不安定なの
2023/09/24(日) 14:29:05.38ID:tlr4nZzK0
ユーザーの移行が本格的に始まったのか
フィードバックが増えたんだろうな
2023/09/25(月) 00:41:40.07ID:Vz/pMkdm0
あるソフト(実行ファイル名をfoo.exeとします)のショートカットを殺しつつ、日本語文字入力中のショートカットは殺したくないのですが、なにか上手くやる方法はあるでしょうか?

例えば、foo.exeのショートカットキーCtrl+Uを無効にしつつ、
foo.exe内のテキストボックスで日本語入力をしているときにはIMEのCtrl+Uの機能を有効のままにしたい、
という感じです
2023/09/25(月) 00:44:10.82ID:Vz/pMkdm0
>>578
間違えて途中で送信しちゃいました

foo.exeのCtrl+Uを無効にしようとして.ahkファイルに
#IfWinActive,ahk_exe foo.exe
^u::
とすると日本語入力中のCtrl+Uまで無効にされてしまい困っているという状態です
2023/09/25(月) 01:22:43.19ID:H0BPCsvf0
Open InterpreterにAHK組み合わせたら本当の意味でのAutoHotKeyが実現できて笑ってる
2023/09/25(月) 08:25:29.27ID:+xBY+Yqs0
>>578

if (!A_CaretX) ;テキスト入力カーソルがオフの場合
処理A

は試しました?
2023/09/26(火) 04:45:18.81ID:8jjFqO/J0
>>581
これ知らなかったので試してみましたがダメでした
多分カーソルがあるときに適用される、という感じですよね?
結局どっちも無効になってしまいます
2023/09/26(火) 09:02:12.31ID:UqTVMUhE0
(´・ω・`).。oO(「foo.exe」とかアプリ名を何で伏せるんだろう…)

・foo.exe側でCtrl+Uの割り当てを無効に変える(別のキーに割り当てる)
・日本語入力中のCtrl+Uの代わりにF6を押下する
・ahkでCtrl+U押下したらF6送出するようにする(foo.exe側のF6に何も割り当てがないこと)

この内のどれかで対処する(自分が思いついたのはこれだけだった)
2023/09/26(火) 10:16:47.57ID:/VFCsiDa0
エロい奴だから
585名無しさん@お腹いっぱい。
垢版 |
2023/09/26(火) 12:10:25.33ID:BqRz5POi0
エロいやつをホットキー入れてまで起動してるやつおらんやろ
2023/09/26(火) 12:12:30.33ID:/VFCsiDa0
全てのテクノロジーはエロを原動力に発展している
2023/09/26(火) 13:03:53.20ID:Y07m41ei0
chromeとかelectron系はキャレットが独自実装だから取得できないよ
昔ACCライブラリで検出しようとして上手く行かなかったわ
X=%Caret_Location.x% Y=%Caret_Location.y%
2023/09/27(水) 22:43:18.37ID:5u5WHwU70
>>583
伏せないほうがいいdすかね?Win版LINEです
2023/09/28(木) 20:08:11.30ID:SIZ6DkpS0
tooltipにemoji表示する方法ありますか?
2023/09/28(木) 21:09:38.26ID:Nf8VDUte0
モノクロやけど普通に出るやろ
ToolTip "🍦", 100, 150
2023/09/30(土) 03:56:22.34ID:EHs419dZ0
IfInString, a, m
hensuu:=1

aという変数の中にmという文字があると変数を変えるっていうだけの話なんですけど

IfInString, a, 1
hensuu:=1

IfInString, a, 2
hensuu:=1

IfInString, a, 3
hensuu:=1
と検出する文字列が複数になったときにやってられないんでループで回そうとしているんですが

list=[1,2,3・・・・]

Loop,% list.Length()
{
IfInString, a, list[A_Index]
hensuu:=1
break

としているんですが、”へんすう”が0のままでbreakされているようです
原因は何でしょうか?
2023/09/30(土) 07:13:52.00ID:aunpj35J0
原因はv1を使ってることです
2023/09/30(土) 07:49:51.39ID:FJNgzxOZ0
>>591
ifの後をブロックで囲ってないからifに関係なくbreakされる

あと
>list=[1,2,3・・・・]
ここと
>, list[A_Index]
ここも直さないと期待通りには動かない
2023/09/30(土) 07:58:11.28ID:nXp5JoSn0
>>591
その例だとこうだろ

hensuu:=0
a:="bred"
list:=["red","green","blue"]

Loop,% list.Length()
{
If InStr(a, list[A_Index]) {
hensuu:=1
break
}
}
msgbox % hensuu

IfInStringは廃止(予定)だから使うべきじゃない
関数のInStrを使う
あと、listの後にコロンが入ってない
文字列なのにダブルクォーテーションでくくってない
2023/09/30(土) 08:11:22.14ID:8kGAhi8Z0
ちゃんとlistの長さ分だけループ周ってるの?
とか
list[A_Index]がちゃんと複数文字列としてループ内で展開されてるの?
とかもあるけど
そもそもの話としてIfInStringじゃなくてcontains、RegExMatch()あたりを使うべき処理かと
2023/09/30(土) 08:16:16.25ID:nXp5JoSn0
普通は検索要素がそう多くなければ正規表現でちょちょってやるような処理よ
フラグを立てるだけならfalseとtrueを使った方が後でソースを見返すときに
分かりやすくていいぞ

hensuu:=false
a:="bred"
if RegExMatch(a,"red|green|blue") {
hensuu:=true
}
msgbox % hensuu
2023/09/30(土) 22:12:19.26ID:WWZtyfbn0
AutoHotkey初心者です。
質問があります。↓のようなスクリプトを書いて実行させました(verは1.1です)。

;「無変換」が単独で押されたら、「Backspace」が押されたことにする。
vk1D::Send,{Blind}{Backspace}
;「変換」が単独で押されたら、「Enter」が押されたことにする。
vk1C::Send,{Blind}{Enter}

通常の「Backspaceキー」と「Enterキー」ですと、キーを押し続けると削除や改行をし続けますが、
このスクリプトだと「無変換キー」と「変換キー」を押し続けても何も反応はなく、
押し上げてやっと1回だけ削除や改行をします。
これを通常の「Backspaceキー」と「Enterキー」と同じように、
キーを押し続けると削除や改行をし続けるようにするにはどのようなスクリプトを書けばいいのでしょうか?
2023/09/30(土) 22:25:35.84ID:FJNgzxOZ0
↑いつもの荒らしです
触らないように
599597
垢版 |
2023/09/30(土) 22:30:58.14ID:WWZtyfbn0
>>598
いいえ、私は荒らしではありません。
本当に分からないことがあったので、質問させていただきました。
600名無しさん@お腹いっぱい。
垢版 |
2023/09/30(土) 22:31:34.90ID:lxiWU+kb0
Blindは大抵変なことになるな
2023/09/30(土) 23:10:22.54ID:g6QA9piE0
>>597
これなんかおかしいよ
Blindで修飾キーの押下の可能性をを示唆しているのに
無変換の単独キーって、よくわからん

例えば、Shift + BS とか Ctrl + BS は普通にエディタ使っていると
人によっては、まあまあ使うんだけど
Shift + 無変換で Shift + BS になってほしいのか、ほしくないのか?
どっち?
602597
垢版 |
2023/09/30(土) 23:37:47.61ID:WWZtyfbn0
>>601
私はAutoHotkey初心者なので、「Blind」の意味もよく分かっていません。
参考にしたスクリプトに「Blind」が入っていたので、自分の方でも入れているだけです。

「Shift+無変換」で「Shift+Backspace」にはなって欲しくないです(必要と感じていないため)。

しかし、「Shift+変換」で「Shift+Enter」にはなって欲しいので、
>>597には省略して書きませんでしたが、実際のスクリプトは↓のようになっています。

;「変換」が単独で押されたら、「Enter」が押されたことにする。
vk1C::Send,{Blind}{Enter}
;「Shift+変換」が押されたら、「Shift+Enter」が押されたことにする。
+vk1C::Send,+{Enter}

省略した理由は、「Shift+変換」は押し続けて反応して欲しいわけではなかったからですが、
今、試してみたところ、↑のスクリプトだと、「変換」単独だと押し続けて反応はしませんが、
「Shift+変換」は押し続けて反応しますね。

私の希望は以下の3点です。
@「無変換」を押し続けると「Backspace」を押し続けたように動作して欲しい。
A「変換」を押し続けると「Enter」を押し続けたように動作して欲しい。
B「Shift+変換」を押したら「Shift+Enter」を押したように動作して欲しい。
2023/09/30(土) 23:42:14.27ID:KnLHxxU/0
>>597
単独で押されたら って書いているということは別の行に
無変換+何かのキーとかのスクリプトを書いているんじゃないの?
2023/09/30(土) 23:47:22.86ID:KnLHxxU/0
>602
{Blind}付けるなら +vk1c:: の行は要らないのでは?
2023/10/01(日) 00:07:27.97ID:aO5V046V0
>>602
無変換だけサンプルで
変換の方はわかると思う

vk1D::BS
+vk1D::Del ;Shift + 無変換でdel
;*^vk1D:: ;Ctrl + 無変換は受け付ける
;他の修飾キーと無変換の組み合わせを無効化
*!vk1D::
*#vk1D::
return

当然だけど、無変換 + a など無変換を修飾キーとしたホットキーを混ぜると正しく動作しない
そういうのも使いたいなあとなると、押下時間などを考慮した多少面倒なコードを書く必要がある
そうすると誤爆したりする可能性があるのでお勧めしない
606597
垢版 |
2023/10/01(日) 00:24:47.36ID:5y0E7yg10
>>603
そうです。別の行に↓のようなスクリプトを書いています。

;「無変換+Q」が押されたら、「Alt+←」が押されたことにする(戻る)。
vk1D & q::Send,!{Left}
;「無変換+W」が押されたら、「Alt+→」が押されたことにする(進む)。
vk1D & w::Send,!{Right}


>>604
今、試してみましたが「+vk1c:: の行」を消すと、
「Shift+変換」を押したら、「Shift+Enter」を押したように動作しなくなります。


>>605
スクリプト、どうもありがとうございます。

別の行に「無変換+何かのキー」のスクリプトを書くと、
「無変換」を単独で押し続けた時に「Backspace」を押し続けたように動作しなくなるということですか?
そうならば、無変換キーを修飾キーとしたホットキーは使い続けたいので、
「無変換」を単独で押し続けた時に「Backspace」を押し続けたように動作して欲しいという希望は諦めることにします。
2023/10/01(日) 00:44:40.72ID:aO5V046V0
>>606
無変換の単独押しでリピートしなくなる
他はいける
組み込んで試してみなよ
608597
垢版 |
2023/10/01(日) 08:03:39.09ID:5y0E7yg10
>>607
おっしゃっていることがよく分かりません。

私は「無変換」を「修飾キー」として使った上で、
「無変換」単独押しをした時は(Backspaceキーとして)「キーリピート」をして削除し続けて欲しいのですが、
それはできないということでしょうか?
2023/10/01(日) 08:09:26.00ID:vJZ6he//0
>>608
無変換+q をやりたい時にまず無変換キーを押すと思うんだけど、
そこから1秒程度経過してしまったら自動的に削除リピートが始まって欲しいと?
2023/10/01(日) 09:14:16.51ID:jCSy+5iI0
キートップの文字を書き換えたかのように、そのキーを完全に置き換える
どんな組み合わせで押しても置き換わって動作する

という挙動をahkで書くのはなかなか大変だけど、
yamyでは1行だったんだよな
2023/10/01(日) 09:37:27.76ID:1MOKFxYN0
>>608
修飾キーっていうのは単独押しでは作用しないから修飾キーなわけでしょ
例外はWinキーで、これは単独だと離したときにスタートメニューが発動するから成立している
これを無変換に当てはめるとすると、離したときにBSが発動してたらキーリピートになりようがない
だから前のレスで書いたように、押下時間でリピートになったり、修飾キーになったりみたいな
仕組みにする必要がある
ただBSなんかは瞬時に発動してくれないとイラつくだけだと思うんだよね
修飾キーのつもりで押したのに文字が消えたとか誤爆もあるし
612597
垢版 |
2023/10/01(日) 10:23:09.43ID:IXVZWApm0
>>609
その通りです。

>>611
分かりやすい例えをありがとうございます。

私の希望は複雑なコードを書けば実現できそうではあるけれども、実現できたところで誤爆の可能性が高くなるのでお勧めしないということですね。
分かりました。実現できたところで不便そうなので、現在のスクリプトのまま使い続けようと思います。
613名無しさん@お腹いっぱい。
垢版 |
2023/10/01(日) 18:48:40.48ID:MIF/cMMY0
クリップボードに画像ファイルがコピーされた時に、それを開いて画像データをクリップボードに持つようにしたいのですが、どう書くのがいいでしょう?
powertoyでもできたりしますか?
2023/10/02(月) 07:50:12.52ID:Y0OCwQiz0
>>613
正:それを開いて画像データをメモリに持つ
誤:それを開いて画像データをクリップボードに持つ
ということ?

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 の場合は、{} が来たら例外的に関数本体として扱われるようになっていて便利だ
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
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
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
2023/10/02(月) 22:31:01.66ID:JWMVaWUA0
>>615
関数の形式で書かせてほしいよね
今でも一応は,で並べて書けるけどループを書こうとすると再帰呼出しになるし
まだ末尾呼び出し最適化がないから、ちょっと気にしながらになるのもなんかな
2023/10/03(火) 17:39:12.06ID:2DNPH3ID0
>>618
あなたがやりたいことは>>581の方法で実装できます
ただし、検索欄等のキャレットは取得できないかもしれないので
その場合は ControlGetFocus でコントロール名を照合するなどの別のアプローチが必要になるかもしれません

蛇足ですが IME_GetConverting() は変換候補ウィンドウが表示されているかどうかを判別しているだけなので
直接入力時や変換未確定(文字列に下線が付いてるだけの状態)時は文字入力中と判断されません
また、IMEの仕様上の問題で別のプロセスから入力コンテキスト(変換中の情報)を取得することはできないので
外部アプリの文字入力中かどうかの判定にはそのアプリに適した様々な方法を試す必要があります
2023/10/03(火) 19:30:40.48ID:759jFrqH0
IME.ahkを有志が一部v2対応してた
https://github.com/kdr-s/ime.ahk-v2/blob/master/IME.ahk

GETとSETのみ
2023/10/04(水) 18:56:24.73ID:tIruFCPa0
重い腰を上げてようやくv2に移行したがv2最高だわ
普通の文法のプログラムが書けるというすばらしさ
v1のサポートさっさと打ち切ってネット上の醜いv1のコード駆逐してほしい
2023/10/04(水) 22:35:25.70ID:kSzEGkao0
>>621
完全版
https://github.com/k-ayaki/IMEv2.ahk/blob/master/IMEv2.ahk
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ヶ月勘違いして数日前に実装されたのかと勘違いして返事してしまった
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
626名無しさん@お腹いっぱい。
垢版 |
2023/10/06(金) 01:45:23.21ID:ev1enbnj0
v2.1 の無名関数を試した
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
```
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 という変数自体が存在しないのでエラーになる
}
```
2023/10/07(土) 19:53:04.05ID:p00Uoc4y0
めんどくさいだけでメリットを感じない
2023/10/08(日) 13:05:54.46ID:SBMAHfMn0
>>628
その辺り一部は2.0.10でも使えて便利
それと別の関数に渡すやつはmyAnotherFunc(a?)でいいのでは

>>630
あったらいいなが自分に来るまでなくてもいいやつなんで
メリットを感じないならスルーで問題ないよ
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)
}
633名無しさん@お腹いっぱい。
垢版 |
2023/10/08(日) 23:51:41.99ID:yx819iOD0
>>631
ほんとだ
myAnotherFunc(a?) でよかった
2023/10/13(金) 20:31:04.41ID:lUFs50Mf0
v2使ってます
ダブルクオーテーションで囲んだ変数を展開する方法はあるでしょうか?
調べてみたら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::
は動きませんでした
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つ以上の同時押しを認識できない場合も多々あるのでそこら辺は環境による
2023/10/13(金) 23:04:18.36ID:ERs/JTAS0
>>634
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::を設定していると動かなくなります
同時併用はできないでしょうか?
2023/10/14(土) 08:08:17.62ID:DXkbEwUP0
>>638
SC079 & i::
if(GetKeyState("SC07B", "P")){
;処理A
} else {
;処理B
}
return
とかどう?
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
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]%
みたいな
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関数でどうとでもなるので別にいらないのでは?とも思う
2023/10/14(土) 17:31:51.42ID:iMxXiXwK0
>>639
ありがとうございます それで完璧に動作しました!

>>640
ありがとうございます アドバイス通り競合していたみたいです
2023/10/14(土) 21:33:45.85ID:3TcJyM+70
>>642
元の質問とは別で>>637の挙げてるドキュメントの話だって説明ないとわかりにくかったね、今度から気をつけるわ
> 手段が目的化 はまさにそれで、パズル感覚でどうにかならないかなと考え始めたんで
Transformについては自分も同意するところ
645633
垢版 |
2023/10/15(日) 13:03:37.69ID:/B+GGiqI0
お返事をくださった皆さん、ありがとうございました
書き忘れてましたが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) "月のはずです。"
), "テストメッセージ")
}

ただし、公式記法と違い文中の"は`"のように明示的にエスケープする必要がある
その他の自動インデント判定等は普通に機能する
2023/10/16(月) 06:27:36.80ID:HnFsiC+R0
なんか無理やりヒアドキュメント使いたいってだけで本末転倒なんよ
最初の例だと

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さしすせそ"
  )
)
2023/10/16(月) 19:09:39.65ID:pPRJ1RqD0
この仕様を見ていると変数展開させて使うって人は
ほとんどいないんだろうなと思うわ
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
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
2023/10/17(火) 22:29:56.60ID:zT0TFsHP0
MouseGestureLならMG_CancelDefBehavior()で右クリックメニューを抑制できるから
AutoHotkeyでも出来るだろうね
2023/10/17(火) 22:39:17.44ID:pYkaTV7l0
>>656
個人的な見解で申し訳ないが…

>ブラウザのマウスジェスチャが効かなくなります。
このように不都合なことが起こりかねないから
1)ブラウザ側のマウスジェスチャだけでやる
か、
2)ブラウザの機能を無効にして外部マウスジェスチャツール(例えばMouseGestureL.ahk)だけでやる
かどっちかにした方が良いよ思うよ

2)だとブラウザの操作がショートカットキーで全て実現できるならマウスジェスチャツールでも実現できるし
 そのブラウザだけじゃなく他のアプリでも個別に設定したマウスジェスチャで操作できる利点があるし
2023/10/18(水) 00:50:07.18ID:6hRvblQL0
>>656
一行目でメニュー抑止してるのに
再び{RButton}発行したらメニューが出るにきまってるだろ
こうすんだよ
SendInput, ^{-}
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
>>666
https://ahkwiki.net/Scripts#.E3.82.A8.E3.82.B9.E3.82.B1.E3.83.BC.E3.83.97.E6.96.87.E5.AD.97
2023/10/21(土) 11:12:42.18ID:670MOFi40
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です
よろしくお願いします
2023/10/21(土) 12:32:12.21ID:qkI01+t50
:= も同様の拘りなんだよな
何故かデファクトスタンダードに逆らってイキりたがる
= は曖昧だから:=と==だけにします、なら判る
= は既によく判らん用途に使ってるからとか基本設計がおかしい
2023/10/21(土) 12:39:38.67ID:MgetEplM0
>>670
独自つーかPowerShellに合わせただけだろ
ちょっと前に改行位置にいちゃもん付けてた人いたけど同じ人?

>>671
これもPowerShellに合わせた結果っぽいけど
PowerShellもエスケープの仕方色々あってperl式もできるけど正式には「`"」だな
更新の過程でそうなったのかもしれんけどPowerShellの歴史には詳しくないので分からん
AHKv2では「`"」になったな
2023/10/21(土) 12:42:29.00ID:uwWEvv0P0
v1の頃に決まった話になると、そんな小さいことに目くじら立てるどころじゃない気が
20年くらい前で他の同系統の言語も同じようなものとはいえツッコミどころが山盛りでは
2023/10/21(土) 12:47:14.39ID:MgetEplM0
>>672
基礎すぎてほぼスレ違いなんで「コーディング インデント」とかで検索して
ちなみにAHKはインデント必須な言語ではない
2023/10/21(土) 15:26:28.94ID:Ls2E16c40
>>676
レスありがとうございます
見やすくする為でAHKは必須では無い
じゃあ1個くらいで良いかな
どうもありがとうございました
2023/10/21(土) 21:30:29.25ID:9BoGHaTl0
見やすくというか
読みやすくというか
理解しやすくというか
2023/10/21(土) 23:29:27.11ID:Ls2E16c40
>>678
レスありがとうございます
どこからどこまでがどれか、みたいな事を見やすくして理解しやすくするって事ですよね
680名無しさん@お腹いっぱい。
垢版 |
2023/10/23(月) 03:03:06.70ID:WlJrDHiJ0
\\\\のエスケープ地獄は、たしかにちょっとつらい
なので ` でエスケープする妥当性はわかる
けど、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ならキーコード拾えそうなので質問してみました
よろしくお願いいたします
684名無しさん@お腹いっぱい。
垢版 |
2023/10/24(火) 02:56:41.93ID:LXOelMg+0
>>683自己レス
どうやらこのFnキーはPCにはキーコードを発出しておらず、キーボード内で完結しているみたい
こりゃPC側で何やっても無理ですね
レノボに要望出すくらいかできることはなさそうです
お騒がせしました
685名無しさん@お腹いっぱい。
垢版 |
2023/10/24(火) 03:07:23.96ID:XK3z8D+O0
>>682
HTML を表示できるコンポーネントが使えたら便利そうだね
2023/10/24(火) 07:13:30.38ID:35rovyz10
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メモリとかクラウドとか理由はいろいろあるんだろうけど
2023/10/24(火) 11:02:12.95ID:Hn9xTC4v0
うちの会社はフリーアドレス化したのでノートじゃないと無理だな
キーボード繋がせて欲しい
アプリケーションキーが存在しないとか意味判らん
2023/10/24(火) 11:42:22.74ID:hLY2TQAp0
AppsKeyは右クリが壊れた時に使ってたわ
あの時はアプリによっては右クリでしか呼び出せないメニューがあることに気づいいて
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
2023/10/24(火) 12:41:50.16ID:acf7AARQ0
>>690
BTキーボードくらい繋がるでしょ
694名無しさん@お腹いっぱい。
垢版 |
2023/10/24(火) 14:02:16.64ID:7EB3AWV+0
キーAを押しながら、キーBを押すって動作をスクリプトに書いた場合、
Aを押した状態でB以外の入力を受け付けなくなるのって回避方法ある?
2023/10/25(水) 00:46:51.16ID:xHwpED+J0
>>685
あった
けどtridentつかってるw
https://github.com/G33kDude/Neutron.ahk
696名無しさん@お腹いっぱい。
垢版 |
2023/10/25(水) 07:18:48.75ID:0tfdF69F0
>>694
キー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
2023/10/26(木) 20:39:28.63ID:stdJKV+p0
その第一引数はなんなの
2023/10/27(金) 17:11:32.49ID:W6kx2B0a0
cmdでif必要なときはbatかahkで書いてたけど、|使って論理演算子作れるの発見して驚愕してる
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
2023/10/28(土) 04:22:30.30ID:MaaLhlYz0
|単体のパイプだとわからないけど、&や&&や||でコマンドライン1行に複数コマンドを書く話?
それならAutoHotKeyじゃなくてWindowsのcmdの解説だからwikiに書いてないのでは
702名無しさん@お腹いっぱい。
垢版 |
2023/10/28(土) 05:36:10.86ID:JXkBTMwt0
>>699
もう少しわかりやすく書いてほしい
2023/10/28(土) 11:18:23.74ID:Ti0/3LdE0
>>701
そうそう
findstrやgrepして分岐させるの一行で書けるのはでかい
もっと早く知りたかったぜ…
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と書いても動作しません。
2023/10/30(月) 11:09:53.57ID:AK80qRlt0
セットアップウィザードだとAHKが効かないんだけど、これってそんな低レイヤなやつなの?
(例:サクラエディタのインストーラ)
2023/10/30(月) 20:33:09.44ID:q/qv9w0o0
ブラウザ上の共有ボタン?から開かれる文字の不要部分を削除して開く様にって出来ますか?
例えばニコ生でタイトル横のTwitterの鳥をクリックすると別タブ(デフォはウインドウかポップアップだったっけ?)でそのページのタイトルやURLが入ったツイート画面が開かれます
URL自体がそれを表してるのでURLから毎回同じ不要な部分(文字)を削除して開かれれば可能という事になります

ニコニコニュース実況
で鳥をクリックすると
https://twitter.com/intent/tweet?url=https%3A%2F%2Flive.nicovideo.jp%2Fwatch%2Flv343242011%3Fref%3Dsharetw_large&text=%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E5%AE%9F%E6%B3%81%20%2F%20%E3%83%8B%E3%82%B3%E7%94%9F%E8%A6%96%E8%81%B4%E4%B8%AD&hashtags=%E3%83%8B%E3%82%B3%E3%83%8B%E3%82%B3%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9&original_referer=https://live.nicovideo.jp/watch/lv343242011?kind=focus_onair
がアドレスバーに入った物が開きます(アドレスバーでは日本語の所は日本語)
「 / ニコ生視聴中 」と「?ref=sharetw_large」の二ヶ所を毎回消しているので自動で消したい
「 / ニコ生視聴中 」の部分は「20%2F%20%E3%83%8B%E3%82%B3%E7%94%9F%E8%A6%96%E8%81%B4%E4%B8%AD」かな
やり方ありましたらどうかご教授よろしくお願いします
https://twitter.com/thejimwatkins
2023/10/30(月) 20:47:48.43ID:qNduaTef0
>>708
それは AHK にやらさせるよりはブラウザの拡張とかにやらせる方がエエと思うで。
例えば Chrome系なら Redirector とかで正規表現で処理して文字列の置換、変換を
やらせるとか。
2023/10/31(火) 01:02:48.10ID:VQwByWJT0
ボッタクリ価格じゃなければほしかった
3kくらいの安物kbでどっかパクってくれ
PFU「HHKB Studio」の店頭展示スタート、マウスやジェスチャー機能を搭載 - AKIBA PC Hotline!
https://akiba-pc.watch.impress.co.jp/docs/news/news/1542840.html
https://asset.watch.impress.co.jp/img/ah/docs/1542/840/a3.jpg
2023/10/31(火) 02:06:18.28ID:6Eky0BOu0
>>709
レスありがとうございます
そっちの方が使い方として合ってるんですね
調べてみます、ありがとうございました
2023/10/31(火) 07:56:28.30ID:ODQQeTIS0
>>706
コード見せられてもアプローチ間違いか文法ミスくらいしか指摘できないので
その試行錯誤を全部書いてもらった方がアドバイスしやすい

・キー割当を1キー(ファンクション系)にする
・プレイヤーのどのコントロールならショトカが効くか調べてそのクラス名をwindowspyで見る
・アクティブ状態でうまくいくか
・detecthiddenwindowなしでうまくいくか
・sendを試す
・ahk_proccessとか全部試す

予想はクラス名が間違い
2023/10/31(火) 18:42:02.72ID:y7iEy6x60
>>704
キーリピートの開始遅延時間の話なのでWindowsの設定を変更するか、AHKでホットキー押下時に連打するスクリプトを書いてください


>>706
結論だけ先に書くと

ControlFocus, , ahk_class PotPlayer
ControlSend, , {Space}, ahk_class PotPlayer

コントロールのフォーカスによってキー操作の挙動が変わるアプリの場合
ControlSendでコントロール名を指定していたとしてもフォーカスがあるコントロールのキー操作が優先されます
通常はウィンドウをアクティブにした際に、フォーカスはアプリ側でデフォルトコントロールにセットされ直されるので、大抵の場合は問題にはなりませんが
ウィンドウを非アクティブにした場合は、フォーカスは最後にセットされていたコントロールが保持したままになっています
よって、フォーカスをセットし直してやる必要がある場合があります


>>707
何がしたいのか分かりませんが普通に使えます
思い当たる要因があるとすれば、AHKの管理者権限の有無、アンチウイルスソフトの干渉などです
2023/10/31(火) 23:22:24.75ID:Y3UYTU1P0
>>713
管理者権限だったわ
UAC切ってるから大丈夫だと勘違いしてた
もうAHKはデフォで管理者権限で使うことにするわ
2023/11/01(水) 12:03:28.13ID:F+Xo6EIO0
タスクマネージャーも同じだった
普段何気なく使うツールでも権限レベル高いやつって意外とあるんだろうな
2023/11/01(水) 12:07:14.56ID:ByqGOUsx0
>>695
ライブラリ使わないとこうやって書くらしい

html =
(
<form id="form">
Name1: <input type="text" name="name1" id="name1" autofocus required><br>
Name2: <input type="text" name="name2" id="name2" required><br><br>
<input type="submit" id="submit" value="Submit">
</form>
)
gui, add, ActiveX, w300 h100 vWB, about:<!DOCTYPE html><meta http-equiv="X-UA-Compatible" content="IE=edge">
WB.document.write(html)
guicontrol, focus, WB

GetElem := ObjBindMethod(WB.document, "getElementById")
GetElem.Call("name1").focus()
gui, show

GetElem.Call("form").addEventListener("submit", Func("Submit"))
return

Submit() {
global GetElem
value1 := GetElem.Call("name1").value
value2 := GetElem.Call("name2").value
Gui, Destroy
MsgBox % "Name1: " . value1 . "`nName2: " . value2
}
717697
垢版 |
2023/11/01(水) 23:23:03.60ID:mN14R+DL0
>>712
返答ありがとうございます。https://www.autohotkey.com/boards/viewtopic.php?t=23992などを見たりして、ClassNNの項目を記入したり。
ControlSend,Afx:10000000:b:00010011:01900011:000000003,{Space},ahk_class PotPlayer
ControlSend,,{Space},ahk_class PotPlayer
ControlSend,AfxWnd140su1 AfxWnd140su2 AfxWnd140su3 AfxWnd140su4 AfxWnd140su5 AfxWnd140su6 AfxWnd140su7 AfxWnd140su8,{Space},ahk_class PotPlayer
ControlSend,AfxWnd140su8,{Space},ahk_class PotPlayer
ControlSend,ahk_parent,{Space},ahk_class PotPlayer


>>713
なんと!数年来の夢が、今まさに私の目の前で、現実として起こっているではありませぬか。某サイトのControlSendの項目ばかり読んでいましたので、ControlFocusなるものあって、それが必要などとは、初心者には思いもよりませんでした。検索してもなかなか解決案が見出せず、半分諦め、そのまま数年が過ぎ、3年ぶりの5ch書き込みとなったわけです。端的で丁寧な解答ありがとうございました。

秋の頃
かの地にて
数年悩まされし問題解決す
われ うれしきやうれし
かれ すぐれしやすぐれし
ここ すばらしきやすばらし
718697
垢版 |
2023/11/01(水) 23:23:09.14ID:mN14R+DL0
>>712
返答ありがとうございます。https://www.autohotkey.com/boards/viewtopic.php?t=23992などを見たりして、ClassNNの項目を記入したり。
ControlSend,Afx:10000000:b:00010011:01900011:000000003,{Space},ahk_class PotPlayer
ControlSend,,{Space},ahk_class PotPlayer
ControlSend,AfxWnd140su1 AfxWnd140su2 AfxWnd140su3 AfxWnd140su4 AfxWnd140su5 AfxWnd140su6 AfxWnd140su7 AfxWnd140su8,{Space},ahk_class PotPlayer
ControlSend,AfxWnd140su8,{Space},ahk_class PotPlayer
ControlSend,ahk_parent,{Space},ahk_class PotPlayer
>>713
なんと!数年来の夢が、今まさに私の目の前で、現実として起こっているではありませぬか。某サイトのControlSendの項目ばかり読んでいましたので、ControlFocusなるものあって、それが必要などとは、初心者には思いもよりませんでした。検索してもなかなか解決案が見出せず、半分諦め、そのまま数年が過ぎ、3年ぶりの5ch書き込みとなったわけです。端的で丁寧な解答ありがとうございました。

秋の頃
かの地にて
数年悩まされし問題解決す
われ うれしきやうれし
かれ すぐれしやすぐれし
ここ すばらしきやすばらし
2023/11/02(木) 13:04:33.36ID:Ak5m1K3y0
惰性で窓使いの憂鬱、yamy、のどかと長年使い続けてきたんだがAHKに移行したけど最高だなこれ
もっと早く使うんだった
なんとなくキーボードフィルタドライバが最強と思ってたけど別にそんなことなかったわ
2023/11/02(木) 19:09:53.60ID:sleiHkfU0
そうそう変なことは起きないけど、やっぱりのどかより安定性は落ちるだろう
2023/11/06(月) 18:08:04.59ID:/0Einrp10
>>713
ありがとうございます解決しました
思ったよりも複雑でした
; This script sends cursor arrow keys without an initial delay (or with customized delay)
; Alternative: HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response (needs reboot after change)
#Requires AutoHotkey v1.1.33
timeoutSec := 0.08 ; To repeat, the key must be held for this number of seconds
delay := 35 ; Delay (ms) after each keystroke sent

#UseHook
Up::
Down::
Left::
Right::
hk := A_ThisHotkey
SendEvent % key := "{" hk "}"
SetKeyDelay delay
KeyWait % hk, % "T" timeoutSec
If ErrorLevel ; Key was held
While GetKeyState(hk, "P")
SendEvent % key
Return
#UseHook Off
2023/11/09(木) 16:15:51.39ID:JiGuppz+0
出来なくて困っていること
=CLCLというソフトウェアでメニューを出すショートカットキーをautohotkeyのスクリプトに組み込みたいが
そのキーをautohotkeyで発生させても、CLCLがメニューを出してくれない、無反応

どうやればいいのか教えて戴けないでしょうか?

元々のやりたいこと。
=現在クリップボードに入っている内容と一つ前にクリップボードに入っていたものを並べて、一度にコピペで簡単にワンキーで出したい。
2023/11/09(木) 17:57:11.75ID:tg51kBeX0
できた
global PREV := Clipboard
OnClipboardChange("clichan")
Exit
a::
try Menu, m, DeleteAll
Menu, m, Add, % shoten(Clipboard), exec
Menu, m, Add, % shoten(PREV), exec
Menu, m, Show
Return
exec() {
MsgBox, % A_ThisMenuItemPos = 1 ? Clipboard : PREV
}
shoten(s) {
Return, RegExReplace(s, "s)^.{20}\K.+$", "…")
}
clichan() {
static tmp := Clipboard
PREV := tmp
tmp := Clipboard
}
2023/11/12(日) 01:04:15.97ID:kQQD0v9s0
キーに割り当てた1回押しのスクリプトが動作しないんだけど原因わかりませんか?
例えばこれでr長押しでctrl+rは入力されるんだけどr短押しは何も入力されない事になってる
r::
KeyWait, r
If (A_TimeSinceThisHotkey < 500)
{
Send, r
}
Else
{
Send, ^r
}
return


シンプルにこれでもr押しても何も入力されてない
r::
Send, r
return


こっちはr押すとちゃんとtが押される
r::
Send, t
return
2023/11/12(日) 01:27:22.14ID:KS4GMiu40
>>724
はい、サンプル・・・というか、これ使えば良いんだよ
サンプルコード集 - AutoHotkey Wiki
https://ahkwiki.net/SampleCodes
1.1 1つのキーに3種類以上の動作割り当て
2023/11/12(日) 02:24:03.58ID:kQQD0v9s0
>>725
ありがとうございます
理屈はよくわからないけど#UseHookを付けたら今までのもちゃんとr → rが動作するようになりました
2023/11/12(日) 04:00:38.94ID:J2mV0aOi0
>>726
Send, rがこのホットキーr::自身を押したことになってたのが原因
#UseHookを書くとそれを阻止できる
2023/11/12(日) 12:41:38.94ID:vUMDSFHH0
おもろいソフト。msdoc見てもdllcall書けない人向けかな
https://ramensoftware.com/winapiexec
729名無しさん@お腹いっぱい。
垢版 |
2023/11/13(月) 04:41:07.39ID:P7W13EFk0
AHK以外からちょっとwinapiを使いたい場合等にも便利そうだね
2023/11/13(月) 11:12:55.08ID:LViqGPzi0
スリープさせたい時とか、exeと引数では書けなくてdllにパラメータ渡さないといけない
そういうことをするプログラムを書いてコンパイルしてもいいけど、スクリプト的に書けた方が楽
2023/11/14(火) 00:13:36.65ID:hYjyzviz0
>>730
それもうAHKでやる必要ある?w
dllcall好きに書けるのいいなー
732名無しさん@お腹いっぱい。
垢版 |
2023/11/14(火) 08:51:40.32ID:4ufkw/A60
俺はスリープをAHKっぽくこうやってる
WinActivate,ahk_class Shell_TrayWnd
Sleep,100
Send,!{f4}
Sleep,100
Send,{Up}{Enter}
2023/11/14(火) 08:57:28.13ID:pSQoRZoU0
そもそも、rundll32.exe になんでその機能が無いんだ
2023/11/15(水) 00:23:40.26ID:2HG+ST0K0
try
 foo()
catch
 ; ignore




bar()
baz()

というバグに気がつくのに1週間かかった
挙動が謎すぎて頭おかしくなりそうだったぜ
2023/11/16(木) 01:40:35.11ID:Ssm6wYKa0
>>722
CLCLって古臭いUIだし過去のソフトと思ってたら今も更新続いてるんだな
偉い
2023/11/16(木) 03:07:08.84ID:iAWmDVf40
>>728
7+ Taskbar Tweakerの作者か!
超絶ケチな自分が人生最初で最後のDonateをした人だわ
2023/11/16(木) 08:06:45.15ID:xoUSj9v/0
>>736
俺も長年使ってるわw

ラーメンソフト w
2023/11/16(木) 08:17:58.35ID:uao/GslT0
Textifyは使えるかな
この手のソフトはいろいろあるけど、大抵動作がおかしい
2023/11/16(木) 08:30:53.13ID:uao/GslT0
あー、インストーラーの奴か
パス
2023/11/16(木) 14:30:14.59ID:OSkkf/ew0
>>738
TextifyはMSAAでテキスト取得してるから同じことAHKでACCと組み合わせてやってるわ
741名無しさん@お腹いっぱい。
垢版 |
2023/11/23(木) 04:01:16.28ID:xgRY4R0+0
本日の年と日付をいれるショートカット
FormatTime,TimeString,,yyyy_MMdd
Send,%TimeString%_
Return
で動いているのですが、MicrosoftIMEだと何故か全角になってしまいます。(2023_1123)
googleimeだと2023_1123_ときちんと半角になるのですが、常に半角でインサートする方法ないでしょうか?
IMEの設定オートコレクトで全てを半角で入力の設定をしましたが駄目でした。
宜しくお願い致します。
742名無しさん@お腹いっぱい。
垢版 |
2023/11/23(木) 04:55:43.77ID:xgRY4R0+0
すいません解決しました。
2023/11/23(木) 07:45:52.99ID:M1PYCksN0
どうやったの?
744名無しさん@お腹いっぱい。
垢版 |
2023/11/23(木) 08:02:34.98ID:xLQ95KaJ0
Clipboard使うとか?
2023/11/23(木) 08:38:58.88ID:wJkYm+IG0
日付と時刻はexcelがctrl-;とctrl-:で、
エディタも同じアサインにしたので、
それ以外に入力したい局面が無い
746名無しさん@お腹いっぱい。
垢版 |
2023/11/23(木) 16:26:51.70ID:FQJI0Qn00
age
2023/11/23(木) 17:06:17.48ID:wJkYm+IG0
回避しとる
2023/11/24(金) 18:36:54.89ID:f1zdFUGD0
日付は
datetime;;
date;;
time;;
fdatetime;;
fdate;;
ftime;;
でやってるな
~;;でhotstring展開は何かと便利
誤爆もない

:O:date;::
FormatTime,s,,yyyy/MM/dd
Send % s
return
749名無しさん@お腹いっぱい。
垢版 |
2023/11/24(金) 19:45:30.47ID:4Yiy9myC0
>>748
:O:date;::
FormatTime,s,,yyyy/MM/dd
Send % s
return
これでいけるの?エラー出るんだけど
2023/11/29(水) 20:42:43.56ID:we/lrGpo0
すみません、A_TickCountの事でお尋ねします。
If A_TickCount 30000msから60000ms
までなら指定コマンドを実行したいのですが、どう記述していいかわかりません。
よろしくお願いします。
2023/11/29(水) 21:15:00.37ID:we/lrGpo0
わかりました、Betweenでした。
752名無しさん@お腹いっぱい。
垢版 |
2023/12/05(火) 11:27:36.94ID:Wh9Ksc6F0
FormatTime,TimeString,,yyyy_MMdd
Send,%TimeString%_
Return

日付を入れるショートカット、全角だと全角入力になっちゃうのってどうしようもないのかな?
2023/12/05(火) 11:42:19.35ID:0R4KhECr0
方法1 IMEをオフにしてからSendする
方法2 Clipboardに入れてctrl+vをSendする
2023/12/05(火) 13:32:31.78ID:IPuO4dhM0
かな入力だからIMEは頻繁にon/offするけど、ローマ字の人は基本的にずっとonだしな
755名無しさん@お腹いっぱい。
垢版 |
2023/12/05(火) 15:01:25.96ID:yv4SlF+C0
で、
v2に移行していいのか?
不具合とかない?

移植がたいへんだな
756名無しさん@お腹いっぱい。
垢版 |
2023/12/05(火) 17:39:57.13ID:Wh9Ksc6F0
>>753
ありがとうございます。
クリップボードに入れるとはどういう記述を追加すればいいのでしょうか
2023/12/05(火) 18:48:25.60ID:0R4KhECr0
>>756
Clipboard := TimeString
2023/12/06(水) 03:59:49.87ID:hcY1PgK80
○やりたいこと

置換前と置換後の文字を指定した上で、

aaa,aaa

aaa
aaa (,→改行) としたい


○試したこと

↓がんばって書いたもの
^+f::
Send, ^c
ClipWait, 1
A := Clipboard
InputBox, SearchText, 置換前の文字, 置換前の文字を入力してください。
☆InputBox, ReplaceText, 置換後の文字, 置換後の文字を入力してください。
★Clipboard := RegEXReplace(A, SearchText, ReplaceText)
ClipWait, 1
Send, ^v
return

☆の時に  `n "`n" `r`n Shift+Enter など試したが全ボツ・・

★ReplaceText→"`n" としたら改行されたが、これだと特定の検索置換しか使えない・・


v1.1.34.03です・・ よろしくお願いします・・
2023/12/06(水) 07:35:38.30ID:QCf+VSRH0
>>755
(不具合は)ない。v1からの仕様変更は山程
移植は大変だが気持ちいいぞ行数減るの
2023/12/06(水) 10:04:04.46ID:h7vdOkf00
>>758
aaaが何を指しているのかよくわからんが
Clipboard:= RegEXReplace(A, SearchText, RegEXReplace(ReplaceText, ",", "`n"))
かな
761名無しさん@お腹いっぱい。
垢版 |
2023/12/06(水) 10:36:13.53ID:SB+WZnS00
>>759
そうなんだ。
不具合がないなら移植するか…

なんか上の方のレスで、
あーだこーだ言ってたのは何だったんだろう…? w
2023/12/06(水) 11:18:47.47ID:1AjfeAYD0
>>758
A = aaa,aaa
InputBox, SearchText, 置換前の文字, 置換前の文字を入力してください。 ;「,」
InputBox, ReplaceText, 置換後の文字, 置換後の文字を入力してください。 ;「,`n」
Transform, ReplaceText, Deref, %ReplaceText%
A := RegEXReplace(A, SearchText, ReplaceText)
MsgBox, %A%
2023/12/06(水) 11:24:02.59ID:1AjfeAYD0
>>761
行数が減ったからって便利になるわけじゃない
仕様変更でv1と同じようにできなくなったことも多い

よって移行するメリットがなにひとつない
2023/12/06(水) 11:27:49.59ID:qXT5hvVy0
v1の存在そのものがデメリット
最初からv2だったらどんなに良かったか
2023/12/06(水) 11:29:39.45ID:QKeYlogm0
修飾キー押しっぱなし問題はv2だと解消されてる?
単に文法が変わっただけなら移行する理由がない
2023/12/06(水) 11:33:59.45ID:qXT5hvVy0
同じ機能を奪い合って矛盾が起きてるので本質的に解決できない
のどかとかに乗り換えるしか
767名無しさん@お腹いっぱい。
垢版 |
2023/12/06(水) 12:16:34.66ID:SB+WZnS00
>>763
え?

v1でできて、v2でできないことなんてあるの?
イヤだな…
768名無しさん@お腹いっぱい。
垢版 |
2023/12/06(水) 12:17:50.85ID:SB+WZnS00
>>765
ん?

結局、不具合はあるの?
どっち?
2023/12/06(水) 16:52:13.80ID:hcY1PgK80
>>760
aaa,aaaは例文のつもりでした
どう質問すればいいか言語化が難しくて、所々エスパー気味になってしまって申し訳です・・

>>762
できました!!嬉しい!!感謝!!

皆さんありがとうございました!!
2023/12/06(水) 19:11:05.84ID:XshpwR0v0
いわゆる「修飾キー押しっぱなし病」について、
ネット上では、Sendの後にSleepを入れればいいとか(やってみたが効果は感じなかった)、
InstallKeybdHookを指定すればいいとか(これは効果を感じた)、
いろいろ書いてあるが、
単純に、修飾キーをSendした後にはその修飾キーのkeyupを送ればいいんじゃね?と思って、

SendKey(str){
Send(str)
Sleep(5)
if InStr(str,"#")
Send("{LWin Up}{RWin Up}")
if InStr(str,"^")
Send("{Ctrl Up}")
if InStr(str,"+")
Send("{Shift Up}")
if InStr(str,"!")
Send("{Alt Up}")
}

こんな関数をSendの代わりに使うようにしたら、
InstallKeybdHookを指定しなくても押しっぱなし病消えたっぽい
単にまだ出てないだけかもしれないけど
2023/12/06(水) 20:50:32.37ID:ock+wqmq0
海外の人達ってデバイスドライバ系のキーバインドソフトが必要になったら何使ってるの?
まさかのどか?それはないか
2023/12/06(水) 23:00:59.56ID:V1ueBJwG0
>>758
頑なにバグまみれの古いバージョンを使い続けるのは罰ゲームなのか苦行なのか
2023/12/07(木) 07:26:22.44ID:xZsnzk+n0
1はエラーダイアログが出てもソースにジャンプできないのが駄目すぎる
せめてフルパスと行番号が表示されてればAHKでジャンプする機能実装できるんだけど
なぜか正確なパスがわからないようになってるという
なんで最後まで放置したのか意味不明すぎる
774名無しさん@お腹いっぱい。
垢版 |
2023/12/07(木) 07:56:47.39ID:4oXjRSz70
プログラミングに慣れてる人は v2
プログラミング初心者は v1
を使うのがよいかもしれない

v2 の方が圧倒的に書きやすいけれど、
初心者にとったらどちらもチンプンカンプンだろうし、ネットに情報の多い v1 の方がむしろ書きやすいかもしれない
775名無しさん@お腹いっぱい。
垢版 |
2023/12/07(木) 09:39:32.95ID:4X2vwe/Q0
>>774
それはどうでもいいんだが、
v2に、回避不能な不具合があるのかどうか?
2023/12/07(木) 10:27:45.00ID:ecweuucs0
未知のものはあるかもしれんな
777名無しさん@お腹いっぱい。
垢版 |
2023/12/07(木) 10:54:49.82ID:4oXjRSz70
>>775
v1 に回避不能な不具合があるのかどうかは気にしないの?
2023/12/07(木) 11:37:43.11ID:VWr4EXTG0
>>775
v1とv2ははぼ別物と考えた方が良いよ

v1で出来てたことをv2で再現するのも少し手間掛かるからv2のソースはv1ほど公開する人が少ない状況だから
2023/12/07(木) 11:51:12.24ID:ecweuucs0
コード的には別物だけど、中身は同じ
できなくなることはないし、新しくできるようになることも無い

じゃあ古くていいのかというと、何でこんなに次から次へと新しい言語ができるかという話で
いけてない言語で書くのは苦痛なんだよな
ネットで拾って流用するだけの人はv1の方がいいだろうけど、
自分で書く人はv2一択
780名無しさん@お腹いっぱい。
垢版 |
2023/12/07(木) 11:56:43.42ID:4X2vwe/Q0
別物とは?
何的な意味で?

構文はどうでもいい
781名無しさん@お腹いっぱい。
垢版 |
2023/12/07(木) 11:58:06.43ID:4X2vwe/Q0
>>779
だね。
C++より難しくなければどうでもいいw

どうせv1は廃止されるんだし。
v2に不具合がなければいいがw
2023/12/07(木) 12:01:14.23ID:flxu8Gt70
>>780
いい加減自分で文書読めよ。
783名無しさん@お腹いっぱい。
垢版 |
2023/12/07(木) 12:06:23.63ID:4X2vwe/Q0
そもそも、なんでv2を作ったのか?

性能、機能アップ?
v1の構文が古くさいから?
2023/12/07(木) 13:43:20.43ID:VWr4EXTG0
もう過ぎ去った話を周回遅れで繰り返しておもろいか
2023/12/07(木) 14:10:35.73ID:zp9wGmxo0
>>783
てすと
テスト
786名無しさん@お腹いっぱい。
垢版 |
2023/12/07(木) 16:28:20.07ID:4oXjRSz70
>>781
> v2に不具合がなければいいがw

不具合はあるよ
更新履歴を見てみるといい
君が使っているソフトウェアもすべて不具合はあるよ

なぜ殊更にAHK v2に対してだけ不具合皆無を求めるの?
2023/12/08(金) 11:55:38.47ID:1pX0izMW0
>>786
v2に移行してやっていきないから何でしょ
v2のことしか考えてないとv1でやれっていう話に意味ないし
2023/12/09(土) 07:52:08.43ID:TVyjuGng0
>>779
v2推しの人っていちいち性格悪いね
2023/12/09(土) 12:37:47.79ID:7duhdXWM0
根拠乏しすぎて草
2023/12/10(日) 19:12:18.47ID:AHgvJVdF0
性格悪いっていうより生産性が低い
2023/12/10(日) 19:23:26.42ID:8ZOc5+zo0
生産性が低いっていうより体臭がきつい
2023/12/10(日) 22:48:02.70ID:xfgnMYZ20
体臭キツくても別に開発には困らんしな?
2023/12/11(月) 00:25:17.48ID:1DllKDyi0
スクリプトの起動時間を知る組み込み変数はありますか?
2023/12/11(月) 00:40:04.92ID:5t61Ow810
直接のやつはないけど、そのものズバリのサンプルが組み込み変数の項目に出てるでしょ
まずドキュメントを読んでから質問しよう
2023/12/11(月) 01:27:02.82ID:1DllKDyi0
わかりました
2023/12/13(水) 10:55:33.03ID:56JF4SPR0
2.0になって gosub ~ return が非対応になったときいて、オッチャンちょっとショック。
こんな化石のような命令を使うなって事なんだろうけど。
2023/12/13(水) 11:03:15.38ID:07I6X+Oi0
関数で書けばいいだけじゃない
そっちの方が汎用性もあるし安全だし
スコープだけちょっと気を使う必要があるけど
2023/12/13(水) 11:23:11.85ID:56JF4SPR0
ホンマその通りなんだけど、大昔の悪癖が抜けなくて。
関数化は後にして、とりあえずラベル付けてルーチン内の尻に置いておこうとやっちゃうんだよな。
2023/12/13(水) 12:46:16.21ID:SgVPAYyz0
>>798
こういうオッチャンだとみんな優しくなれるんよな
対応しろ!おかしい!とか怒鳴って現状変更迫る老害は不殺型テロリストだと思ってる
2023/12/13(水) 12:55:23.57ID:Je2XmAHf0
関数の中でタイマー呼んで、そのタイマールーチンで関数内の変数使いたい時
関数内ラベルなら問題ないけど、これを関数化しろと言われてもどうやればいいかわからない
2023/12/13(水) 13:30:43.96ID:pIpQWCSE0
ただのタイマーがそんなもん使うのがそもそもおかしい
特殊機能付きタイマーなら、そういうインターフェースに設計すれば自然と変数が渡る
2023/12/13(水) 13:32:03.30ID:pw/YUwfp0
v2だけど関数をそのまま書けるよ
Test() {
 a := "test"
 Timer() {
  ToolTip a
 }
 SetTimer Timer, -1
 Sleep 3000
 ToolTip
}
Test()
2023/12/13(水) 15:53:02.85ID:7D73zVIY0
CPU負荷かかるとミス起きるなぁ
高レベル側での処理だから仕方ないか
804名無しさん@お腹いっぱい。
垢版 |
2023/12/13(水) 17:02:27.72ID:1Si6H8v70
>>802
ちなみにこれはTimer()がクロージャーなので循環参照には気を付けてね
805名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 09:51:07.21ID:2brz0lxO0
で、
結局、v2に移行してええの?
問題ない?
2023/12/14(木) 09:58:05.13ID:/DAs7gWY0
自分で書く人なら自分で判断できるし、自分で書かない人は移行不要
807名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 13:23:59.78ID:RUDdyo9z0
>>805
プログラミング初心者はまだv1の方がいいかも
ネットの情報もv1のものが多いし
808名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 14:12:44.31ID:2brz0lxO0
>>807

C++やPythonより難しくなければ気にならない。
809名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 14:13:43.24ID:2brz0lxO0
>>807
情報も、
英語サイトしか見ないので。
2023/12/14(木) 15:29:39.49ID:Rp7ue7zA0
C++より難しいものあるかよ
英語サイトしかみないならReddit見てこいや
2023/12/14(木) 17:45:28.76ID:3JCbgbBy0
C++とPython同列にする辺り分かってないような気がするが
812名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 17:49:56.32ID:2brz0lxO0

と、バカがゴミレス
2023/12/14(木) 17:56:14.00ID:JV6NPWjT0
こいつ質問のふりしておちょくる手口の常連荒らしじゃん
814名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 18:01:23.62ID:2brz0lxO0

またゴミレスバカかよ…
2023/12/14(木) 18:22:02.25ID:HgptBGdi0
そのようだ
816名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 18:30:25.79ID:RUDdyo9z0
>>809
と言いつつ5chに頼ってる感じ?
>>805
ここで訊いてるような初心者なら、v1でないと難しいと思う
2023/12/14(木) 19:47:36.79ID:LKl14BGd0
一連のレスしておいてどうしたら自分が「ゴミレスバカ」でないと思えるの?
すごいね
818名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 20:42:19.34ID:2brz0lxO0
>>816

またゴミレス

バカが…
819名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 20:42:43.11ID:2brz0lxO0
>>816

こいつもゴミレス

バカが…
820名無しさん@お腹いっぱい。
垢版 |
2023/12/14(木) 20:43:23.30ID:2brz0lxO0
>>817

こいつもゴミレス

バカが…
2023/12/20(水) 00:53:26.32ID:sRIcY9v50
キーボードをマイナーチェンジ版に替えたら(Logicool K380→K380s)
それまでの修飾キー押しっぱなし病対策が、却って問題を引き起こすようになった
以前はホットキーを押し続けていると、たまにホットキーじゃないキーが入力される現象があったが
新しいキーボードではそういうことはなくなった
シビアなタイミングに左右されるところがあるから
製品差、個体差で現象が出たり出なかったりするんだな
2023/12/20(水) 12:41:18.15ID:LzkTx5Q/0
Keymillのようなスキャンコード表示アプリを使ったりAHKのコード内でA_PriorHotkeyの値を随時チェックすると、
キーボードの挙動って機種や接続形態で結構違うんだなってちょっと驚いたわ。
2023/12/20(水) 13:05:29.86ID:rgoAFFc/0
基本的にUSBキーボードって最終発行に至るまでに、その仕組み上、
内部で必ずソフトウェア的な変換が介在するからね
特に修飾キー周りは変なディレイがあったり、upを二回送信してたり
癖が強いやつがたまにある
824名無しさん@お腹いっぱい。
垢版 |
2023/12/20(水) 18:01:07.86ID:aMQJw63N0
IMEがONでもOFFでも半角で日付を入れる方法 今日なら2023_1220_
って入れたいんだけど調べたやつ改変しても出来ない…。

^;::InsertDate("yyyy_MM_dd_")

InsertText(Content) {
cb_bk = %ClipboardAll%
Clipboard = %Content%
Send, ^v
Sleep, 100
Clipboard = %cb_bk%
}
InsertDate(format) {
FormatTime,TimeString,,%format% ;引数formatに入れた文字列に基づいてフォーマットする
InsertText(TimeString)
}


何も反応しないんだけど、どうすればいいんでしょうか
とにかく半角で日付を入れたいです
2023/12/20(水) 18:09:19.46ID:zBm7U9Jj0
>>824
それでCtrl+;押したら2023_12_20_ってちゃんと出たけど
2023/12/20(水) 18:28:50.09ID:LzkTx5Q/0
うちの環境でも正しく実行されている。
テキストエディタや表集計上で 2023_12_20_ と出力できたし、
InsertText関数内でクリップボード情報を一次退避させるAHKの定番処理も問題ない。
もしかして、ルーチン内のバグ以前にCtrl+セミコロン のホットキーが正しく定義できていないとかかな。
2023/12/20(水) 18:54:46.17ID:LzkTx5Q/0
もしかしたら、AHK1.x系を前提に作られたWeb上のサンプルプログラムをAHK2.0で実行しちゃったとかかな。
ただ今回のものはかなり簡潔なものなので、2.0上で不具合が起こるかまでは分からないけれど。
2023/12/20(水) 18:56:09.40ID:1MxSSrdS0
まさか 2023_1220_ ←こうしたいけど、2023_12_20_ ←こう出てくるから"出来ない"って言ってるんじゃないよなあ
2023/12/20(水) 18:58:49.59ID:1MxSSrdS0
>>828
アすんません
最後まで読んでなかったorz
>何も反応しないんだけど
2023/12/20(水) 19:16:15.25ID:rgoAFFc/0
>>827
=で代入しているから、v2だとエラー出まくりで起動どころの騒ぎじゃないと思うぞ
2023/12/20(水) 20:40:35.04ID:LzkTx5Q/0
そうか、2.0は従来のアバウトな仕様を基本から整理整頓したのか。
変数名でも% %で括れば配列代わりに使えるっていう便利なあれも2.0では廃止だったら辛いなぁ。
2023/12/20(水) 21:26:38.13ID:IpXbZ8do0
>>824
まず関数の中身をMsgBoxにして動くか試す
動いたなら関数内のどっか間違ってる
動かなければキーがおかしい

こんな感じに動かない場所を特定して行けば
ほとんどの場合すぐ直るよ
2023/12/20(水) 21:35:03.67ID:k0JIe0fX0
Send, ^v
個人的な経験だけどこれ反応しないソフトも結構あるから面倒だけどキー個別に送った方がいいと思う
2023/12/20(水) 21:49:00.95ID:mjEdk/3S0
ラッパー関数作ってif winactiveで分岐して
最適な送り方すればいい
2023/12/20(水) 23:04:30.04ID:GHCQq/k50
mayuの時は簡単に書けてすんなり動いたのに、なんかahkだと苦労が増えるんだよな
何でもやれるようにした代わりに不安定になってる気がする

例えば、ahkだと何か押しながら別の何かを押すとかは全てのキーで特に定義も無しに書ける
mayuはモディファイアとして使うキーはモディファイアとして宣言しないと使えない
でもそうそう変なこともしないので、それで特に困らない
2023/12/23(土) 10:52:38.12ID:ukhjPbWa0
Release v2.0.11 · AutoHotkey/AutoHotkey · GitHub
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.11

> Added a workaround for the first shown menu not accepting keyboard input on Windows 10.
> Fixed the Add method (Gui) to support the ShortDate option for DateTime controls.
> Fixed a reference counting error with multi-level function nesting.
> Fixed #include <x> causing a load-time crash if used inside a function.
> Fixed ListView.Opt("NoSort").
> Fixed a memory leak occurring when an object with no own properties is cloned.
> Fixed #include and FileInstall (non-compiled) to compare file names ordinally, not linguistically.
2023/12/24(日) 16:08:14.40ID:CYybi49m0
converter使いながら毎日チクチクv2変換修正してるけど、関数内で”をエスケープできるのありがたい

あといつの間にか有志がv2doc日本語化してくれてるまじ感謝
https://ahkscript.github.io/ja/docs/v2/ChangeLog.htm
2023/12/24(日) 16:42:29.32ID:liaXYb2l0
それ半年くらい前から誰かがやってるみたいだね
ただ機械翻訳のコピペのようで意味不明な訳になってたり
明らかな語訳も結構あるので、注意が必要
まあやらないよりかは全然いいんだけどね
2023/12/24(日) 16:46:07.98ID:yd+AjvhU0
珍しいよな
フリーソフトの多言語対応用ファイルがいろんな言語でずらーっと並んでるのに、
日本語は無いから仕方なく英語のまま、とかよくあるのに
2023/12/24(日) 17:04:21.43ID:liaXYb2l0
最初は不格好でも、やる意思が重要だ
高い完成度目指してぜひ頑張ってほしい
841名無しさん@お腹いっぱい。
垢版 |
2023/12/24(日) 17:08:18.77ID:tBKPvyR/0
k-ayakiて人だな
https://github.com/autohotkey-docs-translation
で作業したものをRagnar-Fてードイツ人ぽい人がサイトの方に突っ込んでるよーだ
2023/12/24(日) 17:22:03.28ID:CYybi49m0
機械翻訳mutlilangで開発して気になるなら有志が直して、がソフト開発業界に広まってくれるといいなー
843名無しさん@お腹いっぱい。
垢版 |
2023/12/24(日) 20:14:33.91ID:3ig89AOO0
>>837
v1のドキュメントの日本版は、古くてゴミページ状態だったからな
v2も、更新がないと、結局ゴミページになるな…
2023/12/24(日) 20:15:54.80ID:yd+AjvhU0
ぐぐると大抵そっちが引っかかるんだよな
2023/12/24(日) 21:39:53.46ID:QNbWAPF+0
>>838
語訳?
2023/12/26(火) 16:25:18.54ID:yAzePLy20
AHKって今何のキー押されているインタラクティブに知る方法ないの?
Key history and script infoっていちいちF5押さないといけないし使いづらい
2023/12/26(火) 16:29:40.55ID:HbfUqRnh0
>>846
ahkでリアルタイム表示のスクリプト組めばいい
2023/12/26(火) 16:38:48.60ID:LswhKh580
いちいち押すからこそインタラクティブなのでは?
リアルタイムの意味?
2023/12/27(水) 18:48:17.83ID:wmnOVXol0
AHK民はストアアプリ何使ってる?うちは関数電卓だけ

Windowsストアアプリをコマンドラインで起動する簡単な方法!【レビュー】 - 窓の杜
https://forest.watch.impress.co.jp/docs/review/1557923.html
2023/12/27(水) 19:10:48.55ID:0AF+9vTy0
別に興味無いんで他所でやってくださる?

せめてAHKに絡めて?
2023/12/31(日) 22:47:08.12ID:mR8pLXSu0
win7の電卓を11で使ってる
2024/01/01(月) 00:55:36.57ID:xS334IXm0
もうwin7がwin10にできないと思うとなんかやりたくなる
2024/01/02(火) 10:46:37.95ID:We1gUiNd0
AHKv1.1 から AHKv2 になってオブジェクトの扱いがイマイチわからん
こういうオブジェクトのキーと値のパースはどうやったらできるの?

#Requires Autohotkey v2.0
obj := {a: "Value A", b: "Value B", c: "Value C"}
for key, value in obj
MsgBox "Key: " key ", Value: " value
2024/01/02(火) 11:06:40.65ID:qgTJ2V360
https://ahkscript.github.io/ja/docs/v2/lib/Object.htm#OwnProps
2024/01/02(火) 11:41:15.72ID:We1gUiNd0
>>854
ありがとうできました!
このページみたつもりだったけど素通りでした
ChatGPT も Phind も GitHub Copilot も AHKv2 についてはほとんど教えてくれんし
助かりました!
2024/01/04(木) 15:39:17.71ID:wlm7xR370
ImageSearchで指定した画像の中心を得るにはどうすれば
2024/01/04(木) 20:26:40.01ID:iaRTsSHt0
物理キーが増えるってよ

Windows 11 PCに「Copilotキー」を搭載 30年ぶり新キーはAI PC用(Impress Watch) - Yahoo!ニュース
https://news.yahoo.co.jp/articles/8b6ed5d41f718dba033b117ef07621cf0b5bd7c9
https://asset.watch.impress.co.jp/img/ipw/docs/1558/830/ms3_o.jpg
2024/01/04(木) 21:05:05.57ID:qr6MmXUe0
右クリメニューのボタンなくなるんか
2024/01/04(木) 21:18:03.20ID:MaRIYuhC0
それメディア用に作られた仮画像でしょ
記事中になくなるとか代替になるとかは書かれていない
2024/01/04(木) 21:36:17.43ID:wlm7xR370
会社のノートPCもコンテキストキーが無くて、
何故か代わりにPrintScreenがあるので、レジストリ書き換えたった
windowsはツール不要でキー変更できるようにできてる
861名無しさん@お腹いっぱい。
垢版 |
2024/01/04(木) 23:53:38.71ID:69MufodC0
>>860
thinkpadキーボード唯一の欠点やな
862名無しさん@お腹いっぱい。
垢版 |
2024/01/04(木) 23:58:45.87ID:69MufodC0
>>857
記事読んだけど要らんやろこんなキー
やめてくれよ。。。
そいやgalaxy使ってるやつが音量ボタンの下にアシスタント呼び出し専用ボタンがあってよく誤爆するって嘆いてたなw
2024/01/05(金) 00:07:02.07ID:n6i2rxHK0
ノートPCにテンキー無理やり入れるのやめればいいのにな
2024/01/05(金) 01:42:13.07ID:239I3UN/0
ほいらのPCは、その場の状況に合わせて無変換キー押すだけで作業終わるわ
無変換キー神
2024/01/05(金) 01:48:14.02ID:zOrztzBK0
無変換キーは良いよね
程よく大きくて位置も押しやすいし
修飾キーに最適
2024/01/05(金) 04:39:01.62ID:4Mb46lcu0
ほいら?(ほいら?だけだと「保守は荒らし」って出て書けなかった、意味わからん)
2024/01/05(金) 09:13:08.64ID:n6i2rxHK0
松茸の昔から、スペースの左はIME offだったので、
今更それ以外の用途には使えない
と思ってたけど、モディファイアにも使うようにしてむっさ幅が増えた
2024/01/05(金) 14:20:20.12ID:oBLqBero0
F1キーのヘルプをCopilotキーに置き換えればいいのに
windowsヘルプに助けられた記憶がないw
2024/01/05(金) 18:47:04.27ID:hUC6O/KJ0
このせいで使い慣れたキーの位置が変わったら嫌だなぁと思ったが
アプリケーションキーの代わりに入るだけっぽいのでヨシ
2024/01/08(月) 23:37:56.73ID:oVBQ4gzE0
今どきのキーボードってボリュームや画面輝度などマルチメディア系の制御の為に
FnキーがRWinかAppsキーに取って代わってる状態なのに、その位置にさらに増えるのか。
ノートや省スペースキーボードのようにスペースバーの右側が混雑しているキーボードだと更に苦しくなりそう。
2024/01/08(月) 23:41:39.13ID:nW5KUHR+0
Fnキーって大抵邪魔だよな
大事なキーをFn必須にするくらいなら、要らんキー削除して大事なキーをFn無しで押せるようにしとけ
2024/01/08(月) 23:57:12.75ID:oVBQ4gzE0
テンキーやF1~F12キーまで省いた60%省スペースキーボードなどではFnキーが必須なのは分かるけれど、
スキャンコードを取得できない特殊キーが最前列のいい場所に居座るのはちょっと困るんだよなぁw
2024/01/09(火) 00:15:19.71ID:kl5xY70K0
そこで QMK/VIA でっせ
2024/01/09(火) 00:40:04.17ID:JlTporQ+0
>>865
私は「スペースキー」と「無変換キー」を修飾キーとして使っていて、
「スペースキー」の方が押しやすいと感じています。

なので「スペースキー」を使ったショートカットキーを一軍、
「無変換キー」使ったショートカットキーを二軍に設定していますが、
少数派でしょうか?
2024/01/09(火) 00:56:05.32ID:GUpuQCbB0
スペースが押しやすいのは当たり前かと
一番押しやすい位置に配置されてるんだから
まあ普通は修飾キーには使わんだろうね
物書きとかコーダーは特に
2024/01/09(火) 01:07:08.95ID:kl5xY70K0
SandS を試しに使ってみたことが有るが、
スペースを押して瞬時に次のキーを押さねばならず、
次のキーを押さないでいるとスペースキーのキーリピートが始まるし、
キーリピートを無効にするとキーリピートできないし、
いろいろと微妙だった
2024/01/09(火) 08:03:22.49ID:zijc3vSF0
キーリピートなんかカーソルキーでしか使わないから、
無効になってもそんなに困らないけどな
878名無しさん@お腹いっぱい。
垢版 |
2024/01/09(火) 11:33:24.52ID:yJ+C687H0
シフト+capslockをcapslockキーだけで行いたいです。

VKF0::+capslock

こうするとcapslockだけで大文字に出来たんですが、
その後capslockランプ点灯中はキーコードが0x0000になって一切反応しなくなります。
シフト+capslockを押すと元に戻りました。
ランプ点灯中にcapslockだけでシフト+capslockの効果を持たせるにはどうしたらいいですか。
2024/01/09(火) 11:50:09.40ID:G5LWb0H30
send,{blind}+{capslock}
880名無しさん@お腹いっぱい。
垢版 |
2024/01/09(火) 12:05:28.42ID:yJ+C687H0
出来ました、ありがとうございます
881名無しさん@お腹いっぱい。
垢版 |
2024/01/09(火) 12:15:59.77ID:yJ+C687H0
すいません、メモ帳で使ってみたんですが
capslockを押すと「 �嫩apslock縺�縺代〒capslock縺ォ縺吶k」こんな入力が行われるようになりました
capslockランプは点灯消灯するので大文字小文字は意図通りに出来るのですが
なぜか半角全角の機能と何かの文字列まで一緒に入力されてしまうようです
882名無しさん@お腹いっぱい。
垢版 |
2024/01/09(火) 12:20:12.57ID:yJ+C687H0
すいません
後ろに付けたコメントが原因でした
消したら直りました
ありがとうございました
883名無しさん@お腹いっぱい。
垢版 |
2024/01/10(水) 17:27:08.52ID:Xo4BsL/O0
デュアルディスプレイでマウスカーソルをディスプレイ1と2を瞬時移動させるようなことって可能?
2024/01/10(水) 17:54:40.48ID:4De++NWq0
GetMousePos,if,MouseMoveあたりでサクッとできるだろ
ガチでやるならSysGet, Monitorナンタラでモニタ情報列挙して順番に中央に移動みたいなコードも書ける
885名無しさん@お腹いっぱい。
垢版 |
2024/01/10(水) 21:03:33.45ID:Xo4BsL/O0
ありがとうやってみます
2024/01/10(水) 22:13:15.25ID:LtPGYi2t0
オマ環かもしれないけど、MouseMoveでマルチディスプレイのモニタ境目はxy+-7以上指定しないと越えられない
2024/01/14(日) 17:02:34.55ID:M8rTrnbq0
いらねぇ
せめてスペースの真下にしろよ
ここなら4つつけてもいい

Microsoft 曰く、Copilotキーの配置はメーカー次第だがスペースバー右側が一般的 | スラド ハードウェア
https://hardware.srad.jp/story/24/01/14/0415209/
2024/01/14(日) 17:10:57.26ID:LEdmYFrQ0
スレ違い
2024/01/17(水) 07:09:30.03ID:5oNWAEVj0
キーボードの世界にもリストラの波 #CES2024 | ギズモード・ジャパン
https://www.gizmodo.jp/2024/01/copilot-key-1.html
2024/01/17(水) 08:06:19.18ID:QH/GhxVr0
これでcopilotキーの使い方が決まったわ
右ctrlにリマップする
2024/01/17(水) 11:19:56.39ID:2XOJFfAY0
そのうち右shiftも無くなりそうだな
2024/01/17(水) 11:27:44.47ID:iCk8fVuh0
shiftは英文打つのに普通に使うから
それはないわ
2024/01/17(水) 11:38:18.26ID:2XOJFfAY0
フルキーの数字を使えない人が多いんだよな
第1回、みたいに書く時の1をわざわざテンキーで押す

テンキーは大量の数字を入力する時に使うもので、
今どき紙の伝票なんか使ってないんだからとっくに不要になってるのに
2024/01/17(水) 12:55:43.05ID:OtXEesgm0
手癖ってのがあってだな?
2024/01/17(水) 13:12:35.13ID:4OH0ZQKG0
フルキーは未確定、テンキーは確定入力で便利に使い分けてるが
2024/01/17(水) 15:22:27.93ID:WS7ZF5bM0
テンキーは左に置いて、マウスボタン・スクロールに置換してる
2024/01/17(水) 16:46:21.76ID:t+5lukc+0
>>896
どうやって?
2024/01/17(水) 17:31:16.51ID:OtXEesgm0
>>897
BTのテンキーのみキーボードとかある
2024/01/17(水) 17:37:40.90ID:2XOJFfAY0
プログラマブルの奴ね
画像や動画の編集とかDTMは機能が多いので、
専用キーに割り付けると効率が上がる
2024/01/17(水) 17:54:53.55ID:t+5lukc+0
>>898

ホイールを8と2に割り当てる、みたいな感じですか?
2024/01/17(水) 17:58:29.35ID:2XOJFfAY0
プログラマブルを売りにしてる製品が多いけど、
我々としてはキーコードさえ出してくれればあとはこっちでやるからなんだよな
2024/01/17(水) 18:01:05.48ID:OtXEesgm0
>>900
俺が言ったのはテンキーキーボード、ググったらすぐでてくる

>>899が言ってるのはそれの自由に設定できるやつ
こっちもプログラマブルキーボードでググったらでてくる

そういうのを左側に置いて使うだけ >テンキーを左に置いて
2024/01/17(水) 20:19:42.96ID:WS7ZF5bM0
>>897
いずれマクロパッドにしたいけど、取り敢えず外付テンキーパッドで
NumPadAdd::
Click,Left,D
KeyWait,NumPadAdd
Click,Left,U
Return
2024/01/17(水) 21:16:46.28ID:t+5lukc+0
>>903
あー
なるほど

マウスクリックは手が痛いね…
2024/01/17(水) 22:05:34.23ID:3Y0SCQKz0
>>889
ノートなんてただでさえキー領域が小さいのに十字キーに隙間作るとか信じられない
2024/01/17(水) 22:24:58.67ID:WS7ZF5bM0
>>904
ドラッグが凄い楽
「片手でボタン押し下げながらマウス動かす」なんて非効率だと思い知らされた
2024/01/17(水) 22:30:31.30ID:t+5lukc+0
>>906
あー
いいですね。

マウスポインタを動かすのはマウスですよね?
2024/01/17(水) 22:47:33.39ID:2XOJFfAY0
ドラッグしないなあ
マウス使うのはブラウザのリンクをクリックする時くらい

ドラッグはD&Dの前半か、範囲選択くらいだろうけど、
D&D自体まずやらないし、範囲選択は普通にキーボードだし
2024/01/18(木) 00:12:50.26ID:tPfh4sCb0
無変換キーをモディファイアにしてるんだけど(例:無変換+jでDownキー)
リモートデスクトップ越しだと無変換キーのまま渡されてしまう
リモートデスクトップに渡るキーは全部AHK処理後のキーにしたいんだけどどうすればいいの?
2024/01/18(木) 00:27:05.78ID:+u3AQ5bv0
>>907
そう。ポインタは右手、ボタンは左手
スクロールはキー長押しリピート連打させて、ホイールをガリガリぶん回すのも不要に
NumPad5::Click,WU
NumPad2::Click,WD
NumPad1::Click,WL
NumPad3::Click,WR

>>908
ウィンドウの移動がね
Shift+Space→M→矢印キー長押しリピート。これ鈍くてイライラする
2024/01/18(木) 00:34:23.17ID:HCvU5IHR0
ウィンドウズですー
ウィンドウを自由に動かして重ね合わせて作業できますー
が最大の触れ込みなんだけど、定位置に置いとくか最大化して使うかだけなんよな

ウィンドウ同士重なってたら普通に使いにくいので、画面を分割して固定で置く
元からの思想が崩壊している
2024/01/18(木) 07:38:51.94ID:7xrc2JFO0
>>910
Alt+space→m→マウス移動、確定時クリックでいいからドラッグ要素0では
913名無しさん@お腹いっぱい。
垢版 |
2024/01/19(金) 08:30:24.25ID:xNriiRAw0
>>911
貴様の頭が固いだけじゃねーか
2024/01/19(金) 17:31:57.13ID:DXxYhRar0
>>911
机上で資料を重ねて置く発想なさそう
2024/01/19(金) 17:50:40.87ID:wb2z4OFS0
そんなことした奴おらんだろ
仮に狭い机でやったとしても、
ストレス溜まりすぎてもっと広い机が必要と感じるだろ
本を重ねて読んだら快適、になる奴はおらん
2024/01/19(金) 18:36:50.95ID:O6kpDFU+0
レジュメもらったらバラして机に全部広げるwww
2024/01/19(金) 18:41:39.58ID:JOqfZrkj0
机の広さは大事よな
仮想二画面機能とかバカジャネーノって感じするわ
2024/01/20(土) 02:34:13.78ID:HqXMKLTS0
> 複数のデスクトップの使用は、関連性のない進行中の複数のプロジェクトを整理する場合や、ミーティングの前にデスクトップをすばやく切り替える場合などに最適です。

らしいから広さとは別じゃね
2024/01/20(土) 06:08:56.37ID:iCWRg9qD0
仮想デスクトップは使う側も頭の切り替えが要るんだよな
リモートデスクトップの画面まるごと仮想デスクトップにする、とかが判り易い

単に並行してやってる仕事は仮想側で、とかやっても、
どうしてもメイン側と頻繁に行き来したり、何故か違う側で起動したり、
勝手にデスクトップ移動してたりと、逆に不便にしかならない
切り分けすらなく、単純にデスクトップを広くしたい、という要求は全く満たさない
2024/01/20(土) 08:03:53.43ID:8pi/Rrzd0
>>911
下のウインドウを見ながら作業したいときは、raptureで下画面を切り取って最前面に出すと捗る
 → 操作手順や参考資料を見ながら作業するとき
下のウインドウを小さくして、ウインドウごを最前面にするのもあり
 → Zoomや動画を見ながら作業するとき
2024/01/20(土) 08:24:57.60ID:iCWRg9qD0
やるなあ
必要な部分をキャプチャーして、snipping toolのウィンドウを適当なとこに置いて参照

重なってると見えない問題を半透明で解決しようとする人もいる
便利だと言うけどそうは思えない
922名無しさん@お腹いっぱい。
垢版 |
2024/01/20(土) 17:37:50.91ID:W1G+sVP50
AHKから外れすぎだろ貴様等
2024/01/20(土) 18:07:33.00ID:8pi/Rrzd0
raptureをAHKでキー割当てマジでおススメ
2024/01/20(土) 18:15:35.10ID:458iYndG0
Crop And Lock?
PowerToysでよくない?
2024/01/20(土) 18:22:14.79ID:iCWRg9qD0
shift-win-sでよくない?
2024/01/20(土) 18:26:37.43ID:458iYndG0
動かないなら良いんじゃない?
2024/01/20(土) 19:55:11.36ID:8pi/Rrzd0
>>924
これは便利そうだわ
しかし、複数ウインドウまたげないんだな
2024/01/20(土) 20:30:38.75ID:iCWRg9qD0
動画の一部だけ見えて役に立つの?
2024/01/20(土) 21:41:06.86ID:8pi/Rrzd0
>>928
「ながら作業」に使えそうじゃない? Web会議しながら内職みたいな
2024/01/20(土) 22:12:12.18ID:iCWRg9qD0
動画の一部しか見えないこととながら作業に使えることの関連が判らない
2024/01/20(土) 23:06:27.74ID:8pi/Rrzd0
>>930
動画の周りにある要らない領域を省いてウインドウを小さくできるでしょ
Web会議でいえば参加者リストみたい領域は要らん
2024/01/20(土) 23:15:13.31ID:iCWRg9qD0
つまり、要る部分は全部表示されてないとやっぱり困る訳で

もともとのウインドウの重ね合わせの話は、
重なってたって困らないという主張に対する反論から始まっている
933名無しさん@お腹いっぱい。
垢版 |
2024/01/21(日) 04:56:46.76ID:3HCltgFj0
つまりID:iCWRg9qD0には話が通じない
2024/01/21(日) 08:50:47.84ID:bwNwDQCL0
重なってたって困らないんじゃなく、
重なってても困らない場合がある
これを理解できないのがID:iCWRg9qD0
2024/01/21(日) 12:45:25.54ID:7DJqWtUs0
困らない場合は、枠とかの不要部分が重なってる時限定の訳で
そんな些細な例外を根拠に意見を曲げない神経がよく判らん
2024/01/21(日) 12:54:58.83ID:JekznpvH0
指摘やアドバイスを攻撃と捉える奴、思い込みが最優先で一切の妥協をしない奴ってのは結構な数居るもんだね
職場や家庭でうまくやっていけてるのか心配になる
2024/01/21(日) 13:00:46.15ID:7DJqWtUs0
そんなことがいちいち心配になる人は、戦争や災害のニュース見たら自殺しちゃうな
2024/01/21(日) 13:09:18.40ID:JekznpvH0
心配で心配で夜しか眠れないし、飯も三杯しかおかわりできなくなったよ
2024/01/21(日) 14:16:03.26ID:crj2FL8H0
困るかどうかはウインドウの切替え回数でしょ

A. 何回も行き来しないといけない → 困る
B. 1回見ればOK → 困らない
C. 1回も見なくてOK → 困らない

で、Aの場合はPowerToys等のツールで最前面に固定表示できれば困らない
2024/01/21(日) 14:21:09.02ID:7DJqWtUs0
固定表示できる場所があるなら、見たいウインドウをそこに置けばいいだけなのでは
枠の分だけ無駄になるのがそんなに嫌?
2024/01/21(日) 14:28:02.95ID:6OP2QHr/0
>>935
些細かどうかはそれぞれだって分からないのかな
新聞や本の一部分ずつを並べるには全体は不要だし、
そういう調査をする人にとってはメインタスクであり些細なことではない
だから選択肢が用意されてるわけで、何をどうするかはユーザーが判断
自分が使わないから不要ってのはただの傲慢なレイシストだよ
2024/01/21(日) 15:03:35.21ID:crj2FL8H0
>>940
2024/01/21(日) 15:11:32.10ID:45CPdpEh0
こういう流れはだいたい自演
2024/01/21(日) 16:31:41.68ID:XfaL0V400
自分がそうするからって誰でもそうだとは思うな
2024/01/21(日) 17:49:40.27ID:nkzHGIaI0
せせこましい議論は止めて今すぐ2万用意しろ
マルチモニタは捗るぞ
2024/01/21(日) 18:23:58.99ID:7DJqWtUs0
もっとディスプレイが縦に伸びて欲しいんだけどな
これ以上大きいのは置けないというくらいでかくしても、
縦1440しか無くて普通に足りない
2024/01/21(日) 18:53:55.02ID:3NJckQmg0
ノーパソの小さいモニタで全てが完結するようにしてる
自分を適応させるのに手間がかかるが、いったんできればポータブルに仕事ができる
2024/01/21(日) 18:59:20.65ID:crj2FL8H0
マウスはどうしてる?
2024/01/21(日) 19:00:09.85ID:7DJqWtUs0
ウィンドウは切り替える必要はあっても同時に見えてる必要はないことが多い
切り替えの手間さえなければ普通に同時に使える

普段メインに使うツールいくつかに専用のタスクスイッチキーをアサインして、
切り替えて使うようにすると、そのうち無意識で行き来できるようになってくる
2024/01/21(日) 19:02:48.01ID:pax+YmTQ0
できるだけ大きいサイズと解像度でマルチモニタにしたらいいんよ
ウィンドウ並べ放題になるよ
2024/01/21(日) 19:14:24.46ID:7DJqWtUs0
多くのウィンドウを同時に見る必要がある作業だったらそれはもうマルチモニタ一択
効率が上がるとかではなく、そうしないと仕事にならない

実際には、ウィンドウなんて2-3個出てれば十分なので、
マルチモニターが活かせる人は少ない
2024/01/21(日) 19:30:52.63ID:Bmy11SrJ0
>>946
24インチFHD2台を±90度ピボットさせて、2160x1920
2024/01/21(日) 19:46:10.39ID:7DJqWtUs0
そんな感じで、正方形のディスプレイが理想なんだよな
縦に短いと折角フットプリントを都合しても、全然活かせない

ディスプレイの中の各ウインドウも正方形が理想
うちのブラウザとかエディタとかファイラーとかexcelとかはみんな正方形
2024/01/21(日) 20:34:48.40ID:LMayoe6B0
縦に長いと首が疲れないか?
2024/01/21(日) 20:42:12.32ID:Bmy11SrJ0
縦1920無いと、スマホ用ページしか作ってない糞サイトが見辛い
2024/01/21(日) 20:49:33.68ID:7DJqWtUs0
VDT作業的には、見上げる姿勢は良くないんだよな
まっすぐ前を見てディスプレイの上端が見える配置がいい
縦の長さは下へ延ばす
つってもキーボードより下は不自然なので、高さ60cmくらいに限界がある
縦横60cmの33.4インチディスプレイ
2024/01/21(日) 23:50:41.88ID:NKXVHeIo0
AHK v2です。
#HotIf WinActive()の動作が想像と違ったので助けて欲しいです。

Deleteキー押下時、以下のようにしたいです。
・GroupAに属するアプリ操作時は、MyFunc()を実行。
・GroupBに属するアプリ操作時は、Enterキーを送信。

(1)の例では、GroupA操作時もGroupB操作時も、MyFunc()が実行されてしまいました。
【(1)】
#HotIf WinActive("ahk_group" GroupA)
{
Delete::MyFunc()
}
#HotIf

#HotIf WinActive("ahk_group" GroupB)
{
Delete::Send("{Enter}")
}
#HotIf
2024/01/21(日) 23:50:52.97ID:NKXVHeIo0
(2)の例では、GroupA操作時もGroupB操作時も、Delete::Send("{Enter}")が実行されてしまいました。
【(2)】
#HotIf WinActive("ahk_group" GroupB)
{
Delete::Send("{Enter}")
}
#HotIf

#HotIf WinActive("ahk_group" GroupA)
{
Delete::MyFunc()
}
#HotIf


(3)の例では、GroupA操作時もGroupB操作時も、MyFunc()が実行されてしまいました。
【(3)】
Delete::
{
if WinActive("ahk_group" GroupA)
{
MyFunc()
}
else if WinActive("ahk_group" GroupB)
{
Send("{Enter}")
}
}
2024/01/22(月) 00:12:55.26ID:wwZIOroE0
ahk_group って使わないけど、そういう使い方できるの?
2024/01/22(月) 00:28:48.39ID:tIDZAczD0
v2使ってないから検証できないけど、v2のリファレンスで「#HotIf」の項目見てみたら
#HotIf WinActive("ahk_group MyGroup")
↑こうなってるから後ろの「"」の場所違うような・・・
2024/01/22(月) 00:34:13.21ID:tIDZAczD0
>>960
あ、すまん
GroupAが変数ならv1だと↓すればいいんだけどもv2も同じならこれでいけるはず(ahk_groupの後ろの半角空白入れるのを忘れずに)
#HotIf WinActive("ahk_group " . MyGroup)
2024/01/22(月) 00:36:25.55ID:bKQFDm5J0
それは変数の連結。
MyGroupっていう文字列を指定したいなら "" 内で良いけど別途MyGroup変数に文字列を入れてると思われる。

自分もahk_group使ったこと無いのでよくわからんが、
#HotIfは中括弧のスコープ無効だよね。ホットキーとして正しく認識してないんじゃないか?
あとはMyFunc()の定義をどこにどういうふうに書いてるのかね?
2024/01/22(月) 01:06:39.70ID:3aIX8ca00
皆さん、ありがとうございます。

>>960
>>961さんのご指摘通り、"ahk_group"の部分が文字列、 GroupAやGroupBが変数で中身にアプリ名を表す文字列を入れています。

>>961
ドット連結の書き方も試してみましたが、結果は同じでした。WinActive部分がWinExistのような挙動をしていて、必ず一番上の条件で真になってその中身が実行されるような挙動です。

>>962
#HotIf WinActive("ahk_group" GroupX)の後の{}を外してみましたが、結果は同じでした。同じくWinActive部分がWinExistのような挙動をします。エディタの自動インデント対策のためデバッグ途中で付けてしまいましたが、確かに本来の書き方では{}は不要かもしれません。
MyFuncは、上の方でClassを定義していて、そこの関数を呼び出しています。複雑な処理のためここには書ききれませんが、GroupAもGroupBもMyFunc()の呼び出し自体には問題なく成功します。
2024/01/22(月) 01:12:50.05ID:3aIX8ca00
ごめんなさい。
WinActive部分が本当にWinExistのような挙動をしているのか確実には分からないのですが、必ず一番上の条件で真になってその中身しか実行されないようです。
2024/01/22(月) 01:16:25.22ID:bKQFDm5J0
GroupAとGroupB、中身が指すものが重複してたりして
2024/01/22(月) 01:21:11.24ID:wrpkRwS00
https://ahkscript.github.io/ja/docs/v2/lib/GroupAdd.htm
グループ作成はこれ使ってる?
2024/01/22(月) 01:26:22.88ID:tIDZAczD0
今さらだが>>961分かりにくかったので訂正

間違い → #HotIf WinActive("ahk_group " . MyGroup)

こういうこと言いたかった↓
GroupAに"MyGroup"と言う文字列が入ってるとする
#HotIf WinActive("ahk_group " . GroupA)
2024/01/22(月) 01:39:34.88ID:tIDZAczD0
>>963
しつこくてスマンが
>#HotIf WinActive("ahk_group" GroupX)
↓これでもダメ?
何回も言うようだけど、ahk_groupの後ろ( " の直前)の半角空白入れるのを忘れずに
#HotIf WinActive("ahk_group " . GroupX)

もう寝ます
2024/01/22(月) 01:54:34.18ID:wrpkRwS00
>>968
https://ahkscript.github.io/ja/docs/v2/misc/WinTitle.htm#ahk_group
のahk_ Criteriaにあるけど、空白は0個以上なんで無くてもいいらしいよ
2024/01/22(月) 02:11:54.55ID:3aIX8ca00
>>965
ありがとうございます。
どうやらこれが原因でした。

(誤)
GroupA := "_"
GroupAdd(GroupA, "app1.exe")
GroupB := "_"
GroupAdd(GroupB, "app2.exe")

(改)
GroupA := "GroupA"
GroupAdd(GroupA, "app1.exe")
GroupB := "GroupB"
GroupAdd(GroupB, "app2.exe")

くだらない理由になってしまい申し訳ないのですが、変数が未初期化の状態だと表示されるエディタの警告が煩わしかったため、どちらのGroupも適当に"_"で初期化して中身が同じになってしまったことが原因のようでした。
2024/01/22(月) 02:34:34.58ID:3aIX8ca00
もう一つ期待した結果が得られないパターンが出てきました。
#HotIf WinActive()の記述順序によって結果が変わってしまいます。

【(4)】
GroupA := "GroupA"
GroupAdd(GroupA, "app1.exe")

#HotIf WinActive("ahk_group" . GroupA)
Delete::Send("a")
#HotIf

#HotIf WinActive("ahk_exe app2.exe")
Delete::Send("b")
#HotIf

上記の記述順序では下記の結果が得られますが、期待した結果ではありませんでした。
"ahk_exe app2.exe"はどのGroupにも属していません。
・GroupA
Delete -> Send("a")

・"ahk_exe app2.exe"
Delete -> Send("a")(※Send("b")を実行して欲しい!)
2024/01/22(月) 02:34:47.17ID:3aIX8ca00
【(5)】
GroupA := "GroupA"
GroupAdd(GroupA, "app1.exe")

#HotIf WinActive("ahk_exe app2.exe")
Delete::Send("b")
#HotIf

#HotIf WinActive("ahk_group" . GroupA)
Delete::Send("a")
#HotIf

上記の記述順序では下記の結果が得られ、期待した結果を得られました。
・GroupA
Delete -> Send("a")

・"ahk_exe app2.exe"
Delete -> Send("b")
2024/01/22(月) 02:55:02.22ID:bKQFDm5J0
GroupAdd(GroupA, "app1.exe")

GroupAdd(GroupA, "ahk_exe app1.exe")

だったり?
2024/01/22(月) 08:49:08.17ID:85FxdUTx0
>>973
回答ありがとうございます。

GroupAdd(GroupA, "app1.exe")
としましたが、私の実際のコードではアプリの実行ファイル名ではなくアプリの実行ファイルのウィンドウタイトルを指定していました。
ウィンドウタイトルの場合は"ahk_exe"の記載は不要と認識していて、下記とするのがおそらく適切でした。

(誤)
GroupAdd(GroupA, "app1.exe")

(正)
GroupAdd(GroupA, "app1.exeのウィンドウタイトル")

つまり下記の①はウィンドウタイトルでの判定、②は実行ファイル名での判定になります。

①#HotIf WinActive("ahk_group" . GroupA)

②#HotIf WinActive("ahk_exe app2.exe")

②の"ahk_exe app2.exe"の部分ですが、こちらはウィンドウタイトルが可変する仕様のため、アプリの実行ファイル名を指定しています。
可変した際に多くのケースでGroupAのウィンドウタイトルが包含されたものになることに気付きました。

#HotIf WinActive()が何をもって真とするのか理解が不十分なのですが、もしウィンドウタイトルの部分一致でも真とする仕様なら②の中身の実行を想定していても①が実行されてしまうケースに納得できます。

今日時間がある時に#HotIf WinActiveの仕様について詳しく調べてみようと思います。ありがとうございます。
2024/01/22(月) 11:19:23.39ID:ZHKh8NqU0
>>924
なぜかAHK使っているとpowertoysが気に食わない
https://windowtop.info/features/pip-picture-in-picture-crop/
2024/01/22(月) 11:25:37.97ID:wwZIOroE0
#HotIfの#でない版が欲しいんだけどな
なんでここはプリプロセッサのままなんだろう
2024/01/22(月) 11:43:55.16ID:d29CGPd00
>私の実際のコードではアプリの実行ファイル名ではなくアプリの実行ファイルのウィンドウタイトルを指定していました。

クズが
2024/01/22(月) 11:54:55.51ID:bKQFDm5J0
長いとコード全部貼れないので関係無いと思ってるとろを簡略化して貼るのは仕方のないことだと思うが、
関係無いと思ってた部分に原因があると第三者からは解らないんで簡略化したそのものを書き換えず実際に実行
してみたほうがいいね。切り分け方法の1つだと思う。
2024/01/22(月) 11:58:32.86ID:wwZIOroE0
貼る時に簡略化するんじゃなくて、自分で原因究明する時にどんどん削っていく
ここまで要素化してもまだおかしいので見て見て見て、になる
2024/01/22(月) 12:59:50.02ID:wrpkRwS00
挙動がおかしいと思う時の質問・報告は
誰でも再現できる手順を添えるのが面倒でも一番いいってテンプレに足す?
2024/01/22(月) 14:48:53.39ID:RJyJ9Z7a0
ハッタショは無理して回答側に回らなくていいぞ
迷惑だから
2024/01/23(火) 11:46:35.67ID:pty1rkzy0
うめ
2024/01/23(火) 11:46:50.16ID:pty1rkzy0
うめ
2024/01/23(火) 11:47:06.52ID:pty1rkzy0
うめ
2024/01/23(火) 11:47:22.91ID:TsDB/+Jr0
うめ
2024/01/23(火) 11:47:35.35ID:TsDB/+Jr0
うめ
2024/01/23(火) 11:47:47.92ID:TsDB/+Jr0
うめ
2024/01/23(火) 11:48:01.02ID:wbNZg8y80
うめ
2024/01/23(火) 11:48:13.27ID:wbNZg8y80
うめ
2024/01/23(火) 11:48:26.13ID:wbNZg8y80
うめ
2024/01/23(火) 11:48:40.01ID:Rc83/6Vf0
うめ
2024/01/23(火) 11:48:52.58ID:Rc83/6Vf0
うめ
2024/01/23(火) 11:49:05.55ID:Rc83/6Vf0
うめ
2024/01/23(火) 11:49:18.63ID:KP2haNFj0
うめ
2024/01/23(火) 11:49:30.85ID:KP2haNFj0
うめ
2024/01/23(火) 11:49:43.24ID:KP2haNFj0
うめ
2024/01/23(火) 11:50:46.07ID:2mOaV5qN0
うめ
2024/01/23(火) 11:50:58.42ID:2mOaV5qN0
うめ
2024/01/23(火) 11:51:11.48ID:2mOaV5qN0
うめ
2024/01/23(火) 11:51:47.96ID:Sg6quwFH0
ラスト
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 713日 17時間 13分 29秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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