探検


AutoHotkey スレッド part28

■ このスレッドは過去ログ倉庫に格納されています
1名無しさん@お腹いっぱい。 (ワッチョイ aef9-dJm7)
垢版 |
2020/04/03(金) 18:35:06.00ID:/YRSlUCD0
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512

■配布元
http://ahkscript.org/download/

■前スレ
AutoHotkey スレッド part27
http://egg.5ch.net/test/read.cgi/software/1555770773/

■日本語解説等
AutoHotkey Wik
http://ahkwiki.net
AutoHotkeyを流行らせるページ(ミラー)
http://ahk.xrea.jp/ (不調時は http://hdd.s300.xrea.com/ahk/ )
AutoHotkeyJp(過去ログdatあり)
http://sites.google.com/site/autohotkeyjp/
Autohotkey日本語ヘルプ(chmファイル)
http://www6.atwiki.jp/eamat/
Autohotkey専用うpろだ
http://ux.getuploader.com/autohotkeyl/
簡易スクリプト掲示板
http://pastebin.com/

■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
159名無しさん@お腹いっぱい。 (オッペケ Sra3-L9uE)
垢版 |
2020/06/26(金) 18:53:11.89ID:rIU3pFBBr
>>158
普段はtabキー使うから、IMEオフが必要なソフトでのみtabをIMEオフにしたかったんだよね ahkならソフトでの指定が出来るから
IMEオフはIME_SET(0)でいいのかな
2020/06/26(金) 19:02:52.26ID:5Gj+Y/Ke0
>>159
そういうことなら

■ IME関連
Q1:IMEのOn/Offの切り替えや、状態を得るにはどうすればいいの?
A1:http://www6.atwiki.jp/eamat/pages/17.html の「IME.ahk」を使いましょう。

なぜかテンプレなくなってるな
2020/06/28(日) 02:35:20.56ID:APknnKSb0
IME.ahk入れていないのにIME_SET()関数使おうとしたんかよ
まあahk標準機能として用意されて欲しいとは思うけどね
162名無しさん@お腹いっぱい。 (ワッチョイ 7f76-V/rO)
垢版 |
2020/06/28(日) 06:10:43.18ID:JSt+EfPH0
AHKの便利さを知っている人でも満足できるMac対応代替アプリ知りたい
おすすめありますか(別言語可)
163名無しさん@お腹いっぱい。 (ワッチョイ 0f96-FKcX)
垢版 |
2020/06/28(日) 21:07:35.68ID:F3gv9FGB0
ALT+UでF7変換にしたく、LAlt&U::Send,{F7}と打ったのですが、
エラー:lnvalid hotkye が出ました。
どうすれば修正できますか?
2020/06/28(日) 21:29:36.96ID:PmPU9g8w0
>>163
基本的に修飾キーは修飾シンボルを使った方がいい
どうしてもコンビネーションキーにしたいならサンプルよく見てスペース入れる
165名無しさん@お腹いっぱい。 (ワッチョイ 0f96-FKcX)
垢版 |
2020/06/28(日) 21:57:01.54ID:F3gv9FGB0
>>164
*!U::Send,{F7}
と打ったら出来ました ありがとうございます。
2020/06/28(日) 22:51:48.38ID:bvSPqNOb0
>>155
win7の情報だけどQTTabBarはWindowsの仕様なのかahk_classが2種類存在する。
おそらくexplorerの起動方法によって変わると思われる。
ahk_class CabinetWClass
で反応しないときは
ahk_class ExploreWClass

Win10では2種類存在するか未確認だけど、スクリプトを未修正で使ってる
2020/06/29(月) 02:42:14.83ID:HPOga7Oa0
ランダムに複数ファイルを選択状態にしたくてこのソフトを入れたのですが
可能でしょうか?単ファイル版のスクリプトしか見つかりませんでした
2020/06/29(月) 09:50:02.24ID:DhcDIaKH0
「右コントロールと下矢印キーの同時押し」で「PgDnの押下」を行いたいです。

