元々がIDのみの表示で番号の始まっているスレを途中から別の表示で乗っ取るのは「背乗り」行為に当たるので、IDのみの表示で進行とします
■配布元
https://autohotkey.com/download/
■前スレ
AutoHotkey スレッド part29
https://egg.5ch.net/test/read.cgi/software/1620768466/
■日本語解説等
AutoHotkey Wiki
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://hdd.s300.xrea.com/ahk/
AutoHotkeyJp(過去ログdatあり)
https://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
https://www6.atwiki.jp/eamat/
■スクリプト投稿
Autohotkey専用うpろだ
https://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
https://pastebin.com/
■その他のテンプレ(5chのURL規制が厳しいのでpastebinに退避しました)
https://pastebin.com/raw/bWipuNmt
探検
AutoHotkey スレッド part30 IDのみ
■ このスレッドは過去ログ倉庫に格納されています
2022/02/08(火) 18:38:19.33ID:UTRGyCNl0
2023/09/10(日) 16:46:52.42ID:ItMWkI4Z0
のどかにラッパーを追加してpythonのモジュールみたいにできないかな
ぶっちゃけ、キーの入れ替え以外は全部pythonでできる
ぶっちゃけ、キーの入れ替え以外は全部pythonでできる
2023/09/10(日) 16:57:15.43ID:ItMWkI4Z0
ラッパーていうか、アプリそのものだな
のどかはデバイスドライバとそれを使う本体で構成されてるので、
APIを解析してのどか以外からデバイスドライバを使うことも可能
APIの全機能をカバーしただけの低レベルpythonモジュールをまずこさえて、
それを利用してahkのスクリプトを理解できる上位モジュールから呼び出す
のどかはデバイスドライバとそれを使う本体で構成されてるので、
APIを解析してのどか以外からデバイスドライバを使うことも可能
APIの全機能をカバーしただけの低レベルpythonモジュールをまずこさえて、
それを利用してahkのスクリプトを理解できる上位モジュールから呼び出す
2023/09/11(月) 11:00:53.01ID:ia7g+DFl0
>>481
keyhacは修飾キー周りの設定がめんどいのと更新止まってるから使ってないな
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
https://github.com/AutoHotkey/AutoHotkey/releases/tag/v2.0.8
2023/09/11(月) 20:39:27.89ID:tG+HBWzg0
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
2023/09/11(月) 21:28:32.59ID:tG+HBWzg0
492名無しさん@お腹いっぱい。
2023/09/12(火) 02:41:12.62ID:ZxfrDDhW0 漠然とした質問ですがAHKって何に使ってますか?
自分はpython書くくらいしかPCで作業しないので
Pythonであまり使わない@に()を割り当てたり
=と""を打ちやすくしたりしてみたのですが
他に割り当てるほどのことが何も思いつきません
何でもできるツールなので、使い方がわかってないだけだと思うのですが……
切り取り貼り付けなどのショートカットをワンプッシュでできるようにしてみたのですが元々Ctrl+C、Vとかはかなり押しやすい配置なのであまり便利になりませんでした
皆さんが複雑な作業でホットキー設定して便利だと感じているものって何かありますか?
自分はpython書くくらいしかPCで作業しないので
Pythonであまり使わない@に()を割り当てたり
=と""を打ちやすくしたりしてみたのですが
他に割り当てるほどのことが何も思いつきません
何でもできるツールなので、使い方がわかってないだけだと思うのですが……
切り取り貼り付けなどのショートカットをワンプッシュでできるようにしてみたのですが元々Ctrl+C、Vとかはかなり押しやすい配置なのであまり便利になりませんでした
皆さんが複雑な作業でホットキー設定して便利だと感じているものって何かありますか?
2023/09/12(火) 03:06:37.00ID:TCPOB/1O0
2023/09/12(火) 04:30:06.97ID:48RxhFtI0
2023/09/12(火) 07:42:20.39ID:Nluft5rv0
mayu -> yamy -> ahk と流れてきて、設定を連綿と引き継いでいる
最初にやりたかったのは、ダイヤモンドカーソル
CapsLock+esdxがカーソルキーになる
他にも極力ホームポジションから動かなくていいように、ファンクションキーとか、
かな入力の一部を別のキーに追加
あとは特定アプリ限定で、マウスでしか操作出来ない機能にキーアサインを追加
最初にやりたかったのは、ダイヤモンドカーソル
CapsLock+esdxがカーソルキーになる
他にも極力ホームポジションから動かなくていいように、ファンクションキーとか、
かな入力の一部を別のキーに追加
あとは特定アプリ限定で、マウスでしか操作出来ない機能にキーアサインを追加
2023/09/12(火) 08:32:49.30ID:GBoxE6db0
関数ライブラリ廃止がクソすぎる やってられん
2023/09/12(火) 11:28:42.32ID:qk3wwP0M0
>>492
IMEオンオフ切り替えを含め、遠いキーをなるべく手元に
アクティブウィンドウ枠をIMEオンオフに応じて色付け
再変換:半角文字列を未確定全角に‖未確定全角文字列を確定英数字に
アクティブタイトルバーに暗記したい英単語を順次表示
発音記号、欧文文字ダイレクト入力
アプリ一発起動
各種メディアプレーヤーのホットキーを統一
ClipboardHisoryをAHK版にして、カスタマイズ
自分のスクリプトを点検したら、こんな感じでした。
IMEオンオフ切り替えを含め、遠いキーをなるべく手元に
アクティブウィンドウ枠をIMEオンオフに応じて色付け
再変換:半角文字列を未確定全角に‖未確定全角文字列を確定英数字に
アクティブタイトルバーに暗記したい英単語を順次表示
発音記号、欧文文字ダイレクト入力
アプリ一発起動
各種メディアプレーヤーのホットキーを統一
ClipboardHisoryをAHK版にして、カスタマイズ
自分のスクリプトを点検したら、こんな感じでした。
2023/09/12(火) 11:49:46.07ID:UAm/ijNJ0
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
2023/09/12(火) 21:03:09.06ID:V/2CrKsZ0
2023/09/12(火) 22:19:12.36ID:48RxhFtI0
2023/09/13(水) 15:48:09.66ID:m4N6UCY60
2023/09/13(水) 17:24:56.06ID:5W893Rfo0
2023/09/13(水) 17:30:46.12ID:Wgwsv5oV0
そもそもブラウザ以外でマウスを使わない
2023/09/13(水) 17:46:36.73ID:el7ZvXLi0
シェルもCUIかよ
男らしいなw
男らしいな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
出来るよ。キーリピート防いで、長押保持
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)のタイトルバーに対して押すと
クリックされっぱなしになっちゃうんだけどおま環?
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
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
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
2023/09/14(木) 17:42:45.40ID:DzQdSu6f0
2023/09/14(木) 19:58:28.52ID:dC0vICTI0
外部スクリプトよく呼び出すなら
ret := RunScript("
(
#!cmd
echo hello
)")
msgbox % ret ; ==> "hello"
なんてラッパー作っとくと楽だぞ
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
----------------
これだけの記述でも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} に変えても同様
なんでこうなるかは分からん
スマンかった。おま環じゃないなこれ
昼に軽く試したときはならなかったんだが、今やったら確実に再現するわ
むしろ昼にやった時ならなかったのが謎
KeyWaitの有無は関係なく、DownとUpを別々にした場合に発生する模様
タイトルバーを対象とした時のみDown後にUpが送られずスタックして
Escを押すか、タイトルバー以外の場所でLButton押下時にUpが送られてる
Send, {LButton Down} に変えても同様
なんでこうなるかは分からん
2023/09/14(木) 22:39:00.29ID:yiUXLhWC0
検証ども おま環じゃなくてよかった
ちなみにv2でも同じだった
ちなみにv2でも同じだった
2023/09/14(木) 22:43:30.80ID:/4keP4wt0
2023/09/15(金) 09:56:11.88ID:8lJJsAOr0
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
}
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に送りたいという事なのですが
可能でしょうか・・・ 宜しくお願い致します。
上記のスクリプトを改変し、コンパイルした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じゃないの?
キー送信するのはダメなの?
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ですね・・・ ググって出てきたスクリプトを書き換えたダケなんで色々理解していません・・・
{ } で囲う意味も分かって無くて、動かなかったから囲ったら動いた ぐらいのスキルです汗
ありがとうございます!できました!
ええ、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()は消していい
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
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に変更
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
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
}
が、細かいことですがフォアグラウンドに来てる時だけはキー無効になってしまいますね なんでだろ
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でやってることを忘れる
前は座標を測って押してたけど、画像認識に変更した
画像ファイルを引数に指定すると押してくれる関数化したのですっきり
押した後、元のマウスカーソルに戻すので、そのうち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")
いいなー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.
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
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
2023/09/17(日) 15:09:11.40ID:AgjEWBqI0
ahkのコア部分だけpythonのモジュール化して、キーの置き換えとかいろんな処理はpythonで書く
世界中の人が寄ってたかって便利にすることができる
で、コアだけのどかと差し替えると、スクリプトそのままで安定性が向上する
世界中の人が寄ってたかって便利にすることができる
で、コアだけのどかと差し替えると、スクリプトそのままで安定性が向上する
2023/09/17(日) 15:16:12.59ID:vOzAWoz00
2023/09/17(日) 16:40:52.99ID:ejOMxxCZ0
宗教だから触らない
2023/09/17(日) 16:59:13.01ID:FD5+4qql0
>>540
ないんかいw
ないんかいw
2023/09/17(日) 17:23:24.31ID:RotPmQmd0
あらへんねんw
Run/RunWait は普通にあるけど、んなもんあったっけ?と公式リファレンスで見たけどない。
多分、Unix系のスクリプト実行よろしく1行目を見て実際に走らせる shell なりを
変えられるものちゃうか?
Run/RunWait は普通にあるけど、んなもんあったっけ?と公式リファレンスで見たけどない。
多分、Unix系のスクリプト実行よろしく1行目を見て実際に走らせる shell なりを
変えられるものちゃうか?
2023/09/17(日) 18:11:00.58ID:vOzAWoz00
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}
}
}
ちょっと前のレスでも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の状態が更新されずに永久ループする
{
while GetKeyState("XButton1", "P")
{
Send {Blind}{WheelDown}
Sleep 10
}
}
v1は正常に動く
v2だと稀にGetKeyStateの状態が更新されずに永久ループする
2023/09/18(月) 07:50:20.70ID:DiSScFBT0
確率の問題なんだろうな
アトムであって欲しい処理のスリットが、v1よりv2の方が広い
ダーティでなくなった分だけ脆弱になってしまうっていう
どこでフックの奪い合いが起きても本質的に問題ない
という作りになってないと、どうしても不安定になる
アトムであって欲しい処理のスリットが、v1よりv2の方が広い
ダーティでなくなった分だけ脆弱になってしまうっていう
どこでフックの奪い合いが起きても本質的に問題ない
という作りになってないと、どうしても不安定になる
2023/09/18(月) 13:07:34.00ID:cSd5nxXI0
2023/09/18(月) 22:46:50.69ID:oUaH/YqD0
>>553
俺の環境ではそんなこと起こったことないが、公式フォーラムのバグレポート(未解決)に似たような報告があるな
v2ではSendMode("Input")がデフォルトになったが、このモードがGetKeyStateに干渉しているのではないかと推測されている
とりあえずEventモードなら発現しないらしいので
Send("{Blind}{WheelDown}")の所をSendEventにするか、SendModeをEventにしてしばらく様子を見てみて
俺の環境ではそんなこと起こったことないが、公式フォーラムのバグレポート(未解決)に似たような報告があるな
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: ;起動する
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
2023/09/21(木) 20:04:42.79ID:3aqubDRm0
2023/09/21(木) 20:33:27.57ID:/qgZEuhq0
2023/09/22(金) 18:18:33.75ID:QYS2Gl5t0
>>558
ifとelseで出来ました!ありがとう!
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
}
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)以降は意味分かってないのにこうやったら行けた程度のヤツで実際何も分かってないでやってます
すみません上書きで消してたみたいでゴミ箱探したりしましたが結局みつからず、たぶんこんなかんじでした
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
}
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%
}
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
2023/09/22(金) 23:17:51.06ID:QYS2Gl5t0
2023/09/22(金) 23:20:27.07ID:GiZ06ZcB0
>>565-567
これ、なんとなーく動いているようだけど
Chrome_RenderWidgetHostHWND1ってWindow Classでしょ
本来はClassNN、テキスト、コントロールのHWNDのいずれかを指定しなければいけないはずなんだけど
Chrome_RenderWidgetHostHWND1とかIntermediate D3D Window1とか
これ、なんとなーく動いているようだけど
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.
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の機能を有効のままにしたい、
という感じです
例えば、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まで無効にされてしまい困っているという状態です
間違えて途中で送信しちゃいました
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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★6 [ぐれ★]
- 「怒りに震えて涙が出た」 同性婚認めず「合憲」判断に原告が反発 「差別的な判決だ」 ★2 [ぐれ★]
- 財政膨張、自民党内に異論 麻生副総裁「やりすぎじゃないか」 [蚤の市★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★6 [ぐれ★]
- 「インバウンド政策上、中国は重要」、訪日自粛で金子国交相「早く通常の状況に戻っていただきたい」★3 [ぐれ★]
- 経団連会長、中国大使面会 代表団受け入れ要請 ★2 [蚤の市★]
- 【動画】上海バンダイナムコフェス、ワンピース歌ってる途中に中国政府「日本人の公演全面禁止」発令された瞬間強制終了 怖すぎ★5 [579392623]
- お前らって定期的にうんちすることを心がけてるよな
- 【悲報】国分太一さん「全てを失ったんだ!答え合わせさせてくれ!」日テレ「ダメです(即答」 [531674905]
- 広瀬アリス、庵野秀明がわからない定期
- 【速報】ダウンタウン+(プラス)、強力メンバーを揃えて解約祭り食い止めへ
- 【嫌儲超朗報!】Xトレンド1位『高市氏、宣伝費に8000万円超』 [718678614]