RCtrl & Down::PgDn
という記述だとCtrlの押しっぱなしが検知されて、
実行結果が「Ctrl+PgDn」になってしまいます。
実行結果を「PgDn」だけにする方法はないでしょうか?
2020/06/29(月) 11:28:08.73ID:HPOga7Oa0
すみませんフォーラムの方で見つかりました。お騒がせしました
2020/06/29(月) 13:24:02.39ID:kkMkAdp20NIKU
>>168
Sendを省略せずにちゃんと書く
2020/06/29(月) 17:40:02.70ID:DhcDIaKH0NIKU
>>170
ありがとう
できました
2020/06/29(月) 22:46:05.94ID:k0jjh9vk0NIKU
いつのまにかswitchがつかえるようになっていた
2020/06/29(月) 23:33:53.43ID:q+ndca0h0NIKU
へー
日本語版wikiの更新が止まってから全然追えてないから知らない機能めちゃくちゃありそう
2020/06/30(火) 21:10:21.02ID:Qm4pWQL/0
v1.1.33.00 がリリースされたが、.32まで問題なかったコードが
cound not locatedみたいなエラーでコンパイルできんくなった
2020/06/30(火) 21:15:59.84ID:Qm4pWQL/0
ちなコンパイルしようとしたのはDvorakJです
https://blechmusik.xii.jp/dvorakj/
2020/07/05(日) 15:58:54.49ID:BwrFni8y0
LinuxのOpenboxってウィンドウマネージャー使ってたらウィンドウ操作がすごく簡単で真似したくなったんですが、Win10で再現しようとしたら……orz
取り敢えずアクティブウィンドウの位置をウィンドウの中央座標と画面の中央座標が一致するように移動したいんですが、
座標の始点を画面左上から画面中央や画面右下などに自由に変更する方法ありませんか?

一応解像度からタスクバー分引いて数字出してWinMoveで数字決め打ちでなら出来たんですが、
A_ScreenWidthとか変数使うとうまくいかないところが出たりでよくわかりません……
ちなみに再現したいOpenboxの操作は↓な感じです
https://pastebin.com/bgAai2Dk
あとタイトルバー消したり出したりしたいんですが、これはahkで一から作ったウィンドウでないと出来ませんよね?
環境はWin10 Home x64 1909, AHK_U64 v1.1.32.00です。よろしくおねがいしますm(__)m
2020/07/05(日) 17:06:36.09ID:mRfdqX6O0
座標や幅/高さの計算が上手くできないなら、座標の始点を変えたところで意味無いと思うけど...
2020/07/05(日) 18:53:11.72ID:BwrFni8y0
>>177
例えば始点を右下(0,0)としたとき、左上がFHDなら(1920,1080)になるような……
まぁタスクバーが下にあるとしたら引くと1080にはなりませんが
openbox的には右端は<x> -0 </x>なわけですが、こういう指定ができるともっと楽ですね

計算ができないのは変数込の式の書き方がわかってないからかと……人のブログ見た限りでは
WinMove, A,, (A_ScreenWidth - ActiveWindowWidth)
これで画面右端に移動かと思ったら動かなかったです
WinMove, A,, (A_ScreenWidth/4), (A_ScreenHeight/4), (A_ScreenWidth/2), (A_ScreenHeight/2)
これで画面のW/2,H/2というサイズで画面中央に移動ができましたが
2020/07/05(日) 19:05:24.37ID:irsAZnQW0
>>178
左上が0,0で右下が1920,1080だろ?
あとどこのブログ見たのか知らんが変数は%で囲む
2020/07/05(日) 20:16:22.54ID:BwrFni8y0
>>179
囲む時と囲まない時の区別がついてないんですが簡単に言うとどんな時なんでしょうか?
2020/07/05(日) 21:22:42.79ID:dLHUmlTf0
>>178
>始点を右下(0,0)としたとき、左上がFHDなら(1920,1080)になるような……
そういう関数作ればいいと思う

>WinMove, A,, (A_ScreenWidth - ActiveWindowWidth)
いきなり ActiveWindowWidth という未知の変数出てきたからエラー出て動かないんじゃないのか?
WinGetActiveStats, , ActiveWindowWidth とか WinGetPos, , , ActiveWindowWidth, , A で
アクティブウインドウの幅取得すれば動くと思う

式の場合は%付けない、文字列の場合は%付けるんだっけ?未だによく間違える(´・ω・`)
2020/07/05(日) 22:09:20.66ID:BwrFni8y0
>>181
レスどもです

関数……なんだろう……

あと未知の変数ですが実際はその上の行でWinGetPosして定義してあるものです、後出しですみません……

^+!h::
  WinGetPos, ActWinX, ActWinY, ActWinW, ActWinH
  WinMove, A,, 0, %ActWinY%
return

^+!j::
  WinGetPos, ActWinX, ActWinY, ActWinW, ActWinH
  WinMove, A,,, (A_ScreenHeight - ActWinH)
return

これで^+!hで左端に移動しますが、^+!jでは下端に行きそうですが何も起こりません

パスをコピペしてからエクスプローラーで開く時はこれ↓なのは知ってるんですが
Run, explorer.exe "%Clipboard%"
あとRegExReplace(Clipboard, "foo","bai")
2020/07/05(日) 22:35:39.06ID:dLHUmlTf0
>>182
リファレンスちゃんと読んだ方が良い
2020/07/05(日) 22:52:35.28ID:BwrFni8y0
>>183
あれ三行でまとまりませんか?……orz
難しいので他のウィンドウ操作系ソフト使おうかと思っても無いんですよね、これというのが……
2020/07/06(月) 00:04:48.67ID:cb7LpR4N0
>>182

^+!j::
WinGetPos, ActWinX, ActWinY, ActWinW, ActWinH, A
WinMove, A,,, % A_ScreenHeight - ActWinH
Return

式の場合はこう
あとWinGetPosはタイトル入れてないから>>182だとそもそも位置とサイズ取得すら出来てない
msgboxとかを使ってちゃんと一つずつ動作確認する癖付けた方がいい

それと質問するときは最初からそのスクリプト貼れ
小出しにするから無駄に長引く
2020/07/06(月) 08:02:38.57ID:WTsF5wfU0
こんな糞ゴミ質問者に丁寧に接してくださってありがとうございます
ほんとに、リファレンスは"ちゃんと"読まないといけませんね……
も少しマシな質問出来るようになってから出直してきます、ありがとうございましたm(__)m
2020/07/07(火) 13:17:14.52ID:aP891AzU00707
vscodeでデバッグできるようになっとる
2020/07/07(火) 16:17:49.19ID:cew1M6f100707
a.ahkに ^t::msgbox
b.ahkに send,^t
とやっても上手くいきません
やり方間違ってますか?
2020/07/07(火) 16:40:07.85ID:vjfrsmL600707
>>188
何が上手く行かないのか知らんが”それのみ”のスクリプトなら
a.ahkを常駐させておいてb.ahk実行すりゃmsgbox表示されるぞ
https://i.imgur.com/TiZycOG.jpg
2020/07/07(火) 17:14:39.59ID:cew1M6f100707
>>189
そこに問題があると思って他を省いてしまいました
#ifwinactiveの記述を消したらちゃんと動作しました
すみません
2020/07/09(木) 19:26:06.50ID:WDFwHzH90
動作に関することではないですけど
いつの間にか、アイコンがくっきりしたのとボヤっとしたのに原因なんでしょうかねこれ
https://imgur.com/pLyH7uf
2020/07/09(木) 19:28:21.69ID:jW22mh0R0
>>191
ディスプレイ解像度が変わったりするとそうなる
AHK関係無くOSの問題
2020/07/09(木) 19:34:05.52ID:WDFwHzH90
そうなんですが、ありがとうございます
そして意味不明な日本語でしたねすみません
194名無しさん@お腹いっぱい。 (ワッチョイ 4b76-/sw6)
垢版 |
2020/07/14(火) 00:55:13.37ID:EP9LjcCP0
範囲選択してスクリーンショットするアプリを使用しています。
左クリックのドラッグで範囲選択をします。

実現したいことは、「トリガー押下→範囲選択モードに移行(アプリ側でPrscに当てています)
→隣のモニタにカーソルを移動→範囲選択が終わり次第、トリガー押下時の座標にカーソルを戻す」
です

今回の質問は、下記スクリプト内の「条件式」のアイデアについてです。

試したことは、
・KeyWaitでLButtonのDownとUpを検出→LButtonの判定がKeyWaitに吸収されて範囲選択できない
・WhileとGetKeyStateの入れ子をうまいこと組み合わせる→よくわからないけど失敗

範囲選択モードになったことを示すものはないとして、マウスの挙動、つまり「ドラッグ選択が終わった」ことを認識できるような
条件式のアイデアを頂ければと存じます。
Send, {PrintScreen}

;初期座標記録&隣のモニタにカーソル移動
MouseGetPos, oldMouseX, oldMouseY
MouseMove, (oldMouseX < 0 ? A_ScreenWidth : -A_ScreenWidth), 0, 0, R

;範囲選択が終わるまで待機
While (1) {
;条件式
break
}

;元の座標に戻る
MouseMove, oldMouseX, oldMouseY, 0
2020/07/14(火) 01:48:48.79ID:6ncGE/jk0
説明が分かりにくいんだけど

・トリガー押下→範囲選択モードに移行→隣のモニタにカーソルを移動

トリガーが何なのか分からんがひとまずここまでが一つの動作で、範囲選択自体は手動でマウス動かしてやるんだよな?
そして左ドラッグを離したら「トリガー押下時の座標に自動的にカーソルを戻す」ってことでしょ?
それならトリガー押下したら上記の操作してフラグを Flag=1 とか適当な変数付けといてReturn

~LButton up:: でFlag=1の場合は元の座標に戻ってFlag=0にリセットする
Flag=0の場合(範囲選択モードじゃない時)ならReturnして普通に左ボタン離すだけ

みたいなやり方はどうよ?
待機とかするよりもシンプルだと思うが
2020/07/14(火) 09:15:26.11ID:1et+KNUO0
> ・WhileとGetKeyStateの入れ子をうまいこと組み合わせる→よくわからないけど失敗
その失敗したコード部分を貼らないと

まあループで待つより Hotkey,~LbuttonやSettimer仕掛けて一旦抜けて
フェイズ処理の方が動作の確実性は上がると思う
1シーケンスで終わらないから一見すると面倒に見えるかもだが急がば廻れ

> 範囲選択モードになったことを示すものはないとして
ImageSearchは検討してみた?
なんのアプリ使ってんだが分からんが操作する人間が視覚的に判るような範囲選択オブジェクトは描画されてるわけでしょ
ドラッグ開始の「 部分が透明度低ければピクセル一致で引っ掛けられるかも
2020/07/14(火) 11:20:11.39ID:25qkeb/t0
1.1.33.1
198名無しさん@お腹いっぱい。 (テテンテンテン MM0e-YsWi)
垢版 |
2020/07/15(水) 20:36:23.68ID:jMEGxsKVM
https://kostrivia.com/5592.html
上のサイトを参考にwindowsのIMEの設定で無変換キーをIMEオフ、変換キーをIMEオンにしてるんだけど、その場合キー名はそれぞれ何になるんだろう?

http://ahkwiki.net/KeyList#Key_ZenHan
見ても載ってなかった
2020/07/15(水) 21:43:15.57ID:Jb2twzxz0
>>198
無変換
vk1d

sc07B
は試した?

わからんときは、そのURLの「上記以外のキー」ってとこに取得法書いてる
2020/07/15(水) 22:02:27.10ID:LKXFRDtu0
>>198
昔のバージョンでは無変換キーは vk1Dsc07B で指定してた
今は無変換キーは vk1D または sc07B のどちらかで指定する仕様に変わった
変換キーや他のキーコードも同じ様に変わった


AHKの仕様が変わってからもうだいぶ経つしwikiのキーリストのページだけでも直した方がいいと思うけど

警告: データベースがメンテナンスのためロックされており、現在は編集内容を保存できません。 必要であれば文章をコピー&ペーストしてテキストファイルとして保存し、後ほど保存をやり直してください。
データベースをロックした管理者による説明は以下の通りです: ただいまメンテナンス/大規模更新に向けてのローカル作業中です。

これって今だけ?しばらくしたら誰でも編集できるようになるんかね?
2020/07/15(水) 22:36:02.47ID:x3LYmQRw0
wikiもJPももう数年単位で放置されてるからなあ
新しい情報に更新したいならいっそwikiを新しく作った方がいい気がする
2020/07/16(木) 03:08:45.98ID:VMyR24rS0
タスクマネージャーとか、デバイスマネージャーみたいなwindowsの画面?だとautohotkey効かないのって何故?

マウス移動をキーボードでしてるから、これらの画面でも効くようにしたいのだけれど、無理なのだろうか
2020/07/16(木) 03:11:49.56ID:VMyR24rS0
>>202
すまん、>>137に同様の質問あったわ
管理者実行したら解決した
失礼しますた
2020/07/16(木) 13:44:03.89ID:n+FmbQAMM
ありがとう、auto hot keyを設定できたけど、今度はIMEのキー設定のほうが無効化されてる。。。
2020/07/16(木) 14:32:03.39ID:Umz0s/0zM
何やりたいのか知らんけど
キー奪いたくないなら ~ 付ければ
206名無しさん@お腹いっぱい。 (ワッチョイ b676-h8LP)
垢版 |
2020/07/16(木) 22:21:07.86ID:onG5mLRo0
>>194です
みなさんありがとうございます。
一応解決していたのですがスレに書き込めず断念しました。
以下は「WhileとGetKeyStateの入れ子でうまいことやる」方式ですが、あまりスマートではない気がしますので、
LButtonのホットキーやSetTimerも試してみようと思います。
以下条件式の部分
https://pastebin.pl/view/66a0f0bb
2020/07/18(土) 00:23:26.44ID:uAR2frX60
1.1.33.2
2020/07/18(土) 01:16:35.31ID:sv19kcVb0
Win10の通知を検知する方法ってないですかね?
Window Spyで見ると

新しい通知
ahk_class Windows.UI.Core.CoreWindow
ahk_exe ShellExperienceHost.exe

と表示されてるけど、通常のアプリケーションウィンドウではないため

WinWait, 新しい通知

などでは検知できませんでした
何かスマートな方法ありませんか?
209名無しさん@お腹いっぱい。 (ワッチョイ 0596-aTVc)
垢版 |
2020/07/18(土) 11:07:13.49ID:5I0TjaiB0
無変換キー+aで0
無変換キー+sで2
(中略)
無変換キー+;で9
という風にしたいのですが、
sc07B & a::Send,{0}
sc07B & s::Send,{1}
(中略)
sc07B & vkBBsc027::Send,{9} 
という風に記述した所上手く行きませんでした。
(vk1Dも試しました)
何が原因で上手く行かないのでしょうか?

また、出来れば無変換キーを誤動作しないように、仮想キーに置き換えたいのですが、
sc07B ::vkXXのXXは適当な三桁くらいの数字でも動作するものなのでしょうか?
2020/07/18(土) 15:04:58.95ID:gfn4oPAO0
>>209
キー指定に全角が混ざってるからだろ
あとセミコロンも仮想キーコードとスキャンコード両方並べてるし
211名無しさん@お腹いっぱい。 (ワッチョイ 0596-aTVc)
垢版 |
2020/07/18(土) 21:55:27.65ID:5I0TjaiB0
>>210
ありがとうございます、おかげで置き換え以外上手く行きました
2020/07/18(土) 22:23:18.22ID:K/vJ5a0r0
>>211
間違ってたらスマン、無変換キー単独で押しても何も起こらないようにしたいなら
sc07B ::return
だと思うけど、殺してしまうの何かもったいないような
2020/07/18(土) 22:37:02.59ID:g7e6OMMf0
誤動作させたくなかったらIMEのプロパで無変換キーの割り当て全て無しにしとけばいいだけでしょ
214名無しさん@お腹いっぱい。 (ワッチョイ 0596-aTVc)
垢版 |
2020/07/19(日) 01:39:06.45ID:DHlvlCWw0
>>212
>>213
すみません、私の書き方が悪かったです。
私がしたいのは、無変換をキーキーボード上には割り当てられていない
第二のaltキー的な新たなキーにしたいのです。
2020/07/19(日) 01:55:08.22ID:N4SWN7YZ0
タスクトレイにあるアイコンを操作したくて
http://lukewarm.s101.xrea.com/myscripts/
にある 「タスクトレイアイコン操作」 スクリプトの中にある 使用例(既に起動しているAutoHotkeyのトレイアイコンを(全て)ダブルクリックする)
を実行してみたのですが何も起こりません。
なぜでしょうか?

スクリプトは以下です。
https://pastebin.com/zpFL2BA0

Tray_GetInfo(idx,ByRef hwnd,ByRef uid,ByRef msg,ByRef hicon)
のByRefと言うのがよくわからないのですが、この関数を実行すると ByRef hwnd
の位置にある実引数に自動で値が入るのでしょうか?
最後にあるLoopの中に、
msgbox, %hwnd%
を書いても全て 0 と表示されます。
2020/07/19(日) 02:02:12.40ID:62gcooW20
>>214
だからIMEで機能割り当て無くしとけば無変換キー自体は単独では何の機能も持たない
第二のaltキーのように修飾キーとして使える
IME以外にデフォルトで無変換キーに機能割り当てしてるソフトなんてまず無いし
逆にそれでなにが不都合あると言うんだ
217名無しさん@お腹いっぱい。 (ワッチョイ 0596-aTVc)
垢版 |
2020/07/19(日) 02:08:38.28ID:DHlvlCWw0
>>216
すみません、私が理解出来てませんでした。
ありがとうございます。
2020/07/19(日) 18:24:50.56ID:dirzI1+ha
>>215
ByRef は 渡した変数の内容が変更される可能性があるという認識はあっている

hwndが0になるのは、たぶん Tray_GetInfo( ) の中で
SendMessage,0x417,% idx-1,%lpTB%,ToolbarWindow321,ahk_class Shell_TrayWnd
(0x417 は TB_GETBUTTON)
に失敗しているからだと思う
その直後でErrorLevelを見るとエラーになっていると思う
回避法はわからない
管理者権限では回避できなかった

具体的にどういう操作をしたいのかによって別のやり方もあると思う
2020/07/19(日) 19:35:17.18ID:N4SWN7YZ0
>>218
回答ありがとうございます。
このスクリプトの更新日を見たら2006年とかなり古いのでwindowsの仕様が変わって
動かないのですかね?

やりたいことはタスクトレイアイコンをクリックしたいだけなのでmouseclickを使っていたのですが、
検索すると>>215にあるスクリプトが出てきたので試してみた次第です。
2020/07/19(日) 19:44:32.55ID:I29ILi9k0
win仕様もahk仕様も変わってるから難しいと思う
ANSI版(ahk basic)でやってみて動けばラッキー
2020/07/19(日) 20:09:03.48ID:Z2QAfO/e0
>>219
そのスクリプトのことは知らないけど
Win10でトレイアイコンを操作したいならWin+Bでトレイアイコンにカーソルが行く
矢印キーで選ぶかアプリケーションの頭文字のキー(AHKアイコンならA)で選択して
Enterまたはメニュー出したいときはAppsKey

これらを組み合わせればSendだけで大体の操作できる
2020/07/19(日) 20:33:01.17ID:N4SWN7YZ0
>>221
Win+Bでタスクトレイにフォーカスが行くのは知りませんでした。
ありがとうございます。
2020/07/19(日) 20:37:21.36ID:Z2QAfO/e0
>>222
比較的新しいショートカットだからね
俺も昔はトレイアイコンの画像保存しといてImageSearchでMouseMoveとかしてたけど
2020/07/20(月) 18:39:59.26ID:cqKEaSeFM
みんなエディタ何使ってるの?
AHK studio、日本語入力できないとかなんだコレ、、、
2020/07/20(月) 18:46:15.41ID:6QeqbF/D0
>>224
自分はNotepad++
226名無しさん@お腹いっぱい。 (ワッチョイ b676-h8LP)
垢版 |
2020/07/20(月) 19:59:04.61ID:TCRNHUMW0
>>224
VSCode
AHKの拡張機能がある
227名無しさん@お腹いっぱい。 (ワッチョイ b676-h8LP)
垢版 |
2020/07/20(月) 20:11:35.76ID:TCRNHUMW0
下のコードで、a.ini内のパスを相対パスにする方法ゆる募
.\\とか%A_ScriptDir%\scripts\a.batとかは一応ひと通り試したけどだめだった
[test.ahk]
IniRead, val, %A_ScriptDir%\script\a.ini, section, key
If (val != "ERROR") {
Run, %val%
}
[a.ini]
key=C:\AutoHotkey\script\a.bat
2020/07/20(月) 20:37:36.27ID:KuYhS1WK0
%A_ScriptDir%\scripts\a.bat
iniread後に
Transform, runpath, Deref, % val
https://www.autohotkey.com/docs/commands/Transform.htm#Deref

.\scripts\a.bat
AttributeString := FileExist(val)
https://www.autohotkey.com/docs/commands/FileExist.htm

スマホからなんで実際には試してない
コピペで動かなかったらすまん
2020/07/21(火) 03:48:29.75ID:aMj/sQ1Q0
特定のアプリだけミュートにできねえかなぁ
nircmd使う方法しかでてこないけど、オンゲやるとチート対策ソフトに弾かれる可能性あるから使いたくないし
2020/07/21(火) 08:45:36.20ID:IFAKf5IL0
>>229
アプリ単位で良いなら、タスクトレイのボリュームアイコンを右クリックして「音量ミキサー」を開けばできるよ
「ファイル名を指定して実行」からsndvol.exeを実行してもOK

スタートメニューから「アプリの音量」で検索すると「サウンドミキサーのオプション」が出てくるから、そっち(アプリの音量とデバイスの設定)でもできる
2020/07/21(火) 08:53:56.12ID:3rEYqijc0
>>230
だからそれをAHKなどで操作したいっつー話なんじゃねえの
知らんけど
2020/07/21(火) 10:50:53.55ID:aMj/sQ1Q0
>>230
もちろん、それでできるけどahkもしくは他の方法でもいいけどショートカットキーでやりたくてね

フルスクリーンゲームやっててyoutubeで音楽聞いてると、いちいちChromeの音量切るの面倒くさいのよ
2020/07/21(火) 11:12:19.45ID:saCvU2px0
>>229
単語並べてググって出た
https://github.com/kristoffer-tvera/mute-current-application

一部効果ないやつあるようだけど
2020/07/21(火) 11:50:16.01ID:IFAKf5IL0
>>232
RunコマンドでSndVol.exe開いて
WindowSpyで調べたミュートボタンをクリックして閉じるとかで良いんじゃないかな?
AutoHotkeyのインストールディレクトリにあるAU3_Spy.exeかWindowSpy.ahkを実行して、
ミュートボタンにカーソルあわせると「classNN」が分かるよ(ToolbarWindow324みたいなやつ)
※WindowSpy.ahkだと、Follow Mouseにチェックつけないとダメかも

なんかコード書いたら書き込めない...(´・ω・`)
2020/07/21(火) 11:54:13.07ID:IFAKf5IL0
>>232
https://pastebin.com/h5jg9UNA
こんな感じのを適当なショートカットキーで実行するとか

でも、フルスクリーンのゲームやってる時に音量ミキサー開いたら、フルスクリーンが解除されちゃったりするかな?
2020/07/21(火) 12:13:10.57ID:5XlMbZFU0
× AttributeString := FileExist(val)
AttributeとAbsoluteカン違いしてたわすまん
絶対パス取得はfile-loopでA_LoopFileLongPathじゃないと取れないか

というかini内の記述を絶対パスにしたくない(相対記述→絶対パス)って意図だと捉えてたけど
iniは絶対パス記述でAHKで省きたい(絶対→相対)って意味だったらすまん
2020/07/21(火) 13:07:13.76ID:aMj/sQ1Q0
>>233,>>235
レスありがとう、時間あるときちょっと試してみるわ
238名無しさん@お腹いっぱい。 (ワッチョイ b676-h8LP)
垢版 |
2020/07/21(火) 20:10:06.29ID:6AnSQ4cb0
>>236
ありがとう

スクリプトフォルダ内の複数のbatファイルから選択してRunするために、
データはIniファイルに突っ込んでて、
メイン環境なら絶対パスでいいけどUSBやらなんやらで持ち出したときに
動作しないから%A_ScriptDir%のノリでIniファイルに記述したいなと
239名無しさん@お腹いっぱい。 (ワッチョイ b676-h8LP)
垢版 |
2020/07/21(火) 20:12:00.29ID:6AnSQ4cb0
>>238
データは、というかBatファイルのパスをIniファイルに記述してる

bat1 = C:\AutoHotkey\script\1.bat

みたいな

それをAHKからReadしてRunさせてる
2020/07/21(火) 20:46:09.78ID:5XlMbZFU0
変数展開したいならTransform Derefだが
起点が決まってるなら相対のままworkingdir指定でもいい気がするけどね

Run, %val%, %A_ScriptDir%
241名無しさん@お腹いっぱい。 (ワッチョイ f16d-keh3)
垢版 |
2020/07/23(木) 00:41:47.27ID:pi8EOXNV0
ウィンドウが呼び出したダイアログがアクティブになった事を確認したいんですがうまくいきません
ダイアログの場合って別のやり方が必要なんですかね?
#IfWinActive ahk_exe chrome.exe
~^s::
WinWaitActive, ahk_exe chrome.exe,"名前を付けて保存", 2
if(ErrorLevel == 0){
 MsgBox, "OK"
}else{
 MsgBox, "NG"
}
2020/07/23(木) 00:54:52.04ID:OmJCQ1JO0
>>241
「名前を付けて保存」はウィンドウタイトル
あと "" は要らない
最後にReturnする
243名無しさん@お腹いっぱい。 (ワッチョイ f16d-keh3)
垢版 |
2020/07/23(木) 01:03:09.31ID:pi8EOXNV0
>>242
うまくいきました、ありがとうございます
244名無しさん@お腹いっぱい。 (ワッチョイ 0b76-Rmjr)
垢版 |
2020/07/23(木) 20:42:11.81ID:d1WuC/N20
>>240
ありがとう
道が見えた
245名無しさん@お腹いっぱい。 (ワッチョイ 0b76-Rmjr)
垢版 |
2020/07/23(木) 20:54:09.64ID:d1WuC/N20
AutoHotkey.ahk − a.ahk
|
− b.ahk
[a.ahk]
a::Gui生成
GuiClose:終了処理
[b.ahk]
b::Gui生成

こんな感じの構成でそれぞれのGuiが別物の場合、bの方のGuiCloseを書くにはどうしたら?
2GuiCloseとかは2つGuiがShowされていたらの話だと思っていて、実際に動作しなかった。
246名無しさん@お腹いっぱい。 (ワッチョイ 0b76-Rmjr)
垢版 |
2020/07/23(木) 20:57:56.41ID:d1WuC/N20
>>245
失礼、普通に動作した
247名無しさん@お腹いっぱい。 (ワッチョイ f96d-keh3)
垢版 |
2020/07/24(金) 21:59:30.61ID:soU5eOWb0
自作DLL(別プロジェクトで動作確認は取れている)をDllCallすると
ErrorLevel -3で失敗してしまうんですが、
なぜ失敗するかの具体的な特定方法ってないですかね?
一応、A_WorkingDir的にDLLは見えているはずなんですけど

もしくはahkスクリプトからluaを実行して結果を取れると解決するんですけど
248名無しさん@お腹いっぱい。 (ワッチョイ 110a-UUnj)
垢版 |
2020/07/25(土) 00:23:11.88ID:0/SfUIv30
>>247
> ErrorLevel -3
これが具体的な失敗理由ですが?

A_WorkingDirをMsgBoxなどで確認しましたか?
bitの違いは?

・DLLがシステムディレクトリかA_WorkingDir(SetWorkingDirで変更可能)にある
・AHKとDLLの 32bit 64bit の違い
2020/07/25(土) 09:25:49.79ID:Be4fX4490
>>247
一応公式も置いとくね
https://www.autohotkey.com/docs/commands/DllCall.htm#error
DLLにアクセスできないってエラーだから、32bit/64bit確認、権限のチェック、あとは絶対パスで指定してみては?
250名無しさん@お腹いっぱい。 (ワッチョイ 0b76-Rmjr)
垢版 |
2020/07/25(土) 22:27:59.07ID:0QOLAh7b0
フックについて理解ができないので質問します。(非エンジニア)

通常はスクリプト読み込み時に、OS標準のAPI経由でOS側にホットキーを登録し、
キー入力時はOS側がAHKから渡されたキーであれば、AHKに処理を回す。

フック使用時は、AHKがそのキーが入力されるかを常に監視して、入力された場合、
その入力をOS側から遮断(横取り)して、直接スクリプトを実行する。(OS側は入力されたことに気づかない)
監視している分メモリの使用量が増加するが、動作は若干高速化する。

このようなイメージでよいでしょうか?
フック仕様のデメリットは、メモリ使用量以外ありますか?

また、以下の認識はあっていますか?
UseHook = InstallKeybdHook + InstallMouseHook
251名無しさん@お腹いっぱい。 (ワッチョイ 0b76-Rmjr)
垢版 |
2020/07/25(土) 22:31:58.79ID:0QOLAh7b0
もう一つ質問です。

若干意味も理解せず、以下の記述をスクリプトの頭につけています。
皆さんは、どのような理由で、どのように記述していますか?

#Persistent
#NoEnv
#UseHook
SendMode, Input
SetWorkingDir %A_ScriptDir%\scripts
SetTitleMatchMode, 2
#MaxHotkeysPerInterval 100
2020/07/25(土) 22:48:48.53ID:kjnyEGzO0
>>251
まず一通りwikiでコマンドの意味調べりゃ良いんじゃないかな
253名無しさん@お腹いっぱい。 (ワッチョイ 0b76-Rmjr)
垢版 |
2020/07/25(土) 23:07:13.87ID:0QOLAh7b0
>>252
それは当然調査済みですが、ちゃんとはわかってません。
おそらく追加したほうが良さそうな雰囲気なので入れてます。
ただ理解は曖昧なので、参考のため皆さんの設定を知りたいなと思いまして
2020/07/25(土) 23:14:33.77ID:kjnyEGzO0
>>253
こっちだってwiki読んで理解してるだけだからそこに書いてある以上のことは知らん
そもそもなんでwikiを読んで分からないのかがこっちには分からないし
例えば #Persistent なら「スクリプトを常駐状態にする。」ってwikiに書いてあるしそのまんまの機能
これ読んで分からないって余程日本語理解力に問題あるんじゃないかと
「当然調査済み」とか言い張ってるが本当に読んでるのかよ
2020/07/26(日) 10:00:51.37ID:fmdWSWo70FOX
ちゃんと理解しないで「なんとなく」とか「記述した方が良さそうだ」とか闇雲に記述するのはどうかと思う
例えば、常駐させる必要ない自動化スクリプトに#Persistent(#NoTrayIconも)なんて記述するのはアホの極みだ
2020/07/26(日) 15:28:37.12ID:CVyG8zhZ0
>>255
常駐させる必要ないスクリプトこそ一時的にアイコン表示されるのウザいから
必ず#NoTrayIconを記述してますが何か?
闇雲に記述するのはどうかと思うのは同意
2020/07/26(日) 16:19:43.46ID:fmdWSWo70
>>255訂正…後出しだけど
X(#NoTrayIconも)
○(に加えて#NoTrayIconも)
誤解を招く舌足らずな表現でスマンかった
2020/07/26(日) 19:38:30.96ID:b9LQTrtD0
読解力に問題があるって言ってもなぁ
じゃあ日本語ならどんな分野のどんな難しい文章もわかるのか?って話になるからな。

例えば、具体的によりくだけた表現に翻訳するには知識が必要となるわけで
知識差は読解力と違うし、同じ日本語でも何言っているかわかんないってことは大いにありえるから
253の気持ちはわかるし、そんな批判するようなことでもないように感じるけどな
■ このスレッドは過去ログ倉庫に格納されています

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