2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

AutoHotkey スレッド part28

1 :名無しさん@お腹いっぱい。 :2020/04/03(金) 18:35:06.00 ID:/YRSlUCD0.net
!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

2 :名無しさん@お腹いっぱい。 (アンパンW 2b7e-zxou):2020/04/04(土) 14:55:58 ID:oDQUgnR500404.net
いちもつ

3 :名無しさん@お腹いっぱい。 (ワッチョイ cb76-8H9x):2020/04/05(日) 12:03:16 ID:GWmWDwN30.net
Include先も含め、AutoHotkey.ahkに関係するホットキー全体で
変数を共有するためには、その都度IniReadするしかないですか?
グローバル変数的な何かはないのかなと。

可能なら、AutoHotkey.ahkからのInclude先AHKファイルで定義した変数を共有したいのですが。

下のような構成で、bを押したときにaaAAaaと表示させたい

[AutoHotkey.ahk]
#Include a.ahk
#Include b.ahk
Return

[a.ahk]
AAA := "aaAAaa"
a1::Return
a2::Return

[b.ahk]
b::MsgBox, % AAA

4 :名無しさん@お腹いっぱい。 (ワッチョイ 6511-eEke):2020/04/05(日) 12:48:56 ID:KUQx6rxd0.net
脳内で書いてないで実際に動かしてみなよ

5 :名無しさん@お腹いっぱい。 (ワッチョイW 25e5-HXgt):2020/04/05(日) 15:14:23 ID:fo7yX2Dr0.net
その状態でAutoHotkey.ahkを動かす分にはいける
[AutoHotkey.ahk]
AAA := "aaAAaa"
a1::Return
a2::Return
b::MsgBox, % AAA
Return
includeは全てAutoHotkey.ahkとして展開されるので↑と同義になるから

ただしaとbのincludeを逆にしたらautoexrcuteが働かない
includeの位置は要注意
[AutoHotkey.ahk]
b::MsgBox, % AAA
AAA := "aaAAaa"
a1::Return
a2::Return
Return

あと当然だが a.ahk / b.ahk を単体起動した時はAutoHotkey.ahkから起動した時のようには動作しない

6 :名無しさん@お腹いっぱい。 :2020/04/05(日) 16:49:19.64 ID:GWmWDwN30.net
>>5
わかりました、ありがとうございます。
Includeは内容を展開しているだけだったのですね。
まずInclude元でAutoexecuteが開始し、Includeがあればその先のReturnまでAutoexecuteされ、
またInclude元に戻って、そのInclude元のReturnまではAutoexecuteされるものだと思っておりました。

自分のスクリプト郡は、Include先でReturnがあったためにそこでAutoexecuteが終わってしまっていた訳ですね。

7 :名無しさん@お腹いっぱい。 :2020/04/05(日) 16:49:56.54 ID:GWmWDwN30.net
ところで以下ような感じに、ファイルごとに役割を分け、
またそれぞれのファイル内でしか使わない変数はそのファイル内に収めておきたいのですが、
その方法はありますでしょうか?(下の構成ではInputA.ahkの2行目でAutoexecuteが終わってしまいますよね。)

あまり美しくないですが、AutoHotkey.ahkの先頭にVariables.ahkのようなものをIncludeして、そこで変数リストを作るとかしかないですかね?

[AutoHotkey.ahk]
#Include InputA.ahk
#Include InputB.ahk

8 :名無しさん@お腹いっぱい。 :2020/04/05(日) 16:50:06.91 ID:GWmWDwN30.net
[InputA.ahk]
textA := "A"
a::MsgBox, % textA
d::MsgBox, % (textA . "D")

[InputB.ahk]
textB := "B"
b::MsgBox, % textB
c::MsgBox, % (textB . "C")

9 :名無しさん@お腹いっぱい。 (ワッチョイ 25e5-4JbH):2020/04/05(日) 17:54:59 ID:fo7yX2Dr0.net
test

10 :名無しさん@お腹いっぱい。 (ワッチョイ 25e5-4JbH):2020/04/05(日) 18:08:01 ID:fo7yX2Dr0.net
イニシャライズを各AHK内で完結させたいならsubかfunctionにしてcall
ただし全体のグローバル変数であるという事実は変わらんが

エラった時のpastbin AHKのハイライトもあるのね
https://pastebin.com/dkUfkDTj

ただこれだと一時的に#includeをコメントアウトで外したいときにautoexecuteの
手直しも必要になるので islabel() isfunc() を入れたほうがいいかも

11 :名無しさん@お腹いっぱい。 (ワッチョイ cb76-8H9x):2020/04/06(月) 01:59:36 ID:QgAFECbT0.net
>>10
なるほど確かにこれなら実現できますね!
ありがとうございました、とても勉強になりました

ところで下のようにしてみたのですが、#Include では変数が使えないみたいですね。
何かいい案はないでしょうか?

というのも、実際は10以上のファイルがあるので、ダラダラ書くよりLoopで回したいものでして・・・

https://pastebin.com/g2Gc1cDU

12 :名無しさん@お腹いっぱい。 :2020/04/06(月) 03:45:46.30 ID:pNj6d1Pb0.net
無理だが
いっそ関数ライブラリ化して全部 %A_ScriptDir%/Lib に押し込むという手もある
したらincludeそのものが不要になる

13 :名無しさん@お腹いっぱい。 :2020/04/06(月) 04:21:20.13 ID:8dTlIF+30.net
>>11
Includeするahk内で更にInclude出来るはずだぞ(その内容は「#Include 〜.ahk」だけでも良い)
だからメインahk(AutoHotkey.ahk)内でのInclude用ahkの名前は固定しといて
メインahkでそのahkファイルを書き換えすれば手直しは要らなくなると思う

例として、メインahkにIncludeするファイル名を「Include_ahk.ahk」とし

Include_ahk.ahk内は
-----------------------------------
#Include InputA.ahk
#Include InputB.ahk
-----------------------------------

↑の2行はメインahkのautoexecute内で検索→名前取得→書き込み処理を実行して
この処理の後に「#Include Include_ahk.ahk」を記述する

拙い説明 & 出来なかったらスマヌ
もしアレだったらMGLのスクリプトが参考になると思う

14 :名無しさん@お腹いっぱい。 :2020/04/06(月) 04:28:36.79 ID:8dTlIF+30.net
>>13
>もしアレだったらMGLのスクリプトが参考になると思う
ごめん真っ新なMGLでは参考にはならないかもしれないのでこの件は忘れて

15 :名無しさん@お腹いっぱい。 :2020/04/06(月) 10:48:05.12 ID:Tm/x8Nf+M.net
https://www.autohotkey.com/docs/commands/_Include.htm
マニュアル読み直してたらv1.1.28以降はErrorlevelとコマンドライン文字列以外のすべての組み込み変数が有効とあるね
Loop,Filesのローカル組み込み変数はどうなんだろ
もし使えるなら↓みたいにできるのかも(出先からのなので試してはいない)
#include %A_SprictDir%
Loop, Files, %A_SprictDir%\*.ahk, F
If (A_LoopFileFullPath != A_SprictFullPath)
#include %A_LoopFileName%

16 :名無しさん@お腹いっぱい。 :2020/04/07(火) 09:25:32.40 ID:s8mR46Q4M.net
↓以下テンプレ(微修正)
----------------------------

!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
!extend:on:vvvvv:1000:512
↑スレ立てする時は3行にして下さい

■配布元
https://autohotkey.com/download/

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

■日本語解説等
AutoHotkey Wik
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/

17 :名無しさん@お腹いっぱい。 :2020/04/07(火) 09:26:20.67 ID:s8mR46Q4M.net
■重要事項
オリジナルである、旧 "AutoHotKey" の開発は2009年9月で終了している。
現在は、そこからフォークした "AutoHotkey_L" が主流となり、2014年1月からは後のLが取れ
正式にAutohotkeyとして扱われるようになりました。
よって古いスクリプト(主にDllCall)は最新Verで動作しないものがあり、その場合はスクリプトの修正が必用です。

旧版のAHK1.0との変更点多数。新しい仕様や互換性についてはドキュメントを良く読むこと。
https://www.autohotkey.com/docs/AHKL_Features.htm
http://ahkwiki.net/Addition_L

※新規利用者には最新版を推奨しますが、AHK1.0(2009年9月までのVer)の利用者はAHK1.1への移行に際して
少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
そのままでは動作しません。安定利用できている環境を崩して移行するかどうかは各人の判断による。
MouseGestureについては有志の方が最新AHK対応版(MouseGestureL.ahk)を配布しているのでそれを利用するのもありです。
https://hp.vector.co.jp/authors/VA018351/mglahk.html

※ACC.ahk(旧版用)とCOM.ahkはフォーラムのリンク先にファイルが存在しませんので下記から入手してください。
https://ux.getuploader.com/autohotkeyl/download/24/ACC%2BCOM.zip
※Unicode版のACC.ahkは下記(AccInfoViewer.ahk付き)またはフォーラムから入手してください。
https://ux.getuploader.com/autohotkeyl/download/76/ACC_Unicode_and_AccInfoViewer_kai.zip

■質問に際して
OSの種類(7/8/10)や32/64ビット版の違い、利用するAutoHotkeyのバージョンを明記すること。
また、操作したいソフト・やりたい処理などは具体的に書いた方がレスが付きやすい傾向にある。

5chの仕様の関係で、このスレではインデントに全角スペースを使ってコードを貼り付ける事があるので、
レスをコピペして利用する場合は行頭の全角スペースをタブ等に置換してから利用すること。

18 :名無しさん@お腹いっぱい。 :2020/04/07(火) 09:44:35.19 ID:ni8KzYV1M.net
以下FAQ等

■実行環境
Q1:スクリプトに書いた日本語が文字化けしちゃうんだけど...
A1:スクリプトファイルを「UTF-8」の「BOM」付きで保存する。(AHK1.1)

Q2:初めて使うけどどれを使えばいいの?
A2:AHK1.1のユニコード版を推奨。
  旧流行らせるページの配布物をそのまま使う場合はAHK1.0を利用する事。
  64ビットOSでAHK1.1、32ビット版の使用は制約が多いので64ビット版を強く推奨。

■リマップ・ホットキー割り当て
Q1:[CapsLock(英数)][ひらがな][全角/半角]キーの割り当てがうまくいかないよ
A1:OSのローカライズ段階で発生してる問題なので日本語環境だとLock系キーの動作は不定。
  OS側がキーUp/Down情報を正しく返してこないのでAHKのみで対処は無理です。
  レジストリ変更等で別キーへ再配置を行い、AHKで割り当てを行うという二段構えが必要。

  例) ChangeKeyを使って[ひらがな]を[F13]にする
  AutoHotkeyで任意のキーをF13にリマップする(例えばF12をF13にリマップし、スクリプトを実行)。
  F12::F13
  Changekeyを起動する。( https://forest.watch.impress.co.jp/library/software/changekey/ )
  「調査」→「どのキーなのか?またはスキャンコードでキーを変更します」を選択。
  F12を押すとスキャンコード(0x0064はF13)が表示されるので覚えておき「終了」をクリック。
  「ひらがな」キーをクリックすると「【ひらがな】キーをどのキーに変更しますか?」という
  ウィンドウが表示されるので右上の「Scan code」をクリック。
  覚えておいたスキャンコード(0064)を入力し、「OK」ボタンをクリック。
  「登録」をクリックし、Windowsを再起動する。

19 :名無しさん@お腹いっぱい。 :2020/04/07(火) 09:45:55.32 ID:ni8KzYV1M.net
Q2:「^1::Esc」とリマップ定義したけど [Ctrl]+[1] を押したらスタートメニューが出ちゃうけどどうすればいいの?
A2:リマップは修飾キー(Ctrl,Shift,Alt,Win)の押下状態を引き継いでキー発行するので、[Ctrl]+[Esc] がキー送信されるため。
  これを避けるには、「Send」コマンドを利用して明示的に修飾キーなしのキーを発行をすればよい。
  ^1::Send, {Esc}

Q3:[Shift], [Ctrl], [Alt], [Win]以外を修飾キーとしてキー割り当てしたいよ
A3:コンビネーションキーの機能で実現ができる。
  例) 無変換 + IKJLキーをそれぞれ「↑↓←→」に割り当てたい場合は以下のように記述する。
  sc07B & I::Send, {Blind}{Up}
  sc07B & K::Send, {Blind}{Down}
  sc07B & J::Send, {Blind}{Left}
  sc07B & L::Send, {Blind}{Right}

Q4:「XX hotkeys have been received in the last XXXXms.」って怒られるんだけど、、、(XXは環境による)
A4:多分自分自身のキーを送って無限ループになっている。 例) 「a::Send, a 」
  先頭に $ を付ければ回避できる(NT系のみ)。 例) 「$a::Send, a」
  #UseHookで全部にキーボードフックを適応する方法でも可。

Q5:キーリマップを使うとキー押下中に連打するけど、マウスボタンの場合は連打しない…
A5:マウスはキーリピートしないので、Loopなどを使って自前でリピートさせてください。

Q6:ジョイスティックのリマップがうまくいきません!!助けて
A6:ジョイスティックではリマップできない。「Send」コマンドでキー発行する必要がある。
  × Joy1::Esc
  ○ Joy1::Send, {Esc}

Q7:ジョイスティックの上下左右に割り当てたいけど、JoyLeft,JoyUpってホットキーは無いの?
A7:無い。AHKのジョイスティックサポートはかなり貧弱なのでプログラマブルにやる必要がある。

20 :名無しさん@お腹いっぱい。 :2020/04/07(火) 09:46:33.37 ID:ni8KzYV1M.net
Q8:ジョイスティックのボタン1とボタン2の入れ替えなどはどうやってやるの?
A8:AutoHotkeyではできない。

Q9:[Ctrl][Shift][Alt]が押されっぱなしになる時がある。これってAHKのせい?
A9:AHKが原因の場合とそうでないときがある
  ○AHKが原因の場合
  AHKには、以下のような修飾キー付きのホットキーで修飾キー無しでキーを発効する場合、
  一時的に修飾キー押下を解除して、発効後に押下状態を再度設定する機構がある。
  しかしこのように発効するキーストロークが多い場合は、Sendコマンドが完了する前に
  物理キーが押下解除されてしまっている場合がある。この齟齬が押しっぱなしの原因となる。
   例) ^W::Send, {w 30}
  これを回避するためには、以下の方法をとればよい:
  ・キー押下状態を常に監視するキーボードフックを導入する(#InstallKeybdHook)
  ・キー発効のコマンドを SendInput, SendPlay にする(SendModeで一括指定でもよい)
  ・上記二つが出来ない場合は、SetKeyDelay, 0 等としてキー発効をなるべく早く行うか、
   #HotkeyModifierTimeout で修飾キー押下のタイムアウト値を長めに設定をする。
  なお、他のキー発効を行うツール(クリップボードユーティリティやマウスジェスチャツールなど)が、
  発効する修飾キーが原因となる場合もあるが、フックの導入でほぼ解決出来ると思われる。

  ○AHK以外が原因の場合
  環境により異なるので何とも言えないが、以下のような環境の場合発生する事が報告されている。
  ・Logicool(Logitec)のマウスユーティリティSetPoint(verによっては問題ない事もあるとか)など他多数
  ・VirtualPC, WMWare, 窓使いの憂鬱 等のキーボードフィルタドライバを用いるアプリケーションを使っている

21 :名無しさん@お腹いっぱい。 :2020/04/07(火) 13:28:35.92 ID:OicfBoSv0.net
テンプレ貼り乙

22 :名無しさん@お腹いっぱい。 (ワッチョイ c676-Blqg):2020/04/08(水) 01:27:19 ID:2MlwBg4U0.net
皆さんありがとうございます。

>>12
今回は、関数に落とし込まない方針で行きます。

>>13
つまり、↑のPastebinで貼ったコードにあるincludeFilesはInclude_ahk.ahkの記述内容から取得して、各ahkの初期化セクションへGoSub
その後Include_ahk.ahk自体を読み込むということですか?
記述内容から読み出す方法がわからないので勉強してきます。

それから、MGLのスクリプトは現状読めない+あまり複雑にはしたくないので、もしかしたら現状のままメインahkで2箇所を修正する方針でいくかもしれません。

>>15
読みました。
Include指令ではLoop系の組み込み変数は使用できないのではないですか?
工夫して、%A_LoopFileName%の部分を書き換えられれば良いと思うのですが、いかがでしょうか。これは難しいですか?

23 :名無しさん@お腹いっぱい。 :2020/04/08(水) 19:25:50.63 ID:hVpKLzMw0.net
ジョイスティックの傾きを
GetKeyState, X, JoyX, P
で取得しようとしても、「49.999237」の値しか取得できない。
だけど、autohotkeyのメニュー画面がアクティブの状態だと正常に取得できる。

他のウィンドウでも正常に取得できるようにするにはどうすればいいでしょうか

24 :名無しさん@お腹いっぱい。 :2020/04/08(水) 19:50:51.07 ID:3Lm0oXeq0.net
>>23
試したけど他のウィンドウでも普通に取得できるんだが?

25 :名無しさん@お腹いっぱい。 :2020/04/08(水) 20:28:09.00 ID:hVpKLzMw0.net
>>24
そうすると自身のpc環境特有の問題っぽいですね。
再インストとかいろいろ試してみます

26 :名無しさん@お腹いっぱい。 :2020/04/08(水) 20:37:42.71 ID:3Lm0oXeq0.net
>>25
ちなみに中央値は49.999237で合ってる
スティック左に倒したときは0.001526、右に倒した時は100.000000
環境というよりも何か根本的な勘違いじゃね
AHKの画面アクティブだけ動くってとこからして

27 :テンプレ貼るとき注意!! :2020/04/08(水) 21:31:48.00 ID:OlhHP8xJM.net
↓以下テンプレ ※規制が厳しくなったせいで貼るときに浪人がないとBBQに規制されるので注意!!
https://pastebin.com/aYGhWqyJ

おかげで手持ちの回線全部焼かれた (#^ω^)ビキビキ

28 :名無しさん@お腹いっぱい。 :2020/04/09(木) 04:30:25.11 ID:slr7f9330.net
こえーよなんだよこのサイト
https://i.imgur.com/UX483M4.png

29 :名無しさん@お腹いっぱい。 (ワッチョイ 4703-zfCe):2020/04/09(木) 19:08:11 ID:IPYVjpWT0.net
F13+WASDなどでカーソルを動かせるようにしてみたけど、それ以外のキーを押すと
普通に文字が入力されてしまう。
たとえばEを押しても入力されないように無視することはできない?

30 :名無しさん@お腹いっぱい。 (ワッチョイ 9b29-AglQ):2020/04/09(木) 19:55:10 ID:dK6YnmRs0.net
F13 & e:: Return

誤爆しそうなWASD周りを一通り入れときゃ良いんじゃね

31 :名無しさん@お腹いっぱい。 :2020/04/10(金) 00:26:31.34 ID:BgFZovgl6.net
>>29
実際に自分で使っている方法(もっといい方法はあると思うけど)
https://pastebin.com/R5KhbMvt

32 :名無しさん@お腹いっぱい。 :2020/04/10(金) 04:00:55.40 ID:x144LDcxM.net
>>29
LowLevelKeyboardProcを使って入力を破棄する方法
大量のホットキーを登録しないで済む
https://pastebin.com/rcNGBzVV

33 :名無しさん@お腹いっぱい。 :2020/04/10(金) 10:12:10.42 ID:xZVTOdHh0.net
>>30-32
ありがとう同志たち

34 :名無しさん@お腹いっぱい。 :2020/04/10(金) 21:55:25.25 ID:hnZnjAMo0.net
ホットキーやタイマーでラベル名の代わりに関数指定できるけど
ここで指定した関数ってLibに置いといても自動で#Includeされないのね

35 :名無しさん@お腹いっぱい。 (ワッチョイ c676-zfCe):2020/04/13(月) 00:59:19 ID:nrV1kuRV0.net
OneNote2016でSend, {Up}とSend, {Down}が動作しない問題が
あっさり解決したから一応共有しとく
OS: Windows 10
AHK Version: 1.1.32.00

#If, WinActive("ahk_exe ONENOTE.EXE")
vk1D & i::ControlSend, OneNote::DocumentCanvas1, {Up}
vk1D & k::ControlSend, OneNote::DocumentCanvas1, {Down}
#If

36 :名無しさん@お腹いっぱい。 :2020/04/13(月) 08:05:15.53 ID:KIluxZ1e0.net
>>35
AHK_L1.1.08.01では

#IfWinActive ahk_class Framework::CFrame
^E::SendInput {blind}{UP}
^X::SendInput {blind}{DOWN}
#If
で動作してるが、もしかして非互換性の問題とか?

37 :名無しさん@お腹いっぱい。 :2020/04/13(月) 12:34:34.31 ID:nrV1kuRV0.net
>>36
こっちの環境では動作しないみたい
ネットにはいろいろ情報転がってたけど、おま環だらけだったし、
>>35 に書いたやつも俺環かもしれない

ついでに >>35 補足: Blindつけ忘れた

38 :名無しさん@お腹いっぱい。 (ワッチョイ 8e76-q+nc):2020/04/14(火) 02:46:49 ID:pKp7OSAA0.net
ahk外部の話になっちゃうんだけど
タイトルバーに .py が含まれていたら
Python辞書を指定して定型文ツールを起動みたいなことやりたいんだけど
辞書指定して起動できる定型文貼り付けツールみたいのないかな
その部分までahkで真面目に実装すると大作になりそうなんでちょっとめんどい

39 :名無しさん@お腹いっぱい。 (ワッチョイW f7e5-Y7bu):2020/04/14(火) 08:18:24 ID:dRMATM1W0.net
素直に言語補完やスニペット機能のあるエディタ使うのがいいとおもうが
タイトルバー .py ってことはこういうとこに貼る断片コードじゃなくて
ちゃんとファイルとしての作成されてるpythonスプリクトなんだろうし

40 :名無しさん@お腹いっぱい。 :2020/04/17(金) 22:43:44.52 ID:NUam5qRj0.net
winキー押下のときスクロール量を増加、
ctrl+winキーでさらにスクロール量増加、という処理をしたいです。
winキーをF13にしているんですが、ctrlがたまに抜けてwebブラウザ見てるときとかに
ズームになってしまいます。。。宜しくお願いいたします。

; スクロール量増加
F13 & WheelUp::
If GetKeyState("Ctrl", "P") ;ctrlが押されているか?の確認
{
Send, {WheelUp 20} ;ctrl含めた3つ同時押しの処理
}
Else
{
MouseClick,WheelUp,,,5 ;2つ同時押しの処理
}
Return

F13 & WheelDown::
If GetKeyState("Ctrl", "P") ;ctrlが押されているか?の確認
{
Send, {WheelDown 20} ;ctrl含めた3つ同時押しの処理
}
Else
{
MouseClick,WheelDown,,,5 ;2つ同時押しの処理
}
Return

41 :名無しさん@お腹いっぱい。 (ワッチョイ ff76-xa8R):2020/04/21(火) 02:38:03 ID:YUMRQewr0.net
>>40
その書き方だと1回目は#WheelUpだけど2回目からは^#WheelUpになってるんじゃないかな?
と思っていろいろ試したけど、うまくいかなかった。
下のコードも試したけど、WheelDownはGetKeyStateが効かないらしく失敗。
(KeyHistory見たら10〜30ms押下状態維持してる感じだったし、このWhileでいけるんじゃないかと思った)
もしかしたら、SetTimerの10ms刻みくらいでいけるかも?
https://pastebin.com/wmnY8P5R
なんならChromeのズーム周りの挙動は不審なのか?
#WheelUp::Send, {WheelUp 5}
でもたまにズームするし、なんだろね
結局よくわからなかったので、他の有識者に任せます
ごめんなさい

42 :名無しさん@お腹いっぱい。 (ワッチョイW ffdc-AOfM):2020/04/21(火) 09:58:46 ID:UBVe/E0a0.net
GetKeyStateは押下情報見てるだけで横取りしてるわけじゃなかったような
ctrl+wheelの挙動にしたくないならブラウザがCtrl押下を検知しないよう
Hotkeyかなんかで殺しとかなきゃいかんのでは

43 :名無しさん@お腹いっぱい。 :2020/04/25(土) 02:22:43.58 ID:MwuvcNJDa.net
ウィンドウの位置を配置するWINキー+↑↓←→をWINキー+IKJLにしたくていろいろやったんですけど、どうしても安定して同じように動かないです。
同じようなことやってる人がいたらサンプル見せてもらえませんか?

44 :名無しさん@お腹いっぱい。 (ワッチョイ 2e30-1Gce):2020/04/25(土) 02:33:08 ID:kLRbU++B0.net
>>43
何がどう安定しないのかの原因追及ならまだしもクレクレは却下
自分のスクリプトをまず貼るのが礼儀

45 :名無しさん@お腹いっぱい。 (ワッチョイ aea5-hR2K):2020/04/25(土) 12:47:37 ID:SNW5imkM0.net
>>43
とりあえず、Win+Lで別のことをやりたいなら、
Winキーをレジストリ系のキーチェンジャーでF13とかにしておかないとダメだろうね。

46 :名無しさん@お腹いっぱい。 :2020/04/25(土) 13:56:42.52 ID:MwuvcNJDa.net
>>44
すいません。出直してきます。

47 :名無しさん@お腹いっぱい。 :2020/04/25(土) 13:58:24.18 ID:MwuvcNJDa.net
>>45
キーチェンジャーで探してみます。ありがとうございます。

48 :名無しさん@お腹いっぱい。 :2020/04/25(土) 15:27:49.21 ID:DF0bAaYE0.net
>>47
今もできるのか確認してないけど試してみたら?他のWinキー使ったショートカットもなくなってもいいなら
ttps://sites.google.com/site/autohotkeyjp/reference/misc/Override
>Win+L および Win+U を除き、ウィンドウズのホットキーはレジストリを以下のように書き換えることで無効化出来る。

49 :名無しさん@お腹いっぱい。 :2020/04/25(土) 16:23:34.31 ID:2ju+Mg1a0.net
>>48
>Win+L および Win+U を除き
とある時点で論外だろ
なんでこう無意味なレスするんだか

>>45のやり方は一応Win+Lも無効化出来るが標準のWinキーショートカット全て使えなくなるから
使いたいコマンドは全てF13で登録し直さなくてはならない

>>43
そもそもWinキーを修飾キーにしなきゃいけない必要あるのか?
IKJLと組み合わせるならAppsKeyや変換キーなどを修飾代わりに使えばそういう煩わしさも無く簡単に出来る

50 :名無しさん@お腹いっぱい。 (ワッチョイ aea5-hR2K):2020/04/25(土) 18:18:37 ID:SNW5imkM0.net
登録し直しに関しては、
f13::LWin
で良いのでは?

51 :名無しさん@お腹いっぱい。 :2020/04/25(土) 23:25:50.05 ID:6AVBCm7d0.net
CapsLockをF13にレジストリで書き換えて似たようなことしてるけどかなり快適

52 :名無しさん@お腹いっぱい。 (ワッチョイ 3876-Btmo):2020/04/26(日) 16:38:48 ID:qSNpI2+j0.net
ポータビリティ重視してる身としてはレジストリ書き換えは論外だから、
その前提で工夫するだろうな

53 :名無しさん@お腹いっぱい。 (ワッチョイ 6bb1-QpYc):2020/04/26(日) 21:48:28 ID:fZASDaJl0.net
XPの時代はポータブルでできたけど、今はAHKを管理者権限で起動しないと完全な動作ができないんで無理

54 :名無しさん@お腹いっぱい。 (ワッチョイW d75a-lSy1):2020/04/26(日) 22:44:45 ID:2bxqh/0L0.net
チェンジキーアプリで、Winキー を 0x0064 にリマップし
F13 & i::Send {Lwin down}{Up}
F13 & k::Send {Lwin down}{Down}
F13 & l::Send {Lwin down}{Right}
F13 & j::Send {Lwin down}{Left}
で画面の移動できるんだけど、WINキーが押しっぱなし状態になって解除されない。。

55 :名無しさん@お腹いっぱい。 (ワッチョイ fa11-1Gce):2020/04/26(日) 22:54:04 ID:KoyAE8qb0.net
そりゃdownだからなあ

56 :名無しさん@お腹いっぱい。 (ワッチョイ a66f-1Gce):2020/04/26(日) 23:11:47 ID:o1f5ivz30.net
>>54
そこは普通 Send, #{Up} でいいだろ
どうしても # がダメな理由があるなら {Lwin Up} も付けろよ

57 :名無しさん@お腹いっぱい。 (ワッチョイW d75a-lSy1):2020/04/27(月) 00:09:00 ID:V/CoopeO0.net
>>56
両方やってみたけどウィンドウを移動中に効かなくなっちゃいます

58 :名無しさん@お腹いっぱい。 (ワッチョイW 4ee5-m7f2):2020/04/27(月) 00:23:11 ID:tTWj98L10.net
手元にPCないから試してないけど
F13 up:: Send {Lwin up}
は?

59 :名無しさん@お腹いっぱい。 (ワッチョイ a66f-1Gce):2020/04/27(月) 00:26:18 ID:9dSvcxyQ0.net
>>57
移動中とか意味不明
Win10なら最大化最小化などのショートカットだろそれ

で、何がダメなのか知らんが、F13を離したときに Send, {Lwin Up} するようにすりゃ良いんじゃねえの
色々と説明不足だしもう少し頭使え

60 :名無しさん@お腹いっぱい。 :2020/04/27(月) 12:07:24.96 ID:mi7Y/HPe0.net
windows8.1でキーボードやマウスからの入力を一時的に無効にしようと

^b::
blockinput,on
sleep, 5000
blockinput, off
return

のように書いても普通にキー入力を受け付けています。
この命令は効果がないのでしょうか?

61 :名無しさん@お腹いっぱい。 :2020/04/27(月) 12:26:53.86 ID:3hqSER8B0.net
>>60
Win10だけどうちでは管理者権限で実行すれば正常に動くぞ
普通の権限だと効果無し
ただしそのスクリプトだとCtrlを離す操作もブロックされてCtrl押されっぱなしになるから
5秒経過後blockinput, offにしたあと挙動おかしくなるからKeyWaitなどで離したあとBlockInput,onにした方が良いだろうな

62 :名無しさん@お腹いっぱい。 :2020/04/27(月) 12:38:53.15 ID:mi7Y/HPe0.net
>>61
管理者権限で実行したところ上手くいきました、ありがとう。

63 :名無しさん@お腹いっぱい。 :2020/04/27(月) 20:14:11.79 ID:fuQIAEB8M.net
>>40
昔からあるホットキーすり抜け問題
完全な回避は無理だがBlockInputやSendPlay(いろいろ制限あり)を使えば
高負荷時以外であれば回避できる

ホットキーすり抜け対策(要管理者権限)
https://pastebin.com/en1JqVym

64 :名無しさん@お腹いっぱい。 :2020/04/27(月) 20:15:13.63 ID:fuQIAEB8M.net
ホットキーすり抜けってなんぞや?という人はこちら

すり抜け条件
・修飾キーを入力(ホットキー、Send)
・高速で過剰な入力(ホイール回転など)
・PC負荷が掛かっている状態

ホットキーすり抜け再現スクリプト(要管理者権限)
https://pastebin.com/yHS3MAtF

65 :名無しさん@お腹いっぱい。 :2020/04/27(月) 20:19:15.89 ID:fuQIAEB8M.net
+WheelDown::SendInput d ; Shift + ホイール下回転

KeyHistory
h=Hook Hotkey
i=Ignored because it was generated by an AHK script
d=Down
u=Up

■正常(入力d)
  d 0.03 LShift    ← キー入力
  d 0.03 LShift    ← キーリピート
  d 0.03 LShift    ← キーリピート
h d 0.02 WheelDown ← キー入力(ホットキー開始)
i u 0.02 LShift    ← 修飾キー解除
i d 0.00 d       ← SendInput
i u 0.00 d       ← SendInput
i d 0.00 LShift    ← 修飾キー復元(ホットキー終了)

■すり抜け(入力D)
  d 0.03 LShift
  d 0.03 LShift
  d 0.03 LShift
h d 0.02 WheelDown
i u 0.02 LShift
  d 0.00 LShift ← すり抜け
i d 0.00 d
i u 0.00 d
i d 0.00 LShift

66 :名無しさん@お腹いっぱい。 (ワッチョイ 7f76-x2cz):2020/04/30(木) 02:55:18 ID:P5SWOXvf0.net
%A_MyDocuments%\AutoHotkey\Lib\mylib.ahk
というファイルを作ると
#include <mylib>
で参照できるようになるというのはわかったんですが
環境変数などを設定して上記フォルダ以外の任意の検索パス(c:\src\ahk\libなど)を指定する方法はないですか?

67 :名無しさん@お腹いっぱい。 (アウアウウーT Saab-+Q8n):2020/04/30(木) 15:10:49 ID:+ou1aYSca.net
>>66
変数は使えないけど
#include c:\src\ahk\lib
#include mylib.ahk
#include mylib2.ahk
という書き方ならできるね
http://ahkwiki.net/-Include

68 :名無しさん@お腹いっぱい。 (ワッチョイ df74-iPcU):2020/05/03(日) 08:39:44 ID:NG1wCXE/0.net
Ctrl + Vを押した時に
短押しの場合 Ctrl + V
長押しの場合 wiindowsボタン + Ctrl + V
という機能をつけようとしたんだけどうまくいかなかった
修飾キーの扱いがわるいのか、keywaitのところがおかしいのか

https://i.imgur.com/hZ6dEB9.jpg

#UseHook ;ホットキーラベルの定義で、常にフックを使用するようにする

Ctrl & v::
KeyWait,Control
KeyWait,v,T0.3 ;0.3秒対象キーが押されたかどうか
If(ErrorLevel)
{
send, <^v ;ここに任意のコマンド 長押し
KeyWait,Control
KeyWait,v
Return
}
KeyWait,Control
KeyWait,v,D T0.2 ;0.2秒対象キーが押されるのを待つ
If(ErrorLevel)
{
send, ^#v ;ここに任意のコマンド 1度押し
KeyWait,Control
KeyWait,v
Return
}

69 :名無しさん@お腹いっぱい。 (ワッチョイ bf91-ts7H):2020/05/03(日) 09:46:08 ID:BcgnsImu0.net
>>68
wikiのサンプルコードを見るのは良いけど一行ずつの意味を正しく理解して無駄を省けよ
長押しor短押し判定のみなら KeyWait,v,D T0.2 の部分は要らねえだろ
あと #(Winキー) 付け加える位置も間違ってるし


^v::
KeyWait,v,T 0.3 ;0.3秒対象キーが押されたかどうか
If(ErrorLevel)
{
msgbox, Ctrl+Vを長押ししました ;ここに任意のコマンド 長押し
KeyWait,Ctrl
Return
}
msgbox, Ctrl+Vを短く押しました ;ここに任意のコマンド 1度押し
KeyWait,Ctrl
Return

70 :名無しさん@お腹いっぱい。 (ワッチョイW e7e5-pSi1):2020/05/03(日) 10:17:19 ID:MUdN1Azr0.net
それ質問者は短押し0.3 長押し0.5 で判定のつもりで書いてると思うぞ
300msで長押しとみなすのは操作的にきついじゃろ

71 :名無しさん@お腹いっぱい。 (ワッチョイ bf91-ts7H):2020/05/03(日) 10:23:02 ID:BcgnsImu0.net
>>70
どこから0.5なんて数字が出て来たんだ?
別に0.3秒判定でも操作的には全然きつく無いんだが
普通の短押しってせいぜい100ms〜150msくらいだしな
事実>>69のスクリプトでも普通に押し分けられる
仮に0.5秒以上にしたいなら KeyWait,v,T 0.5 にすりゃいいだけだ

72 :名無しさん@お腹いっぱい。 (ワッチョイ df74-iPcU):2020/05/03(日) 14:38:23 ID:NG1wCXE/0.net
>>69
本当は
短押しの場合 Ctrl + C
二回押しの場合 wiindowsボタン + Ctrl + V
長押しの場合 Ctrl + V

としようと思ったんだけど(マウスのボタンに登録して1つのボタンで済ませるため)
Ctrl + Cまで混ぜると使い勝手悪くなりそうだから書くのをちょっと迷ってたんだ

ともあれ書いてくれたものを参考にしたら動きました、ありがとうございます

73 :名無しさん@お腹いっぱい。 (ワッチョイ 0758-ts7H):2020/05/03(日) 14:59:20 ID:+I3GRHTU0.net
>>72
とにかく参考にするにしても一行ずつどういう意味があるのか理解して使うことが大事
そうすりゃ元サンプルの通り2回押しの場合も入れようが省こうが自由に出来る

74 :名無しさん@お腹いっぱい。 :2020/05/05(火) 21:38:52.40 ID:S9G2EtUY00505.net
自作関数ってこの呼び出し方できないの?

mb(mes)
{
msgbox % mes
}

mb,"hello"
mb % "hello"

75 :名無しさん@お腹いっぱい。 :2020/05/05(火) 22:37:06.71 ID:i0X3+70y0.net
>>74
よく読んだ方が良いと思う
関数 - AutoHotkey Wiki
http://ahkwiki.net/Function

76 :名無しさん@お腹いっぱい。 :2020/05/06(水) 10:08:51.61 ID:b7Jl+TQP0.net
言語仕様酷すぎ
SquirrelとかLuaとかまともなスクリプトエンジン使ったのがあるけど
I/O周りの処理のノウハウに一日の長があるからこっち使うしかないんだよなあ。
自分で作ってみてもALT+F1が拾えないゲームが出て放棄した。

77 :名無しさん@お腹いっぱい。 (ワッチョイW 2e7e-4oMl):2020/05/06(水) 14:07:23 ID:E3pRlJgb0.net
PythonとかJavaScriptからトランスパイル出来たら最高

78 :名無しさん@お腹いっぱい。 :2020/05/12(火) 16:54:41.85 ID:E+fH0d4D0.net
たびたびお世話になってます。
LShift短押し(0.5秒以内とか)でSend,a
LShift長押しで本来の機能を持たせたく悪戦苦闘しています。
KeyWaitを軸に、GetKeyState,SetTimer、Loopなどを組み合わせtて試行錯誤しましたが歯が立ちませんでした。
特にKeyWaitが曲者?で、長押し中は定義から解放されず、本来のLShiftに回復してくれないのです。
詳しい方々、どうかよろしくお願いします。

79 :名無しさん@お腹いっぱい。 :2020/05/12(火) 17:26:37.24 ID:dy+j9Q/G0.net
>>78
少し上の>>69に長押しと短押しのサンプルコードがあるだろ
まずはそれを参考に自分で書いてみろ
それで上手く行かなかったらその書いたスクリプト貼りな

80 :名無しさん@お腹いっぱい。 (ワッチョイW d358-U8Dc):2020/05/12(火) 17:38:33 ID:ckVLw1J00.net
過去スレとwikiは宝の山

81 :名無しさん@お腹いっぱい。 (ワッチョイ bbb1-Geaw):2020/05/12(火) 18:21:12 ID:E+fH0d4D0.net
78です。
これなんかどうでしょう?
初めの数秒間は希望通りの動きをすることもあるのですが、
ほとんどの場合が、LShiftが押しっぱなしのような状態になります。
PCを再起動しないと、押しっぱなし状態が解除されなくなってしまうのです。
希望通りの動きをすることが数秒間あるのは、どういうことなんでしょうか?

LShift::
KeyWait, LShift, T0.5
If (ErrorLevel)
{
Send, {LShift Down}
KeyWait, LShift
Return
}
Else
{
Send, a
KeyWait, LShift
Return
}

82 :名無しさん@お腹いっぱい。 (ワッチョイ 8aba-oySJ):2020/05/12(火) 18:33:43 ID:dy+j9Q/G0.net
>>81
{LShift Down}があったら、必ずキーを離した時に{LShift Up}も入れないと
Shift押しっぱなしになるぞ

83 :名無しさん@お腹いっぱい。 (ワッチョイ bbb1-Geaw):2020/05/12(火) 19:38:03 ID:E+fH0d4D0.net
78=81です。
82さんのアドバイスに従い、下のように追記したところ上手く機能するようになりました。
ありがとうございました。

しかし、新たな問題が発覚しました。
LShiftを押してから0.5秒以内にマウスクリックやマウスホイール操作をすると、
押しっぱなしにもかかわらず、今度はLShiftが解除されてしまうのです。
LShiftから指を離し、再び押して0.5秒以上を待ってマウス操作を入れると問題ないのですが、
押し直したり厳密に0.5秒が経過するのを待つのはストレスなので、なんとかならないものでしょうか?
キーボード操作の場合は、0.5秒以内であってもLShiftが解除されることはないようです。
よろしくお願いします。

LShift::
KeyWait, LShift, T0.5
If (ErrorLevel)
{
Send, {LShift Down}
KeyWait, LShift
Send, {LShift Up}   ←追加
Return
}
Else
{
Send, i
KeyWait, LShift
Return
}

84 :名無しさん@お腹いっぱい。 (ワッチョイ 8aba-oySJ):2020/05/12(火) 20:22:49 ID:dy+j9Q/G0.net
>>83
”0.5秒以上押したかどうか”で条件分岐してんだからそうなるの当たり前だろ
0.5秒以内は解除されるんじゃなくてまだShiftがSendされてないだけ
文句があるなら「押した長さ」で分岐するの止めろとしか言いようがない
根本的な使い方から見直しな

85 :名無しさん@お腹いっぱい。 :2020/05/12(火) 20:53:49.84 ID:E+fH0d4D0.net
78=81=83です。
キーボード操作の場合は、0.5秒以内であってもLShiftが解除されることはなく、
直ぐにキーボードでキーを送り直すだけですみます。
マウス操作でもキーを送るように設定しているので、マウス操作をやり直すだけで済ませられないかと考えています。

86 :名無しさん@お腹いっぱい。 :2020/05/12(火) 20:55:52.67 ID:qx8cyfXk0.net
根本的な動作要件としてモデファイアキーをチョン押しで何かアクションさせるのは辛いと思うんだ

例えば ~Lshift:: にしてshift 2回押し(ダブルクリック的な挙動)でトリガとかのほうが
キーオペレーションとしてはスムーズに行きそうな気がする

87 :名無しさん@お腹いっぱい。 (ワッチョイ 8aba-oySJ):2020/05/12(火) 21:03:33 ID:dy+j9Q/G0.net
>>85
>キーボード操作の場合は、0.5秒以内であってもLShiftが解除されることはなく、

もはやお前の言ってる「解除」って言葉自体が意味不明
キーボードだろうが何だろうが>>83のスクリプトだと0.5秒以内はShiftは押されない
解除も糞も無い
とにかく根本的な操作方法から見直せって

88 :名無しさん@お腹いっぱい。 :2020/05/12(火) 23:16:36.85 ID:E+fH0d4D0.net
78=81=83=85です。
>>86
shift 2回押し(ダブルクリック的な挙動)を試してみました。
なかなか良い感じです。
ありがとうございました。
>>87
私の言う「解除」とは、おてつきの後、LShiftを押し直さなけけばならない状況になることです。
おてつきの後、LShiftを離して押し直さなくても、時間が経過したらマウス操作をやり直せばキー送信できるようにしたいのです。
何度も言いますが、キーボード送信ではそれが可能なんです。
よろしくお願いします。

89 :名無しさん@お腹いっぱい。 :2020/05/12(火) 23:19:41.88 ID:dy+j9Q/G0.net
>>88
全く意味不明
マウスクリックも一度0.5秒以内にクリックした後そのままshift押しっぱなしで0.5秒経過後にもう一度クリックすれば
Shift+クリックになる

>マウス操作をやり直せばキー送信できるようにしたい
とか突然言われても寝耳に水だしだったらそのスクリプトも書けよ
人に伝えるの下手糞過ぎ

90 :名無しさん@お腹いっぱい。 (ワッチョイ bbb1-Geaw):2020/05/12(火) 23:52:30 ID:E+fH0d4D0.net
78=81=83=85=88です。
>>89
スクリプトは83で干した通りです。
その口ぶりから推測すると、83のスクリプトを貴殿のPCで検証したうえで、
私の言う「解除」の現象が確認できなかったということですね?
可能であれば、マウスホイールアップにアルファベットキーをバインドさせ、
「一度0.5秒以内にホイールアップした後そのままshift押しっぱなしで0.5秒経過後にもう一度ホイールアップ」
を試し、shift+アルファベットが送信されるか否かを検証してもらえないでしょうか?
お怒りのところ申し訳ありませんが、もう少々お付き合いくださいませ。

91 :名無しさん@お腹いっぱい。 :2020/05/13(水) 00:21:01.64 ID:4vArzUsR0.net
>>90
>マウスホイールアップにアルファベットキーをバインドさせ
だからこの部分のスクリプトも貼れよ
一度言った事何度も言わすな

>お怒りのところ申し訳ありませんが
舐めた口聞いてんなよ池沼

92 :名無しさん@お腹いっぱい。 (ワッチョイ 0bb1-wHYS):2020/05/13(水) 00:32:21 ID:yTfMHr2D0.net
78=81=83=85=88=90です。

>>91
これでしょうか?

+WheelUp::
Send,+i
Return

93 :名無しさん@お腹いっぱい。 (ワッチョイ 6bba-gIXh):2020/05/13(水) 00:38:45 ID:4vArzUsR0.net
>>92
普通に動作したぞ
Shift押した直後0.5秒以内にWheelUpしても反応しないが
そのままShift押しっぱなしで0.5秒経過後はホイール廻せばは I が入力される
何が解除だか意味不明

94 :名無しさん@お腹いっぱい。 (ワッチョイ 7f6e-gIXh):2020/05/13(水) 01:56:01 ID:NTPhoH9M0.net
アプリケーションを起動させて、そのアプリケーションの中のClassNN AAAの表示を待ってからWinMoveを
実行したいのですが、ClassNN AAAの表示を待つ方法がわかりません。
どうすればいいでしょうか?

Run, %Run%, %Run_Dir%, , Run_PID
WinWait, ahk_pid %Run_PID%

95 :名無しさん@お腹いっぱい。 :2020/05/13(水) 05:26:57.46 ID:div6UgiV0.net
>>94
タイマーで監視する
https://pastebin.com/JAXxPShs

96 :名無しさん@お腹いっぱい。 :2020/05/13(水) 08:23:18.43 ID:yTfMHr2D0.net
78=81=83=85=88=90=92です。
>>93
そうですか・・・キーボード操作と同じ反応ですか・・・
ご検証ありがとうございました大先生。
私も別の環境(別PC、別マウスなど)で試してみます。

97 :名無しさん@お腹いっぱい。 (ワッチョイ 6b71-uRPb):2020/05/13(水) 13:51:48 ID:jQ/Lttt80.net
なんだコイツ

98 :名無しさん@お腹いっぱい。 (ワッチョイ 7f6e-gIXh):2020/05/13(水) 20:08:43 ID:NTPhoH9M0.net
>>95
ありがとうございます。
試してみます

99 :名無しさん@お腹いっぱい。 :2020/05/20(水) 02:51:40.71 ID:BnTHvFV20.net
AltTabでAltキーを離したら
選択したアプリの、画面中央にカーソルが移動する
スクリプトが上手く動きません、、
なにがおかしいのか教えていただきたいです、、

LAlt & Tab::AltTab

KeyWait, Alt
WinGetActiveStats, Title, Width, Height, X, Y
{
MouseMove, Width*.5, Height*.5
}
Return

よろしくお願い致します

100 :名無しさん@お腹いっぱい。 (ワッチョイ ba09-crVl):2020/05/20(水) 03:25:30 ID:yFj7I/kv0.net
>>99
まず、
LAlt & Tab::AltTab
このコマンドはこの一行だけで完結してる
なのでそれ以降の行は一切実行されてないのが動作しない原因

そもそもAlt+Tabキーはそのまま使えるのでわざわざAHKで乗っ取らずに
~!tab::
を使いその後の「AltTab」の記述は削除してOK

KeyWait, Alt
の後に一応Sleepを100〜200msくらい入れといた方がいい
最小化したウィンドウなどは復元時に若干遅延があるので(OS設定にもよるけど)

WinGetActiveStats の後の { } は全く要らない
なぜMouseMoveを { } で囲ってるのか意味不明なので削除

以上、これで俺の環境では正常に動作確認済み
余談だがCoordModeの設定も忘れずに

101 :名無しさん@お腹いっぱい。 (ワッチョイW 370a-xHcq):2020/05/20(水) 03:38:36 ID:P+MbmAwc0.net
>>99
Width * .5 は分かりにくいので直したほうがいい

Width / 2
Width * 0.5

102 :名無しさん@お腹いっぱい。 (オッペケ Srbb-0Ns2):2020/05/20(水) 10:18:41 ID:i/8wQWfHr.net
>>100
>>101
細かい部分までありがとうございます!!
早速使わせていただきます!
半年くらい悩んでたので、本気で助かりました!!

103 :名無しさん@お腹いっぱい。 (ワッチョイ 038c-I6Yg):2020/05/24(日) 21:00:56 ID:+8iPQVw+0.net
エディットボックスに書き込む際、そのウインドウを裏に隠れた状態のまま書き込みたいのです
C ont rol Text Setを使うとウインドウが裏にいるままで書き込めるのですが、再度のEnterを入れることが出来ません
Cont ro lSen dを使うとEnterも入れられるのですが、フォーカスされて表にウインドウが出てきてしまいます
どうしたらいいでしょうか
Send Messageの WM_ IME_ KEYDOWN を使ってもフォーカスされて表にでてきてしまいます

なぜか書き込み不可能になってしまうので、半角スペースを入れてます

104 :名無しさん@お腹いっぱい。 (ワッチョイ 038c-I6Yg):2020/05/24(日) 21:01:52 ID:+8iPQVw+0.net
→最後のEnter

105 :名無しさん@お腹いっぱい。 (ワッチョイ 03e5-9InA):2020/05/24(日) 23:59:20 ID:3KHM3ts20.net
Enterというのが改行のことなら `r`n で行ける

text := "aiueo`r`n"
ControlSetText, Edit1,%text%,ahk_class Notepad

106 :名無しさん@お腹いっぱい。 (ワッチョイ 03e5-9InA):2020/05/25(月) 00:06:11 ID:iowxTiYJ0.net
あと ControlSend でフォーカスされるかどうかはアプリによるのでAHKの仕様ではない
少なくともメモ帳ではバックグラウンドのまま
ControlSend, Edit1,aaaaaa{Enter},ahk_class Notepad
とかできる

107 :名無しさん@お腹いっぱい。 :2020/05/25(月) 08:33:12.59 ID:7XQahtaV0.net
>>105
改行ではないです。Enterです
'r'nでは文字通り改行になり、複数行の入力になってしまってそのエディットボックスの入力完了の合図にはなりません

108 :名無しさん@お腹いっぱい。 :2020/05/25(月) 08:58:05.06 ID:yLxp81xy0.net
最悪、フォーカスが切り替わることをタイマーで監視して、
切り替わったら元のウィンドウをアクティベーションするのはいかが

109 :名無しさん@お腹いっぱい。 :2020/05/25(月) 10:53:24.27 ID:7XQahtaV0.net
>>108
他の仕事を別ウインドウでいろいろしてるときに裏ジョブとしていろいろ計算させてその結果をそのウインドウの
テキストボックスに入れていく、というのをしてるのですよね
そのときにテキストボックスに入力する度に表に出てくるのがとても鬱陶しいのですよ

110 :名無しさん@お腹いっぱい。 (ワッチョイ 03e5-9InA):2020/05/25(月) 11:58:43 ID:iowxTiYJ0.net
ControlSetTextはテキストの内容をセットするコマンドなので改行ではない{Enter}が入らないのは道理
ControlSendがフォーカスを奪わないで{Enter}をセットできるのは>106で書いた通り

そこから先はアプリ側の仕様なので肝心のアプリの名前を隠されたまま相談されても話は進まないと思う

111 :名無しさん@お腹いっぱい。 (ワッチョイ 038c-I6Yg):2020/05/25(月) 12:29:39 ID:7XQahtaV0.net
>>110
ということは、エディットボックスにEnterを裏のまま入力することは出来ないケースはある
ということですね
これは残念です

112 :名無しさん@お腹いっぱい。 (ワッチョイ 7f5a-crVl):2020/05/25(月) 13:11:25 ID:BrwKh1f/0.net
>>111
ウィンドウが出てしまうことは諦めて、いっそのこと
ハナからウィンドウサイズを可能な限り小さくしておくか
サイズ変更できないアプリならシェードしておいて作業してみては

113 :名無しさん@お腹いっぱい。 (バッミングク MM25-YHRm):2020/05/30(土) 13:11:06 ID:rRBwy6MaM.net
エクセルの文字を大きくするショートカットを作ったのですが、キーおしっぱにして
連続で文字を大きくしようとすると、たまにLAltがスカしてセルに「HFG」と
入力になっちゃいます。
スカ対策はやはりSleepしかないのでしょうか?確実に実行されるようにしたいのですが、
皆様はどういった対策をとられているのでしょうか。

#IfWinActive ahk_class XLMAIN
^+.::
BlockInput On
Send,{LAlt}
Sleep 150
Send,{H}
Send,{F}
Send,{G}
BlockInput Off
return
#IfWinActive

114 :名無しさん@お腹いっぱい。 (ワッチョイ b958-moxv):2020/05/30(土) 13:28:31 ID:yGv3dVNZ0.net
俺はスカ対策で
SetKeyDelay, , 50
って最初に入れてる
押してる間の時間を50msにすることでSendのスカしにくくなる

115 :名無しさん@お腹いっぱい。 (ワッチョイ 019b-YHRm):2020/05/30(土) 23:29:38 ID:kG3fR+Ih0.net
>>114
おお、今まで動作を早くするためのもの?程度の認識の関数でしたが、
その設定で使ってみたらかなり安定度あがりました。
回答ありがとうございます。

116 :名無しさん@お腹いっぱい。 (ワッチョイW a1f1-D6j+):2020/05/31(日) 16:16:09 ID:MmSe3n4Q0.net
同じく、横からですがありがとう 若干モサッと動くけど手戻りすること考えたらストレスない

117 :名無しさん@お腹いっぱい。 :2020/05/31(日) 16:23:50.01 ID:JzP83ijW0.net
速度求めるなら自分の好みでもう少し早くしても構わないと思う
50msはかなり余裕を見ての数値なので
デフォルトだとこの値が -1 で一瞬(1ms以下?)なのでまあ10ms以上なら比較的安定するんじゃないかな
環境にもよるけど

118 :名無しさん@お腹いっぱい。 (オッペケ Sr8d-Le9r):2020/06/01(月) 03:57:09 ID:Dp86aIsgr.net
#IfWinActive

Space Up::Send, {Space}

Space & f::Send, {Right}

↑ここまでOK----------------------------------

#IfWinActive, ahk_exe Photoshop.exe

~Space & f::Send, {Right}

↑チルダが機能しません、、---------------------

Spaceを修飾キーとして使用します。
上記の通り、前半は問題なく意図した通りに、機能しているのですが、
Photoshopなどのプログラムに切り替わったときには
チルダを入れて、Spaceそのものの機能を活かしたいのですが
上手く機能しません、、どのように切り替えればよいでしょうか?
よろしくお願い致します。

119 :名無しさん@お腹いっぱい。 :2020/06/01(月) 10:57:06.00 ID:Og6eBwhk0.net
>>118
#IfWinActive で分けても Space & f:: の影響(スペース単独で押し下げた時は入力されず離した時に入力になってしまう)は出るからなあ
プログラムごとに切り替えたいならホットキーのスクリプトファイルを普段使い用(a.ahk)とPhotoshop専用(b.ahk)に分けて、
普段はa.ahkを起動しておき、Photoshop.exeがアクティブになった時はb.ahkを起動してa.ahkを終了
Photoshop.exeが非アクティブになったらa.ahkを起動してb.ahkを終了とかしてスクリプトを完全に分離させた方が良いんじゃね

120 :名無しさん@お腹いっぱい。 :2020/06/02(火) 00:58:47.26 ID:v4Ajf04P0.net
>>118
コンビネーションを使わなければいい
https://pastebin.com/p9KcZFJn

121 :名無しさん@お腹いっぱい。 (ワッチョイ 5ba5-05E3):2020/06/02(火) 06:24:40 ID:l9NSXWu90.net
英語キーボードをあきらめて日本語キーボードにすれば、装飾キーにできるキーが増えるよ。

122 :名無しさん@お腹いっぱい。 :2020/06/05(金) 01:35:20.82 ID:q1s2UhOK0.net
前スレで

>35名無しさん@お腹いっぱい。 (ワッチョイ 2373-KxX0)2019/04/26(金) 21:43:07.89ID:YRa+WZQz0>>36>>73
数週間前からWheelをからめたスクリプトが急に動かなくなったりするようになったんだけどみんなはそんなことない?
Xbutton1 & Wheel downで動かすスクリプトがあるんだけどこれが急に動かなくなったりする
そうなったらリロードしてスクリプトを読み直すしかない
Windows10のアップデートのせいかなとか思ったんだけど原因がわからず

と書かれていましたが、自分はwin8.1だけど
同じ症状(AutoHotkeyがWheel関係のボタン、中ボタン、ティルト左右、ホイール回転、を突然認識しなくなる)で悩んでました。
原因を考えると、win8.1とwin10両方で症状が出ているのでOSが原因ではない。
更に

マウスを別メーカーにする→変わらない
ドライバをメーカー製からwin標準のものに換える→変わらない
USBポートを換える→変わらない

だったのですが、別のノートPCで試したところ問題は起きなくなりました。
こうなるとマザボが原因という線が一番濃いでしょうか?

ちなみに自分のマザボはAsusuのH97-PLUSですが同じ症状の人のOS、マザボを聞いてみたいです。

123 :名無しさん@お腹いっぱい。 :2020/06/05(金) 10:38:22.40 ID:IyhGXBt90.net
アクティブでないウィンドウを操作するために
WinActivate, ahk_class xxxxx
Send,^a
sleep 50
WinActivate, ahk_class ooooo
みたいなやり方をしているのですが、ちょっとダサい気がするので、
ControlSendで書き換えたいと思っています。どう書き換えたらいいんでしょうか?

124 :名無しさん@お腹いっぱい。 (ワッチョイ d958-uikQ):2020/06/05(金) 11:01:51 ID:x0banOBH0.net
>>123
ControlSend, [Control], ^a, ahk_class xxxxx

ただしControlSendは上手く動作しないアプリケーション多いので俺はほとんど使ってない

125 :名無しさん@お腹いっぱい。 (ワッチョイW 4de5-BMuK):2020/06/05(金) 19:34:38 ID:hKAmwp+l0.net
それかsendmessageで直接該当アプリに命令流し込む

126 :名無しさん@お腹いっぱい。 :2020/06/05(金) 21:27:02.93 ID:WTgalMLm0.net
>>122
実際に問題の起こるスクリプト貼ってくれないと誰にも断定はできない

>>63-65
ホットキーすり抜けが発生して修飾キーが押されっぱなしになっているのかも?
Wheel UpやDown で起こりやすい

127 :名無しさん@お腹いっぱい。 :2020/06/05(金) 21:47:57.36 ID:IyhGXBt90.net
>>124
やっぱりそうですか。マニュアル通りに書たはずなのに上手くいかないので、
書き方が何か違っているのかと思ってました。どうもありがとうございます。

128 :名無しさん@お腹いっぱい。 (ワッチョイ 25b1-1bbd):2020/06/05(金) 21:56:03 ID:q1s2UhOK0.net
>>126
どんなスクリプトかは関係なく単純な

WheelUp::send, a

のように1行だけのスクリプトも機能しなくなります。
Wheel関係のボタン 中ボタン、ティルト左右、ホイール回転 が全てAutoHotkeyで認識されていない状態です。

つまりAutoHotkeyのウィンドウのメニュー View>Key history and script info
で 中ボタン、ティルト左右、ホイール回転 の履歴が表示されていない状態です。

AutoHotkeyでこれら認識されなくなった時もAutoHotkey以外では問題なく機能しています。

129 :名無しさん@お腹いっぱい。 (ワッチョイ d958-uikQ):2020/06/05(金) 22:06:53 ID:x0banOBH0.net
>>128
マウスは何使ってんの?

130 :名無しさん@お腹いっぱい。 (ワッチョイ 25b1-1bbd):2020/06/05(金) 22:27:42 ID:q1s2UhOK0.net
>>129
エレコムのM-LS13ULです。
これをバッファローのものに変えても突然認識しなくなる症状は出ます。
しかし、このエレコムのマウスでも別PC(AutoHotkeyのバージョンは同じ)だと症状は出ません。

131 :名無しさん@お腹いっぱい。 (ワッチョイW 890a-NwLg):2020/06/06(土) 01:35:18 ID:qI3Jyt1W0.net
>>130
おそらく別ソフトがマウスフックでイベントを乗っ取っている

AHKのフックはOSの機能であるWin32APIのSetWindowsHookEx(WH_MOUSE_LL、WH_KEYBOARD_LL)
他のソフトも利用可能でフックは後から設定したものから順次実行される(途中のフックで入力を破棄すれば次のフックは実行されない)

エレコム マウスアシスタント(原因?)
https://www.elecom.co.jp/support/download/peripheral/mouse/assistant/

> マウスを別メーカーにする→変わらない
> ドライバをメーカー製からwin標準のものに換える→変わらない
> USBポートを換える→変わらない

↑のアプリを終了させずに色々テストしたのでは?
終了しても駄目ならセーフモードで確認

132 :122 (テトリス 25b1-1bbd):2020/06/06(土) 06:22:40 ID:1ptPVhcy00606.net
>>131
原因がわかりました。
WizMouseというフォーカスされていないウィンドウでも
マウスでスクロール可能にする常駐ソフトが原因でした。

普段使っているPC(Win8.1)で症状が出て、別PC(Win10)で症状が出なかったのは、
Win10では標準でWizMouseと同じ機能が装備されているのでWizMouseをインストールしていなかったからでした。
(さらに、今調べたらWin8.1もレジストリの設定変更だけでWinMouseと同じ事が出来ました。)

以前WizMouseも疑って、WizMouseの機能を使っている時、AutoHotkeyの
Wheel関係のボタンの認識を見たら問題なかったので完全にWizMouseの線は除外していました。

しかし今回>>131さんの指摘を受けて、マウスフックを使っているソフトを探したところ、WizMouseぐらいしかなかったので
AutoHotkeyがボタンを認識しなくなったタイミングでWizMouseを終了させたところ、一発で認識が戻りました。
ありがとうございました。

133 :名無しさん@お腹いっぱい。 :2020/06/06(土) 12:22:18.13 ID:C5R1kkUA00606.net
フック奪い合いあるあるおつかれ
リダイレクトホイールは真っ先にahkで実装した機能の一つだわ

134 :名無しさん@お腹いっぱい。 :2020/06/14(日) 10:30:19.15 ID:TOyb/fzu0.net
StatusbarGettextって64bitアプリに対しては使えない?
厳密には共有メモリを介しての情報取得系だけど Tb_GetitemRectとか。
64bit版ahkで試して値が返らない

135 :名無しさん@お腹いっぱい。 (ワッチョイ 3358-NjyN):2020/06/14(日) 13:18:25 ID:c3a5nMdB0.net
>>134
64bit版AHKで64bitアプリのメモ帳のステータスバー取得できるから64bitとかは関係無いな

;メモ帳の行と列を表示
StatusBarGetText, OutputVar, 2, ahk_exe notepad.exe
MsgBox, %OutputVar%
Return

上手く行かないのは管理者権限とか個々のアプリの仕様とかが原因だろ

136 :名無しさん@お腹いっぱい。 (ワッチョイW a366-clGy):2020/06/14(日) 14:00:06 ID:TOyb/fzu0.net
>>135
ありがとうございます
学び直します

137 :名無しさん@お腹いっぱい。 :2020/06/20(土) 02:37:11.99 ID:ubMWWC0s0.net
タスクマネージャとかその他一部のウィンドウでホットキーが効かないことがあるのはなぜ?

例えばvk1D & k::Send, {Blind}{Down}をしてもk押下判定になっているみたい
当然、MGLのジェスチャーも無反応だし

138 :名無しさん@お腹いっぱい。 (ワッチョイ 766c-IXeA):2020/06/20(土) 02:50:11 ID:hAmIJ0K30.net
>>137
UACで弾かれてるんじゃね
スクリプトを管理者権限で実行しな

139 :名無しさん@お腹いっぱい。 (ワッチョイ 0f56-V/rO):2020/06/24(水) 16:26:51 ID:rgAPk7/l0.net
特定のソフトで、SHIFT押下時だけスクロールを左右キーにアサインする記述って出来ないでしょうか

140 :名無しさん@お腹いっぱい。 (ワッチョイ 4f58-NJGG):2020/06/24(水) 16:59:59 ID:lWY1xrDw0.net
>>139
出来ますよ
まずはwikiのサンプルコード集でも見て勉強しましょう

141 :名無しさん@お腹いっぱい。 :2020/06/24(水) 20:14:50.15 ID:rgAPk7/l0.net
>>140
色々と調べたけど出来ないんですよね…
Adobe Premiere Pro.exeの時のみSHIFT+ホイールスクロールを方向キーの左右に
~Lshift & WheelUp::
IfWinActive ahk_exe Adobe Premiere Pro.exe
{
Send,{ArrowLeft}
}

#IfWinActive, Adobe Premiere Pro.exe
~Lshift & WheelUp::Send,{ArrowLeft}
~Lshift & WheelDown::Send,{ArrowRight}
では動きません ご教授いただける方いれば教えて頂きたいです

142 :名無しさん@お腹いっぱい。 :2020/06/24(水) 20:22:59.67 ID:lWY1xrDw0.net
>>141
{ArrowLeft} なんて無いから
wikiのキーリストをちゃんと見なさい

143 :名無しさん@お腹いっぱい。 :2020/06/24(水) 20:31:31.10 ID:gQ3gi96k0.net
Adobe Premiere Pro.exe のスペースはなんもくくらんで認識できるんだっけ?
ahk_classで見たほうが確実な気がするけど

144 :名無しさん@お腹いっぱい。 :2020/06/24(水) 20:50:47.68 ID:rgAPk7/l0.net
>>142-143
ありがとうございます
SetTitleMatchMode, 2
#IfWinActive, Adobe Premiere Pro
~Lshift & WheelUp::Send,{Left}
~Lshift & WheelDown::Send,{Right}
で行けました
ただ元々のスクロールも残って送信されるようで、Leftキーの移動と同時にスクロールもされてしまうのはしょうがないんですかね…

145 :名無しさん@お腹いっぱい。 (ワッチョイ 4f58-NJGG):2020/06/24(水) 21:01:02 ID:lWY1xrDw0.net
>>144
他の記述が余計な邪魔してんじゃないか

~Lshift & WheelUp::Send,{Left}
~Lshift & WheelDown::Send,{Right}

少なくともこれだけのスクリプトなら試した限り元のスクロールは送信されてない

ちなみに余談だけど修飾キーはコンビネーションキーにする必要ない
+WheelUp:: でOK

146 :名無しさん@お腹いっぱい。 :2020/06/24(水) 22:28:34.08 ID:rgAPk7/l0.net
>>145
ありがとうございます!

147 :名無しさん@お腹いっぱい。 :2020/06/25(木) 03:55:59.04 ID:vvPDn5f2r.net
新規タブでエクスプローラを開くコマンドって作れないですかね…。
特定のソフトが起動しているが前面に無い場合、そのソフトをアクティブにしてキーを送信…とするコマンドを作りたくて
IfWinActive explorer.exe
{
Send, ^t
return
}
IfWinExist Run explorer.exe
WinActivate
return
とかやってみたのですが出来ず、
MouseGestureL.ahkでトラックボールに割り当ててみようとしたけど出来ず…

148 :名無しさん@お腹いっぱい。 :2020/06/25(木) 04:09:00.66 ID:j94+fiYF0.net
うちのwin10エクスプローラはいまだにタブ化はしとらんのだが
これ?
https://gigazine.net/news/20180308-windows-10-file-explorer-support-tabs/

149 :名無しさん@お腹いっぱい。 :2020/06/25(木) 05:45:08.99 ID:C9QzYMGy0.net
>IfWinExist Run explorer.exe
これ合ってるのか?
俺には全く意味分からんのだが
俺が知らないだけならスマン

explorer.exeはウィンドウ無くても常駐してるから
ahk_class で指定した方が良い気がするが

そもそもエクスプローラーのタブは俺も知らない
Setsとやらはどうやら頓挫したみたいだが>>147の環境ではCtrl+t使えてんの?

150 :名無しさん@お腹いっぱい。 :2020/06/25(木) 08:47:10.76 ID:4J/MN06G0.net
>>147
ファイラーならたいていホットキー設定でできると思うけど、MSのエクスプローラじゃないとダメなの?
Tablacusのようなエクスプローラ互換ファイラーもあるし、なかなか便利だよ

151 :名無しさん@お腹いっぱい。 :2020/06/25(木) 14:30:34.91 ID:vvPDn5f2r.net
>>148
使用しているのはQTTabBarというタブ化ソフトです
>>149
そうですよね…そもそもExplorer.exeはずっといるので駄目ですかね
ahk_class explorer.exe でも動作しませんし、マイコンピュータを開く
Run "::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
だとタブではなく新規ウィンドウで開いてしまうので…

やはり無理でしょうか

152 :名無しさん@お腹いっぱい。 :2020/06/25(木) 15:11:54.48 ID:C9QzYMGy0.net
>>151
ahk_classはちゃんとWindow Spyで確認しな
普通にActivateとかはできる
QTTabBarでCtrl+Tが使えてるなら当然Sendコマンドだって使えるだろう
「無理でしょうか」とか言い出す前にしっかりwiki見てウィンドウ指定の方法を勉強しな
色々と書き方を間違ってるだけだから

153 :名無しさん@お腹いっぱい。 :2020/06/25(木) 20:47:23.92 ID:u3QjMjKW0.net
>>152
ありがとうございます エクスプローラのclassはCabinetWClassなんですね…
wikiも
http://tsubolog.c-brains.jp/14/12/16-100000.php
http://blog.ayakix.com/2009/07/autohotkey.html
この辺りのページも参考にしているのですが一行に出来ません
まず裏にあるエクスプローラウィンドウをアクティブにするだけも機能しません…。
#WinActivateForce
#Enter::
WinActivate, ahk_class CabinetWClass
return

本当はこの上にSend, ^ t、
起動していなければ起動…という風にもしたいのですがそもそもアクティブ化すら動かない状態なので現状詰まっています
どこかミスが分かる方いればご教授お願いしたいです

154 :名無しさん@お腹いっぱい。 :2020/06/25(木) 21:00:30.04 ID:C9QzYMGy0.net
>>153
その4行のみのスクリプトで何も問題なく機能してるぞ
Winキー+Enter押すとエクスプローラーのウィンドウがあればアクティブになる
動かないとしたら他にも何か余計なもん書いてるんじゃね

155 :名無しさん@お腹いっぱい。 :2020/06/25(木) 22:36:28.18 ID:u3QjMjKW0.net
>>154
ありがとうございます 一旦全て消して打ち直した所無事に動くことが出来ました!
自分の様な使い方がしたい人は稀だと思いますが一応
#WinActivateForce
#n::
IfWinNotExist ahk_class CabinetWClass ;存在しない時
Run, explorer.exe ;エクスプローラを起動
else ;または
IfWinActive ahk_class CabinetWClass ;エクスプローラのクラスがある時
{
Send, ^t ;ショートカットを送信
return
}
IfWinExist ahk_class CabinetWClass ;裏にある時
WinActivate ;アクティブ
return

で動きたいように動いてくれました。スレ汚し失礼しました。

156 :名無しさん@お腹いっぱい。 :2020/06/26(金) 05:50:57.98 ID:VjaeUZio0.net
>>155
本当に「動きたいように動いてくれました。」何だろうか?
まあ本人が言うんだから間違いないんだろうけど(´・ω・`)

157 :名無しさん@お腹いっぱい。 :2020/06/26(金) 18:10:14.78 ID:rIU3pFBBr.net
IMEオフってIME_SET(0)じゃない?
wikiにも書いてないしtabに割り当てたいんだけど動かない

158 :名無しさん@お腹いっぱい。 :2020/06/26(金) 18:24:27.06 ID:8s6kilGT0.net
>>157
それはahk使わなくてもIMEのプロパティでキー設定すればできるしそっちの方が確実
まあTabはそれ以外でも使うから不便になると思うがな
ちなみに余談だけど俺は英数キーをIMEオフに割りあててる

159 :名無しさん@お腹いっぱい。 :2020/06/26(金) 18:53:11.89 ID:rIU3pFBBr.net
>>158
普段はtabキー使うから、IMEオフが必要なソフトでのみtabをIMEオフにしたかったんだよね ahkならソフトでの指定が出来るから
IMEオフはIME_SET(0)でいいのかな

160 :名無しさん@お腹いっぱい。 :2020/06/26(金) 19:02:52.26 ID:5Gj+Y/Ke0.net
>>159
そういうことなら

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

なぜかテンプレなくなってるな

161 :名無しさん@お腹いっぱい。 :2020/06/28(日) 02:35:20.56 ID:APknnKSb0.net
IME.ahk入れていないのにIME_SET()関数使おうとしたんかよ
まあahk標準機能として用意されて欲しいとは思うけどね

162 :名無しさん@お腹いっぱい。 :2020/06/28(日) 06:10:43.18 ID:JSt+EfPH0.net
AHKの便利さを知っている人でも満足できるMac対応代替アプリ知りたい
おすすめありますか(別言語可)

163 :名無しさん@お腹いっぱい。 :2020/06/28(日) 21:07:35.68 ID:F3gv9FGB0.net
ALT+UでF7変換にしたく、LAlt&U::Send,{F7}と打ったのですが、
エラー:lnvalid hotkye が出ました。
どうすれば修正できますか?

164 :名無しさん@お腹いっぱい。 :2020/06/28(日) 21:29:36.96 ID:PmPU9g8w0.net
>>163
基本的に修飾キーは修飾シンボルを使った方がいい
どうしてもコンビネーションキーにしたいならサンプルよく見てスペース入れる

165 :名無しさん@お腹いっぱい。 :2020/06/28(日) 21:57:01.54 ID:F3gv9FGB0.net
>>164
*!U::Send,{F7}
と打ったら出来ました ありがとうございます。

166 :名無しさん@お腹いっぱい。 :2020/06/28(日) 22:51:48.38 ID:bvSPqNOb0.net
>>155
win7の情報だけどQTTabBarはWindowsの仕様なのかahk_classが2種類存在する。
おそらくexplorerの起動方法によって変わると思われる。
ahk_class CabinetWClass
で反応しないときは
ahk_class ExploreWClass

Win10では2種類存在するか未確認だけど、スクリプトを未修正で使ってる

167 :名無しさん@お腹いっぱい。 :2020/06/29(月) 02:42:14.83 ID:HPOga7Oa0.net
ランダムに複数ファイルを選択状態にしたくてこのソフトを入れたのですが
可能でしょうか?単ファイル版のスクリプトしか見つかりませんでした

168 :名無しさん@お腹いっぱい。 :2020/06/29(月) 09:50:02.24 ID:DhcDIaKH0.net
「右コントロールと下矢印キーの同時押し」で「PgDnの押下」を行いたいです。

RCtrl & Down::PgDn
という記述だとCtrlの押しっぱなしが検知されて、
実行結果が「Ctrl+PgDn」になってしまいます。
実行結果を「PgDn」だけにする方法はないでしょうか?

169 :167 :2020/06/29(月) 11:28:08.73 ID:HPOga7Oa0.net
すみませんフォーラムの方で見つかりました。お騒がせしました

170 :名無しさん@お腹いっぱい。 :2020/06/29(月) 13:24:02.39 ID:kkMkAdp20NIKU.net
>>168
Sendを省略せずにちゃんと書く

171 :名無しさん@お腹いっぱい。 (ニククエW 0f5c-mvWe):2020/06/29(月) 17:40:02 ID:DhcDIaKH0NIKU.net
>>170
ありがとう
できました

172 :名無しさん@お腹いっぱい。 (ニククエ 0f73-NJGG):2020/06/29(月) 22:46:05 ID:k0jjh9vk0NIKU.net
いつのまにかswitchがつかえるようになっていた

173 :名無しさん@お腹いっぱい。 (ニククエ 0fb1-7I9b):2020/06/29(月) 23:33:53 ID:q+ndca0h0NIKU.net
へー
日本語版wikiの更新が止まってから全然追えてないから知らない機能めちゃくちゃありそう

174 :名無しさん@お腹いっぱい。 :2020/06/30(火) 21:10:21.02 ID:Qm4pWQL/0.net
v1.1.33.00 がリリースされたが、.32まで問題なかったコードが
cound not locatedみたいなエラーでコンパイルできんくなった

175 :名無しさん@お腹いっぱい。 :2020/06/30(火) 21:15:59.84 ID:Qm4pWQL/0.net
ちなコンパイルしようとしたのはDvorakJです
https://blechmusik.xii.jp/dvorakj/

176 :名無しさん@お腹いっぱい。 :2020/07/05(日) 15:58:54.49 ID:BwrFni8y0.net
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

177 :名無しさん@お腹いっぱい。 :2020/07/05(日) 17:06:36.09 ID:mRfdqX6O0.net
座標や幅/高さの計算が上手くできないなら、座標の始点を変えたところで意味無いと思うけど...

178 :名無しさん@お腹いっぱい。 (ワッチョイ 1edc-w4Iu):2020/07/05(日) 18:53:11 ID:BwrFni8y0.net
>>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というサイズで画面中央に移動ができましたが

179 :名無しさん@お腹いっぱい。 :2020/07/05(日) 19:05:24.37 ID:irsAZnQW0.net
>>178
左上が0,0で右下が1920,1080だろ?
あとどこのブログ見たのか知らんが変数は%で囲む

180 :名無しさん@お腹いっぱい。 :2020/07/05(日) 20:16:22.54 ID:BwrFni8y0.net
>>179
囲む時と囲まない時の区別がついてないんですが簡単に言うとどんな時なんでしょうか?

181 :名無しさん@お腹いっぱい。 :2020/07/05(日) 21:22:42.79 ID:dLHUmlTf0.net
>>178
>始点を右下(0,0)としたとき、左上がFHDなら(1920,1080)になるような……
そういう関数作ればいいと思う

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

式の場合は%付けない、文字列の場合は%付けるんだっけ?未だによく間違える(´・ω・`)

182 :名無しさん@お腹いっぱい。 :2020/07/05(日) 22:09:20.66 ID:BwrFni8y0.net
>>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")

183 :名無しさん@お腹いっぱい。 :2020/07/05(日) 22:35:39.06 ID:dLHUmlTf0.net
>>182
リファレンスちゃんと読んだ方が良い

184 :名無しさん@お腹いっぱい。 (ワッチョイW 1edc-lrAq):2020/07/05(日) 22:52:35 ID:BwrFni8y0.net
>>183
あれ三行でまとまりませんか?……orz
難しいので他のウィンドウ操作系ソフト使おうかと思っても無いんですよね、これというのが……

185 :名無しさん@お腹いっぱい。 :2020/07/06(月) 00:04:48.67 ID:cb7LpR4N0.net
>>182

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

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

それと質問するときは最初からそのスクリプト貼れ
小出しにするから無駄に長引く

186 :名無しさん@お腹いっぱい。 :2020/07/06(月) 08:02:38.57 ID:WTsF5wfU0.net
こんな糞ゴミ質問者に丁寧に接してくださってありがとうございます
ほんとに、リファレンスは"ちゃんと"読まないといけませんね……
も少しマシな質問出来るようになってから出直してきます、ありがとうございましたm(__)m

187 :名無しさん@お腹いっぱい。 :2020/07/07(火) 13:17:14.52 ID:aP891AzU00707.net
vscodeでデバッグできるようになっとる

188 :名無しさん@お腹いっぱい。 :2020/07/07(火) 16:17:49.19 ID:cew1M6f100707.net
a.ahkに ^t::msgbox
b.ahkに send,^t
とやっても上手くいきません
やり方間違ってますか?

189 :名無しさん@お腹いっぱい。 :2020/07/07(火) 16:40:07.85 ID:vjfrsmL600707.net
>>188
何が上手く行かないのか知らんが”それのみ”のスクリプトなら
a.ahkを常駐させておいてb.ahk実行すりゃmsgbox表示されるぞ
https://i.imgur.com/TiZycOG.jpg

190 :名無しさん@お腹いっぱい。 :2020/07/07(火) 17:14:39.59 ID:cew1M6f100707.net
>>189
そこに問題があると思って他を省いてしまいました
#ifwinactiveの記述を消したらちゃんと動作しました
すみません

191 :名無しさん@お腹いっぱい。 (ワッチョイ edc3-Bqa1):2020/07/09(木) 19:26:06 ID:WDFwHzH90.net
動作に関することではないですけど
いつの間にか、アイコンがくっきりしたのとボヤっとしたのに原因なんでしょうかねこれ
https://imgur.com/pLyH7uf

192 :名無しさん@お腹いっぱい。 (ワッチョイ cd58-ucCN):2020/07/09(木) 19:28:21 ID:jW22mh0R0.net
>>191
ディスプレイ解像度が変わったりするとそうなる
AHK関係無くOSの問題

193 :名無しさん@お腹いっぱい。 :2020/07/09(木) 19:34:05.52 ID:WDFwHzH90.net
そうなんですが、ありがとうございます
そして意味不明な日本語でしたねすみません

194 :名無しさん@お腹いっぱい。 (ワッチョイ 4b76-/sw6):2020/07/14(火) 00:55:13 ID:EP9LjcCP0.net
範囲選択してスクリーンショットするアプリを使用しています。
左クリックのドラッグで範囲選択をします。

実現したいことは、「トリガー押下→範囲選択モードに移行(アプリ側で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

195 :名無しさん@お腹いっぱい。 :2020/07/14(火) 01:48:48.79 ID:6ncGE/jk0.net
説明が分かりにくいんだけど

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

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

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

みたいなやり方はどうよ?
待機とかするよりもシンプルだと思うが

196 :名無しさん@お腹いっぱい。 :2020/07/14(火) 09:15:26.11 ID:1et+KNUO0.net
> ・WhileとGetKeyStateの入れ子をうまいこと組み合わせる→よくわからないけど失敗
その失敗したコード部分を貼らないと

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

> 範囲選択モードになったことを示すものはないとして
ImageSearchは検討してみた?
なんのアプリ使ってんだが分からんが操作する人間が視覚的に判るような範囲選択オブジェクトは描画されてるわけでしょ
ドラッグ開始の「 部分が透明度低ければピクセル一致で引っ掛けられるかも

197 :名無しさん@お腹いっぱい。 :2020/07/14(火) 11:20:11.39 ID:25qkeb/t0.net
1.1.33.1

198 :名無しさん@お腹いっぱい。 :2020/07/15(水) 20:36:23.68 ID:jMEGxsKVM.net
https://kostrivia.com/5592.html
上のサイトを参考にwindowsのIMEの設定で無変換キーをIMEオフ、変換キーをIMEオンにしてるんだけど、その場合キー名はそれぞれ何になるんだろう?

http://ahkwiki.net/KeyList#Key_ZenHan
見ても載ってなかった

199 :名無しさん@お腹いっぱい。 :2020/07/15(水) 21:43:15.57 ID:Jb2twzxz0.net
>>198
無変換
vk1d

sc07B
は試した?

わからんときは、そのURLの「上記以外のキー」ってとこに取得法書いてる

200 :名無しさん@お腹いっぱい。 :2020/07/15(水) 22:02:27.10 ID:LKXFRDtu0.net
>>198
昔のバージョンでは無変換キーは vk1Dsc07B で指定してた
今は無変換キーは vk1D または sc07B のどちらかで指定する仕様に変わった
変換キーや他のキーコードも同じ様に変わった


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

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

これって今だけ?しばらくしたら誰でも編集できるようになるんかね?

201 :名無しさん@お腹いっぱい。 :2020/07/15(水) 22:36:02.47 ID:x3LYmQRw0.net
wikiもJPももう数年単位で放置されてるからなあ
新しい情報に更新したいならいっそwikiを新しく作った方がいい気がする

202 :名無しさん@お腹いっぱい。 :2020/07/16(木) 03:08:45.98 ID:VMyR24rS0.net
タスクマネージャーとか、デバイスマネージャーみたいなwindowsの画面?だとautohotkey効かないのって何故?

マウス移動をキーボードでしてるから、これらの画面でも効くようにしたいのだけれど、無理なのだろうか

203 :名無しさん@お腹いっぱい。 :2020/07/16(木) 03:11:49.56 ID:VMyR24rS0.net
>>202
すまん、>>137に同様の質問あったわ
管理者実行したら解決した
失礼しますた

204 :198 :2020/07/16(木) 13:44:03.89 ID:n+FmbQAMM.net
ありがとう、auto hot keyを設定できたけど、今度はIMEのキー設定のほうが無効化されてる。。。

205 :名無しさん@お腹いっぱい。 :2020/07/16(木) 14:32:03.39 ID:Umz0s/0zM.net
何やりたいのか知らんけど
キー奪いたくないなら ~ 付ければ

206 :名無しさん@お腹いっぱい。 :2020/07/16(木) 22:21:07.86 ID:onG5mLRo0.net
>>194です
みなさんありがとうございます。
一応解決していたのですがスレに書き込めず断念しました。
以下は「WhileとGetKeyStateの入れ子でうまいことやる」方式ですが、あまりスマートではない気がしますので、
LButtonのホットキーやSetTimerも試してみようと思います。
以下条件式の部分
https://pastebin.pl/view/66a0f0bb

207 :名無しさん@お腹いっぱい。 :2020/07/18(土) 00:23:26.44 ID:uAR2frX60.net
1.1.33.2

208 :名無しさん@お腹いっぱい。 :2020/07/18(土) 01:16:35.31 ID:sv19kcVb0.net
Win10の通知を検知する方法ってないですかね?
Window Spyで見ると

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

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

WinWait, 新しい通知

などでは検知できませんでした
何かスマートな方法ありませんか?

209 :名無しさん@お腹いっぱい。 :2020/07/18(土) 11:07:13.49 ID:5I0TjaiB0.net
無変換キー+aで0
無変換キー+sで2
(中略)
無変換キー+;で9
という風にしたいのですが、
sc07B & a::Send,{0}
sc07B & s::Send,{1}
(中略)
sc07B & vkBBsc027::Send,{9} 
という風に記述した所上手く行きませんでした。
(vk1Dも試しました)
何が原因で上手く行かないのでしょうか?

また、出来れば無変換キーを誤動作しないように、仮想キーに置き換えたいのですが、
sc07B ::vkXXのXXは適当な三桁くらいの数字でも動作するものなのでしょうか?

210 :名無しさん@お腹いっぱい。 :2020/07/18(土) 15:04:58.95 ID:gfn4oPAO0.net
>>209
キー指定に全角が混ざってるからだろ
あとセミコロンも仮想キーコードとスキャンコード両方並べてるし

211 :名無しさん@お腹いっぱい。 :2020/07/18(土) 21:55:27.65 ID:5I0TjaiB0.net
>>210
ありがとうございます、おかげで置き換え以外上手く行きました

212 :名無しさん@お腹いっぱい。 :2020/07/18(土) 22:23:18.22 ID:K/vJ5a0r0.net
>>211
間違ってたらスマン、無変換キー単独で押しても何も起こらないようにしたいなら
sc07B ::return
だと思うけど、殺してしまうの何かもったいないような

213 :名無しさん@お腹いっぱい。 :2020/07/18(土) 22:37:02.59 ID:g7e6OMMf0.net
誤動作させたくなかったらIMEのプロパで無変換キーの割り当て全て無しにしとけばいいだけでしょ

214 :名無しさん@お腹いっぱい。 :2020/07/19(日) 01:39:06.45 ID:DHlvlCWw0.net
>>212
>>213
すみません、私の書き方が悪かったです。
私がしたいのは、無変換をキーキーボード上には割り当てられていない
第二のaltキー的な新たなキーにしたいのです。

215 :名無しさん@お腹いっぱい。 :2020/07/19(日) 01:55:08.22 ID:N4SWN7YZ0.net
タスクトレイにあるアイコンを操作したくて
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 と表示されます。

216 :名無しさん@お腹いっぱい。 :2020/07/19(日) 02:02:12.40 ID:62gcooW20.net
>>214
だからIMEで機能割り当て無くしとけば無変換キー自体は単独では何の機能も持たない
第二のaltキーのように修飾キーとして使える
IME以外にデフォルトで無変換キーに機能割り当てしてるソフトなんてまず無いし
逆にそれでなにが不都合あると言うんだ

217 :名無しさん@お腹いっぱい。 :2020/07/19(日) 02:08:38.28 ID:DHlvlCWw0.net
>>216
すみません、私が理解出来てませんでした。
ありがとうございます。

218 :名無しさん@お腹いっぱい。 :2020/07/19(日) 18:24:50.56 ID:dirzI1+ha.net
>>215
ByRef は 渡した変数の内容が変更される可能性があるという認識はあっている

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

具体的にどういう操作をしたいのかによって別のやり方もあると思う

219 :名無しさん@お腹いっぱい。 :2020/07/19(日) 19:35:17.18 ID:N4SWN7YZ0.net
>>218
回答ありがとうございます。
このスクリプトの更新日を見たら2006年とかなり古いのでwindowsの仕様が変わって
動かないのですかね?

やりたいことはタスクトレイアイコンをクリックしたいだけなのでmouseclickを使っていたのですが、
検索すると>>215にあるスクリプトが出てきたので試してみた次第です。

220 :名無しさん@お腹いっぱい。 :2020/07/19(日) 19:44:32.55 ID:I29ILi9k0.net
win仕様もahk仕様も変わってるから難しいと思う
ANSI版(ahk basic)でやってみて動けばラッキー

221 :名無しさん@お腹いっぱい。 :2020/07/19(日) 20:09:03.48 ID:Z2QAfO/e0.net
>>219
そのスクリプトのことは知らないけど
Win10でトレイアイコンを操作したいならWin+Bでトレイアイコンにカーソルが行く
矢印キーで選ぶかアプリケーションの頭文字のキー(AHKアイコンならA)で選択して
Enterまたはメニュー出したいときはAppsKey

これらを組み合わせればSendだけで大体の操作できる

222 :名無しさん@お腹いっぱい。 :2020/07/19(日) 20:33:01.17 ID:N4SWN7YZ0.net
>>221
Win+Bでタスクトレイにフォーカスが行くのは知りませんでした。
ありがとうございます。

223 :名無しさん@お腹いっぱい。 :2020/07/19(日) 20:37:21.36 ID:Z2QAfO/e0.net
>>222
比較的新しいショートカットだからね
俺も昔はトレイアイコンの画像保存しといてImageSearchでMouseMoveとかしてたけど

224 :名無しさん@お腹いっぱい。 :2020/07/20(月) 18:39:59.26 ID:cqKEaSeFM.net
みんなエディタ何使ってるの?
AHK studio、日本語入力できないとかなんだコレ、、、

225 :名無しさん@お腹いっぱい。 :2020/07/20(月) 18:46:15.41 ID:6QeqbF/D0.net
>>224
自分はNotepad++

226 :名無しさん@お腹いっぱい。 :2020/07/20(月) 19:59:04.61 ID:TCRNHUMW0.net
>>224
VSCode
AHKの拡張機能がある

227 :名無しさん@お腹いっぱい。 :2020/07/20(月) 20:11:35.76 ID:TCRNHUMW0.net
下のコードで、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

228 :名無しさん@お腹いっぱい。 :2020/07/20(月) 20:37:36.27 ID:KuYhS1WK0.net
%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

スマホからなんで実際には試してない
コピペで動かなかったらすまん

229 :名無しさん@お腹いっぱい。 :2020/07/21(火) 03:48:29.75 ID:aMj/sQ1Q0.net
特定のアプリだけミュートにできねえかなぁ
nircmd使う方法しかでてこないけど、オンゲやるとチート対策ソフトに弾かれる可能性あるから使いたくないし

230 :名無しさん@お腹いっぱい。 :2020/07/21(火) 08:45:36.20 ID:IFAKf5IL0.net
>>229
アプリ単位で良いなら、タスクトレイのボリュームアイコンを右クリックして「音量ミキサー」を開けばできるよ
「ファイル名を指定して実行」からsndvol.exeを実行してもOK

スタートメニューから「アプリの音量」で検索すると「サウンドミキサーのオプション」が出てくるから、そっち(アプリの音量とデバイスの設定)でもできる

231 :名無しさん@お腹いっぱい。 :2020/07/21(火) 08:53:56.12 ID:3rEYqijc0.net
>>230
だからそれをAHKなどで操作したいっつー話なんじゃねえの
知らんけど

232 :名無しさん@お腹いっぱい。 :2020/07/21(火) 10:50:53.55 ID:aMj/sQ1Q0.net
>>230
もちろん、それでできるけどahkもしくは他の方法でもいいけどショートカットキーでやりたくてね

フルスクリーンゲームやっててyoutubeで音楽聞いてると、いちいちChromeの音量切るの面倒くさいのよ

233 :名無しさん@お腹いっぱい。 :2020/07/21(火) 11:12:19.45 ID:saCvU2px0.net
>>229
単語並べてググって出た
https://github.com/kristoffer-tvera/mute-current-application

一部効果ないやつあるようだけど

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

なんかコード書いたら書き込めない...(´・ω・`)

235 :名無しさん@お腹いっぱい。 :2020/07/21(火) 11:54:13.07 ID:IFAKf5IL0.net
>>232
https://pastebin.com/h5jg9UNA
こんな感じのを適当なショートカットキーで実行するとか

でも、フルスクリーンのゲームやってる時に音量ミキサー開いたら、フルスクリーンが解除されちゃったりするかな?

236 :228 :2020/07/21(火) 12:13:10.57 ID:5XlMbZFU0.net
× AttributeString := FileExist(val)
AttributeとAbsoluteカン違いしてたわすまん
絶対パス取得はfile-loopでA_LoopFileLongPathじゃないと取れないか

というかini内の記述を絶対パスにしたくない(相対記述→絶対パス)って意図だと捉えてたけど
iniは絶対パス記述でAHKで省きたい(絶対→相対)って意味だったらすまん

237 :名無しさん@お腹いっぱい。 :2020/07/21(火) 13:07:13.76 ID:aMj/sQ1Q0.net
>>233,>>235
レスありがとう、時間あるときちょっと試してみるわ

238 :名無しさん@お腹いっぱい。 :2020/07/21(火) 20:10:06.29 ID:6AnSQ4cb0.net
>>236
ありがとう

スクリプトフォルダ内の複数のbatファイルから選択してRunするために、
データはIniファイルに突っ込んでて、
メイン環境なら絶対パスでいいけどUSBやらなんやらで持ち出したときに
動作しないから%A_ScriptDir%のノリでIniファイルに記述したいなと

239 :名無しさん@お腹いっぱい。 :2020/07/21(火) 20:12:00.29 ID:6AnSQ4cb0.net
>>238
データは、というかBatファイルのパスをIniファイルに記述してる

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

みたいな

それをAHKからReadしてRunさせてる

240 :名無しさん@お腹いっぱい。 :2020/07/21(火) 20:46:09.78 ID:5XlMbZFU0.net
変数展開したいならTransform Derefだが
起点が決まってるなら相対のままworkingdir指定でもいい気がするけどね

Run, %val%, %A_ScriptDir%

241 :名無しさん@お腹いっぱい。 :2020/07/23(木) 00:41:47.27 ID:pi8EOXNV0.net
ウィンドウが呼び出したダイアログがアクティブになった事を確認したいんですがうまくいきません
ダイアログの場合って別のやり方が必要なんですかね?
#IfWinActive ahk_exe chrome.exe
~^s::
WinWaitActive, ahk_exe chrome.exe,"名前を付けて保存", 2
if(ErrorLevel == 0){
 MsgBox, "OK"
}else{
 MsgBox, "NG"
}

242 :名無しさん@お腹いっぱい。 :2020/07/23(木) 00:54:52.04 ID:OmJCQ1JO0.net
>>241
「名前を付けて保存」はウィンドウタイトル
あと "" は要らない
最後にReturnする

243 :名無しさん@お腹いっぱい。 :2020/07/23(木) 01:03:09.31 ID:pi8EOXNV0.net
>>242
うまくいきました、ありがとうございます

244 :名無しさん@お腹いっぱい。 :2020/07/23(木) 20:42:11.81 ID:d1WuC/N20.net
>>240
ありがとう
道が見えた

245 :名無しさん@お腹いっぱい。 :2020/07/23(木) 20:54:09.64 ID:d1WuC/N20.net
AutoHotkey.ahk − a.ahk
|
− b.ahk
[a.ahk]
a::Gui生成
GuiClose:終了処理
[b.ahk]
b::Gui生成

こんな感じの構成でそれぞれのGuiが別物の場合、bの方のGuiCloseを書くにはどうしたら?
2GuiCloseとかは2つGuiがShowされていたらの話だと思っていて、実際に動作しなかった。

246 :名無しさん@お腹いっぱい。 :2020/07/23(木) 20:57:56.41 ID:d1WuC/N20.net
>>245
失礼、普通に動作した

247 :名無しさん@お腹いっぱい。 :2020/07/24(金) 21:59:30.61 ID:soU5eOWb0.net
自作DLL(別プロジェクトで動作確認は取れている)をDllCallすると
ErrorLevel -3で失敗してしまうんですが、
なぜ失敗するかの具体的な特定方法ってないですかね?
一応、A_WorkingDir的にDLLは見えているはずなんですけど

もしくはahkスクリプトからluaを実行して結果を取れると解決するんですけど

248 :名無しさん@お腹いっぱい。 :2020/07/25(土) 00:23:11.88 ID:0/SfUIv30.net
>>247
> ErrorLevel -3
これが具体的な失敗理由ですが?

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

・DLLがシステムディレクトリかA_WorkingDir(SetWorkingDirで変更可能)にある
・AHKとDLLの 32bit 64bit の違い

249 :名無しさん@お腹いっぱい。 :2020/07/25(土) 09:25:49.79 ID:Be4fX4490.net
>>247
一応公式も置いとくね
https://www.autohotkey.com/docs/commands/DllCall.htm#error
DLLにアクセスできないってエラーだから、32bit/64bit確認、権限のチェック、あとは絶対パスで指定してみては?

250 :名無しさん@お腹いっぱい。 :2020/07/25(土) 22:27:59.07 ID:0QOLAh7b0.net
フックについて理解ができないので質問します。(非エンジニア)

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

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

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

また、以下の認識はあっていますか?
UseHook = InstallKeybdHook + InstallMouseHook

251 :名無しさん@お腹いっぱい。 :2020/07/25(土) 22:31:58.79 ID:0QOLAh7b0.net
もう一つ質問です。

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

#Persistent
#NoEnv
#UseHook
SendMode, Input
SetWorkingDir %A_ScriptDir%\scripts
SetTitleMatchMode, 2
#MaxHotkeysPerInterval 100

252 :名無しさん@お腹いっぱい。 :2020/07/25(土) 22:48:48.53 ID:kjnyEGzO0.net
>>251
まず一通りwikiでコマンドの意味調べりゃ良いんじゃないかな

253 :名無しさん@お腹いっぱい。 :2020/07/25(土) 23:07:13.87 ID:0QOLAh7b0.net
>>252
それは当然調査済みですが、ちゃんとはわかってません。
おそらく追加したほうが良さそうな雰囲気なので入れてます。
ただ理解は曖昧なので、参考のため皆さんの設定を知りたいなと思いまして

254 :名無しさん@お腹いっぱい。 :2020/07/25(土) 23:14:33.77 ID:kjnyEGzO0.net
>>253
こっちだってwiki読んで理解してるだけだからそこに書いてある以上のことは知らん
そもそもなんでwikiを読んで分からないのかがこっちには分からないし
例えば #Persistent なら「スクリプトを常駐状態にする。」ってwikiに書いてあるしそのまんまの機能
これ読んで分からないって余程日本語理解力に問題あるんじゃないかと
「当然調査済み」とか言い張ってるが本当に読んでるのかよ

255 :名無しさん@お腹いっぱい。 :2020/07/26(日) 10:00:51.37 ID:fmdWSWo70FOX.net
ちゃんと理解しないで「なんとなく」とか「記述した方が良さそうだ」とか闇雲に記述するのはどうかと思う
例えば、常駐させる必要ない自動化スクリプトに#Persistent(#NoTrayIconも)なんて記述するのはアホの極みだ

256 :名無しさん@お腹いっぱい。 :2020/07/26(日) 15:28:37.12 ID:CVyG8zhZ0.net
>>255
常駐させる必要ないスクリプトこそ一時的にアイコン表示されるのウザいから
必ず#NoTrayIconを記述してますが何か?
闇雲に記述するのはどうかと思うのは同意

257 :名無しさん@お腹いっぱい。 :2020/07/26(日) 16:19:43.46 ID:fmdWSWo70.net
>>255訂正…後出しだけど
X(#NoTrayIconも)
○(に加えて#NoTrayIconも)
誤解を招く舌足らずな表現でスマンかった

258 :名無しさん@お腹いっぱい。 :2020/07/26(日) 19:38:30.96 ID:b9LQTrtD0.net
読解力に問題があるって言ってもなぁ
じゃあ日本語ならどんな分野のどんな難しい文章もわかるのか?って話になるからな。

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

259 :名無しさん@お腹いっぱい。 :2020/07/26(日) 19:45:26.93 ID:lfc7Fo4v0.net
「スクリプトを常駐状態にする。」ってこんな簡単な文章がなぜ理解できないのかって話なのに
なんでそこから日本語ならどんな分野のどんな難しい文章もわかるのか?って話に飛んでんのかな?
その発想自体が日本語の理解力足りないってことじゃねえの

260 :名無しさん@お腹いっぱい。 :2020/07/26(日) 19:50:44.21 ID:b9LQTrtD0.net
ん〜だから、知識によって理解が変わるってことを大袈裟に言っているだけで
252 とか 254みたいな批判めいた内容言うこともないだろって話。
#Persistentがどうのとか中身は興味ないから

261 :名無しさん@お腹いっぱい。 :2020/07/26(日) 19:58:57.50 ID:lfc7Fo4v0.net
>>260
つまり「常駐」って言葉の意味が分からないとかか?
だったらそういう質問の仕方をしないと相手に伝わる訳もないよな?
そもそも「常駐」の意味だって調べりゃ良いだけだし
ろくに調べもせずに丸投げ質問しておいて、挙句「当然調査済み」とか言ってる馬鹿は批判されて当然のこと

262 :名無しさん@お腹いっぱい。 :2020/07/26(日) 20:00:38.99 ID:lfc7Fo4v0.net
>>260
それと>>252のどこが批判めいてるんだ?
どう見てもごく普通のアドバイスだろ
それに対して>>253みたいなこと言えばそりゃ批判されるわ

263 :名無しさん@お腹いっぱい。 :2020/07/26(日) 22:31:44.50 ID:S9oLQUza0.net
理解力じゃなくて尋ね方の問題でしょ
このスレは横着者に厳しいので漫然とした聞き方でお薦めを得ようとしてもだめ
理解が及んでないと思う箇所をピンポイントで掘り下げて聞いた方がいいよ

264 :名無しさん@お腹いっぱい。 :2020/07/26(日) 22:37:52.93 ID:ACsjU6Jp0.net
要するにこれ

教えて君五大要素
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない

265 :名無しさん@お腹いっぱい。 :2020/07/28(火) 04:19:25.54 ID:TZ11IB3u0.net
>>251です
質問の範囲が曖昧でしたね。では、特に以下のことについてお聞きします。
>>250
・その他、皆さんの設定(常駐スクリプト)

#UsehookやSendMode, Inputが理解できていませんが、これは共にフックが関係しているためです。
フックについての理解が>>250で正しければ、それで解決します。
それから、よければ皆さんの常駐スクリプトの頭を見たいなと。

266 :名無しさん@お腹いっぱい。 (ワッチョイ 8b02-PQNh):2020/07/28(火) 21:52:09 ID:j4zhZCSu0.net
フック使用時は SetWindowsHookEx でフックチェーンにコールバック関数が登録され、
何らかのキーが入力されたとき、登録されたコールバック関数が呼ばれます
なので'OS側は入力されたことに気づかない'は誤りです

>また、以下の認識はあっていますか?
>UseHook = InstallKeybdHook + InstallMouseHook
あっていません

#UseHook, On
F5::
MsgBox % A_PriorKey ; A_PriorKey を使用するにはフックが必要
Return

これを実行すると、キーボードの履歴は取得できますが、マウスの履歴は取得出来ません
#InstallMouseHook をコードに加えるとマウスの履歴も取得出来ます

267 :名無しさん@お腹いっぱい。 :2020/07/30(木) 01:09:12.14 ID:fMNXqak+0.net
テンキーでホットストリングを使用したいのですが
どのように指定したらよいのかわかりません。

「-」を2回押して「〇〇○○」の文字入力

:*?Z:--::
Clipboard = ○○○○
Send, ^v
Return

上記で一応やりたいことは出来るのですが
「-」2回入力を「NumpadSub」にしたいのですが

:*?Z:{NumpadSub 2}::
:*?Z:{NumpadSub}{NumpadSub}::
としてもうまく機能しません。
教えていただけると助かります。

268 :名無しさん@お腹いっぱい。 :2020/07/30(木) 04:58:02.48 ID:bNezzCEK0.net
>>267
ホットストリングは入力された文字を置き換えるだけだから
テンキーだろうがそうじゃなかろうが - は同じ文字なのでテンキーか否かの区別は無い
テンキーの - のみ置き換えたいならホットキーで2回押し判定するこったな

269 :名無しさん@お腹いっぱい。 :2020/07/31(金) 08:42:13.59 ID:g2I7hRAB0.net
>>267
サンプルコード集 - AutoHotkey Wiki
http://ahkwiki.net/SampleCodes
ここの「1つのキーに3種類以上の動作割り当て」を使うといい

余談だけど、自分はよく使う機能なんで関数にしている
んで、「Switch」が使えると最近知ってスクリプトを書き換えたが同じ変数の羅列が無くなってスッキリするね

270 :名無しさん@お腹いっぱい。 :2020/07/31(金) 17:18:12.37 ID:0oLnTWbF0.net
>>269
外野ですがPastebinしてもらえるとすごい助かります

271 :名無しさん@お腹いっぱい。 :2020/08/01(土) 10:56:06.64 ID:wwTG8TO50.net
>>268
>>269
参考になりました!長押しいいですね!
早速使います!

272 :名無しさん@お腹いっぱい。 :2020/08/02(日) 20:02:58.56 ID:1OIburwk0.net
ホイールスクロールを左右キー(←→)に割り当てているのですが、元々のスクロールも残っているようで、左右キーと同時にスクロールもしてしまいます。
1秒間に何十回も行う動作なのでこういった挙動になってしまうのでしょうか?なんとか割り当てた左右キーを動作させている時は元々のスクロールは動かないように出来ないでしょうか?
宜しくお願い致します。

273 :名無しさん@お腹いっぱい。 :2020/08/02(日) 20:08:47.09 ID:1OIburwk0.net
申し訳有りません 解決しました

274 :名無しさん@お腹いっぱい。 :2020/08/02(日) 20:17:53.03 ID:81CoHYtN0.net
~Left:: とかにしてなけりゃ普通は抑制されるはずだけど?
キーリピート殺さないとホイールがチャタってるみたいな状態にはなるかも知れんが

よくあるのが関係ない部分でreturn入れてて挙動不審になってるやつ
最小コードで動作検証してみて
それでも動かないならコード貼って再質問どうぞ

275 :名無しさん@お腹いっぱい。 :2020/08/02(日) 20:19:50.56 ID:u9ugTsmM0.net
>>272
すり抜け対策なら
SetKeyDelayのPressDurationを10〜50msくらいに設定

276 :名無しさん@お腹いっぱい。 :2020/08/02(日) 20:51:32.80 ID:1OIburwk0.net
>>274
すいませんまさに~Left::です これだとスクロールが出ちゃうんでしょうか?
~Lshift & WheelUp::Send,{Left}
~Lshift & WheelDown::Send,{Right}

277 :名無しさん@お腹いっぱい。 :2020/08/02(日) 20:53:24.65 ID:zAbkO+PE0.net
>>276
当たり前だろ・・・
基本中の基本くらいちゃんと調べろよ

278 :名無しさん@お腹いっぱい。 :2020/08/02(日) 21:35:11.08 ID:81CoHYtN0.net
ああLeftにホイール割当じゃなくてホイールにLeft割り当てなのか
~についてはヘルプをよく読もう
まあ理解したところでコンビネーション使う限りは避けられないだろうけど

~Lshift::からのInputコマンドか
#if getkeystat("Lshift") からの WheelUp::Left あたりかね

279 :名無しさん@お腹いっぱい。 :2020/08/02(日) 21:41:30.34 ID:AFdKD/8M0.net
>>278
コンビネーションとかgetkeystatとか使わずに修飾キー使えばいいだけだろ
このレベルだとどうせ修飾キーの記号すら分かってないだけだろうし

280 :名無しさん@お腹いっぱい。 :2020/08/02(日) 22:19:40.60 ID:81CoHYtN0.net
そういやそうだね
ややこしくしてすまんかった

281 :名無しさん@お腹いっぱい。 :2020/08/03(月) 15:55:03.34 ID:sfF7RDEPr.net
Alt+Sキーを押している間、中央ボタンを押している状態にしたいのですが上手く機能しません。
!s::
MouseClick,MIDDLE

!s::MButton

!s::
Send,{MButton}
を試したのですが動きません
ご教授お願いしたいです。

282 :名無しさん@お腹いっぱい。 :2020/08/03(月) 16:30:58.17 ID:ddoVblCqM.net
・キーリピート対策
・2行以上にまたがるホットキーラベルはreturnが必要
あたり?

283 :名無しさん@お腹いっぱい。 :2020/08/03(月) 16:33:22.00 ID:OV16fhwwa.net
これを参考に
https://autohotkey.com/board/topic/59307-how-to-make-a-key-press-repeatedly-while-its-down/

$!s::
While ( GetKeyState("s","P") && GetKeyState("Alt","P"))
以下略

とかではどうか

284 :名無しさん@お腹いっぱい。 (ワッチョイ 4edb-xE3T):2020/08/03(月) 18:46:54 ID:EtZ/qIcU0.net
>>281
alt使ってるせいでMButtonの挙動が変わるな
そういうの面倒なときは無変換キーなどを修飾替わりに使った方がいい

285 :名無しさん@お腹いっぱい。 :2020/08/04(火) 02:10:47.63 ID:pvHcveX7r.net
>>284
altキー以外ならいけるようになるものなんでしょうか?
winキーで試したところ駄目でした
ctrlはctrl+sと競合してしまいますし…

286 :名無しさん@お腹いっぱい。 (ワッチョイ 1673-xE3T):2020/08/04(火) 03:06:46 ID:6qMp3tYz0.net
>>285
修飾キーはやめとけってこと
無変換と言ってるのになんで言われたこと試さないんだ

287 :名無しさん@お腹いっぱい。 :2020/08/04(火) 08:11:04.70 ID:GuCHOeBV0.net
AutoHotkeyを使うなら英語キーボードへのこだわりを捨てた方が幸せになれるよ。

288 :名無しさん@お腹いっぱい。 (ワッチョイ 795a-xE3T):2020/08/04(火) 08:27:11 ID:+LKh5lCi0.net
>>285
Alt+Sも気づいていないだけで、何かと被ってない?
メニューバーにファイル(F)、編集(E)とかってある中に(S)使ってるのが、いくつかあると思うよ

289 :名無しさん@お腹いっぱい。 :2020/08/04(火) 15:49:03.70 ID:pvHcveX7r.net
>>286
USキーボードなので無変換キーがありませんので…

290 :名無しさん@お腹いっぱい。 :2020/08/04(火) 17:54:00.91 ID:Mz7J8e+xa.net
Mbuttonで試せるものを思いつかなかったので
LButtonでテスト
マウスをスクロールバーの三角矢印に置いて
sとdを同時押しでスクロール
これはうまく動いた

https://pastebin.com/hGTxhZC6

291 :名無しさん@お腹いっぱい。 (ワッチョイ 0acf-G5zh):2020/08/04(火) 21:51:34 ID:YeWR0s7Z0.net
メモ
管理者権限のウインドウを動かすための最新パッチを落としたら動かなかったので保存してあった旧パッチをネットにバックアップしておく
これでタスクマネージャも動かせる
https://www.axfc.net/u/4025809.zip

292 :名無しさん@お腹いっぱい。 (ワッチョイ 0acf-G5zh):2020/08/04(火) 21:53:04 ID:YeWR0s7Z0.net
失敗こっちで
https://www.axfc.net/u/4025810.zip

293 :名無しさん@お腹いっぱい。 :2020/08/06(木) 00:12:56.90 ID:eOY3feteM.net
altとwasdキーで矢印キーの役割を持たせたくて!w::Upみたいに書くとaltキーが入力されたままになって結果的にaltと矢印キーの状態になっちゃうんですけどこれの対処法みたいな物はありますか?

294 :名無しさん@お腹いっぱい。 :2020/08/06(木) 00:23:34.78 ID:OeT3kirv0.net
>>293
リマップを使わずにSendを使いな
実際にリマップがどのような動作するのかwikiをよく読んで
リマップはホットキーに変換される

295 :名無しさん@お腹いっぱい。 :2020/08/06(木) 11:58:26.53 ID:RbEH3NuY0.net
実行ファイル名だけでRunできるかどうかを確かめる方法って
PATHに含まれるパスの1つずつに実行ファイル名を付け足してFileExistで確認するしかないですかね?
もうちょっとスマートな方法ないかなと

296 :名無しさん@お腹いっぱい。 :2020/08/06(木) 13:05:35.07 ID:kGGdSQS1M.net
>>295
Windowsのwhereコマンドでファイルを探す
https://www.atmarkit.co.jp/ait/articles/0904/10/news115.html

なおAHKでstdout読むにはひと工夫必要
https://poimono.exblog.jp/25278401/

297 :名無しさん@お腹いっぱい。 :2020/08/06(木) 13:17:06.72 ID:wvUo9/wMa.net
てか、なんで直接Runで確かめたら駄目なんだ
パスが通ってれば実行できるし、そうでなければ実行できない
フルパスを知る意味はあるのか?

298 :名無しさん@お腹いっぱい。 :2020/08/06(木) 14:15:55.25 ID:JEPjWfkUM.net
RunWaitで実行して、ErrorLevel判定でだめなん?

299 :281 (ワッチョイ 3156-jE9f):2020/08/07(金) 23:24:35 ID:/SyKKu4K0.net
>>281ですが、やはりUSキーでは特定のキーを押している時に中央ボタンを教えている状態にする…というのは厳しいものでしょうか?
>>283も試し、>>290さんのものもそのまま使ってみたのですが駄目でした(SとD同時押しで左クリック)

300 :名無しさん@お腹いっぱい。 :2020/08/07(金) 23:42:38.23 ID:UYjaWn7P0.net
>>299
修飾キー使うのがダメなんだから無変換が無いならAppsKeyとかを修飾替わりにすれば
とにかく修飾キーを使わない方法自分の環境の中で考えろよ

301 :名無しさん@お腹いっぱい。 (ワッチョイW 53e5-WXil):2020/08/08(土) 00:56:59 ID:d1t6RuBp0.net
まずホットキー割り当て関係なしに Send,{MButton} は動作した?
とりあえずF1あたりに割り付けて試してみては?

あとさ押してる間中って,{MButton down} {Mbutton up} は考慮せんでいいの?
>281や>290ではキー押してる間 MButtonカチカチ押し直してることになるけど

302 :名無しさん@お腹いっぱい。 (ワッチョイ 3156-jE9f):2020/08/08(土) 01:17:59 ID:VqId6oIB0.net
>>301

F12::
Send,{MButton}
Return
で試してみたのですがそもそも中央クリックとして反応しませんね…。
MButtonでは駄目なんですかね 調べてみます

303 :名無しさん@お腹いっぱい。 (ワッチョイ 8958-e++8):2020/08/08(土) 01:50:59 ID:KA47kwuX0.net
>>302
だからdownとupをちゃんと書けって
F12押したら押してる間はMbuttonも押したままにしたいんだろ?
そしてF12離したらMbuttonも離す
そういう書き方しなよ

304 :名無しさん@お腹いっぱい。 (ワッチョイ 8958-e++8):2020/08/08(土) 01:52:31 ID:KA47kwuX0.net
そもそも何のソフトで検証してんだ
普通のユニバーサルスクロールなら
>>302のスクリプトでも動作するけど

305 :名無しさん@お腹いっぱい。 (ワッチョイ 595a-e++8):2020/08/08(土) 02:08:24 ID:rnkNRuHB0.net
>>302
>反応しませんね
ってのは目視で言ってる?それともAutoHotkeyのログにも反映されてないってこと?
そのあたりが明確じゃないと。
ホイールクリックはされてるんじゃないの?と自分も思うけど
どうにかしたいのは何かのゲームなの?

306 :名無しさん@お腹いっぱい。 (オッペケ Sr5d-h0Us):2020/08/11(火) 16:57:50 ID:cZVnzQoFr.net
全てのsendの後に300msの間隔を入れたいのですが 、sendkeyの間全てにディレイを入れるにはどうすればいいのでしょうか?

307 :名無しさん@お腹いっぱい。 (ワッチョイ d1b1-e++8):2020/08/11(火) 17:31:03 ID:SgS7rHNJ0.net
>>306
SetKeyDelay

308 :名無しさん@お腹いっぱい。 (ワッチョイW 9b11-TKzn):2020/08/11(火) 21:39:37 ID:TLfH+B9q0.net
無変換を空打ちの時は無変換のままで他のキーと組み合わせた時にctrlキーになるみたいなスクリプトって作成可能ですか?vk1D & a::send, ^{a}みたいなのを永遠と続けていくしかないんですかね

309 :名無しさん@お腹いっぱい。 (ワッチョイ d1b1-FqWw):2020/08/11(火) 22:44:38 ID:j6KwnO/20.net
>>308
こんな感じで行けたけどどうでしょう
#If GetKeyState("sc07B","P")
a::
b::
c::
d::
MsgBox, %A_ThisHotkey%
return
#If

310 :名無しさん@お腹いっぱい。 (ワッチョイ 0611-oFWA):2020/08/12(水) 11:54:00 ID:2Yw6Zztj0.net
>>309
無変換キーをctrlにしたいから6行目をsend,{Blind}^{%A_ThisHotkey%}に書き換えたんですけどshiftキーみたいな修飾キーを同時押しすると反応しません(ctrlとshiftとaをおしてもshiftとaになる)。どうすればいいのでしょうか?

311 :名無しさん@お腹いっぱい。 :2020/08/13(木) 16:49:16.78 ID:XhLEW61l0.net
SetKeyDelay, は、自分が組んだマクロの前に入れておけばそのマクロだけ動いてくれるものでしょうか?
試した所適応されないのですが、この書き方だと間違っているでしょうか?

;;;googleearthのプロパティ変更
SetKeyDelay, 200
#IfWinActive ahk_class Qt5QWindowToolSaveBits
^n::
send,{Tab}
send,{Tab}
send,{Tab}
send,{Tab}
…以下略


send,{Tab}の間等、全ての間に少しだけ間隔が欲しいです。
SetKeyDelayの数値を20000などに上げてみても速度が変わらなかったので機能していないようなのですが、どこに記述すればいいものでしょうか?
ご教授頂ければと思います。お願いします。

312 :名無しさん@お腹いっぱい。 (ワッチョイ dd58-p5K4):2020/08/13(木) 17:17:21 ID:LDN6U1Fl0.net
>>311
全てのホットキーに適用したいならそのスクリプトの一番ド頭に書けばいい
余計なもん一切書かずに↓のみのスクリプト新規に作って実行してみ

SetKeyDelay, 1000
^n::
send,{Tab}
send,{Tab}
send,{Tab}
send,{Tab}
Return

ちなみに^nのみに適用したいなら ^n:: の次の行に書けばいい

313 :名無しさん@お腹いっぱい。 (ワッチョイW 4173-oF9N):2020/08/13(木) 17:20:08 ID:BcGAhrfM0.net
>>311
Auto-executeセクション
>>1で説明されてると思う

314 :名無しさん@お腹いっぱい。 (ワッチョイ 2ebe-XQXO):2020/08/16(日) 18:54:26 ID:L+IHJT3W0.net
質問しといて回答貰ってもなんの返事もしない奴って
他人を利用することしか頭に無いんだろうなあ

315 :名無しさん@お腹いっぱい。 :2020/08/17(月) 20:54:41.17 ID:3mab3Ymer.net
ウィンドウ切り替えのAlt+Tabを右クリック&ホイールスクロールに割り当てたいんだけど不可能かな?
Alt+tabを押した後、Altはドラッグしたままtabのみクリックをホイールに割り当てないといけないから無理かなさすがに…

316 :名無しさん@お腹いっぱい。 (オッペケ Srf1-K5M0):2020/08/17(月) 21:27:15 ID:3mab3Ymer.net
すいません alttabmenuを使うのが自分のやりたいことに1番合っているようでした

317 :名無しさん@お腹いっぱい。 (ワッチョイ d1ed-p5K4):2020/08/17(月) 21:36:55 ID:BI+nRFCA0.net
>>315
それのために「AltTab」「ShiftAltTab」という専用コマンドが用意されてる
ただし右クリックと組み合わせるとコンビネーションキーの仕様で右ドラッグが出来なくなるなど
悪影響が出るので右クリック使うのはお勧めしない
サイドボタン+ホイール上下などと組み合わせた方が良い

318 :名無しさん@お腹いっぱい。 (オッペケ Sr73-JcCl):2020/08/19(水) 13:36:13 ID:A9E1pfBqr.net
>>317
ありがとう!

それと、SHIFT+ホイールスクロールで水平スクロールが動かないんだけど

; Shift +ホイールで水平スクロール
+ WheelDown :: WheelRight
+ WheelUp :: WheelLeft

これで動くって書いてたけどitunesとかエクスプローラで試しても動かないんだよね…
どこが間違っているんだろう

319 :名無しさん@お腹いっぱい。 (ワッチョイ 9fb1-wx54):2020/08/19(水) 14:13:35 ID:7/g4JpYv0.net
>>318
sendコマンドでやる方が良いんでない?
単純なsendで駄目なら他のモード試す

(´・ω・`).。oO(リマップは後々面倒なことになりそうだから個人的には使いたくないな…情弱なんで)

320 :名無しさん@お腹いっぱい。 (ワッチョイ 9f40-YpYZ):2020/08/19(水) 16:18:37 ID:rbvgmFfQ0.net
>>318
WheelDownの前後に余計なスペース入れてるからエラー吐く
正しく書けば動くけどエクスプローラーはそもそもWheelLeft/WheelRightのAPIに対応してないので
AHK関係なくチルトホイール付きマウスとかでも水平スクロールは使えない
ソフトごとに対応は異なる

>>319
別にSend使わなくても普通に動く

321 :名無しさん@お腹いっぱい。 (ワッチョイ 9fb1-wx54):2020/08/19(水) 23:30:05 ID:7/g4JpYv0.net
(;´∀`)おっおぅ

322 :名無しさん@お腹いっぱい。 (オッペケ Sr73-JcCl):2020/08/20(木) 13:13:28 ID:ZEA8sAPvr.net
>>320
ありがとうございます。
そうだったんですねchromeでのスプレットシートやitunesでも水平スクロールが出来ないのですが、これは水平スクロールをする方法は無いのでしょうか?

323 :名無しさん@お腹いっぱい。 (ワッチョイ ff6c-YpYZ):2020/08/20(木) 16:53:58 ID:kXSrpxVO0.net
>>322
GoogleのスプレッドシートはAHK使わなくても元からShift+ホイール上下で横スク出来るだろ
itunesは使ってないから知らん
そもそも個々のアプリの仕様はそのアプリのスレで聞けよスレチ

324 :名無しさん@お腹いっぱい。 (ワッチョイ 9f56-eNlY):2020/08/22(土) 19:14:45 ID:wV0OjCfD0.net
alt-ime-ahkというaltキーでIME変換できるスクリプトを使っていたのですが、
ALTキーがロックされてしまうバグで使い物になりません…。
他にalt単体でIME切り替えできるようにする方法はないでしょうか?

325 :名無しさん@お腹いっぱい。 :2020/08/22(土) 19:33:34.31 ID:/ojXZb2N0.net
alt-ime-ahkってそれなりに市民権得てるスプリクトだよね
初心者が単純にできることならわざわざ複雑にしたものが支持を得たりはしないのでは

あとこの手のものはおま環やOSやAutohotkey.exeのアプデによって問題が出てくることのほうが多い
調べもしないで簡単にバグとか言わない

326 :名無しさん@お腹いっぱい。 (ワッチョイ ffb4-YpYZ):2020/08/22(土) 19:38:18 ID:h59phsuN0.net
>>324
alt-ime-ahkとやらをググって試したけどロックなんてされないぞ
バグじゃなくてお前のOS設定とか他スクリプトの干渉とかの問題だろ

327 :名無しさん@お腹いっぱい。 :2020/08/22(土) 21:27:48.57 ID:mFroqLUM0.net
>>324
メカニカルキーボードスレで次のが紹介されていたよ
https://github.com/t-kouyama/ConvertAndNonConvertEmulator
あと、Keyhacでもできる

328 :名無しさん@お腹いっぱい。 (ワッチョイ 4611-yRqa):2020/08/27(木) 15:47:12 ID:QHZeYd9S0.net
Win+Eのホットキーでエクスプローラーがすでに開かれてる場合そのウィンドウをアクティブにして
そうでない時エクスプローラーを開くというスクリプトを作ろうとしたが挫折してる…
#e::
Process, Exist, explorer.exe
if ErrorLevel<>0
WinActivate, ahk_pid %ErrorLevel%
else
Run, "C:\Windows\explorer.exe"
Return
何かアドバイス等ありましたらご教授いただきたく存じます

329 :名無しさん@お腹いっぱい。 :2020/08/27(木) 16:24:37.79 ID:TQwMSHJa0.net
>>328
プロセスではなくウィンドウクラスで確認する

if WinExist("ahk_class CabinetWClass")
IfWinExist, ahk_class CabinetWClass

330 :名無しさん@お腹いっぱい。 (ワッチョイ 3d58-1etN):2020/08/27(木) 16:33:06 ID:obuHAsj80.net
>>328
329が先に答えたので補足になるけど
タスクマネージャーを見れば分かるがエクスプローラー窓を開いてない状態でも
Windows起動した時点でexplorer.exeはずっと常駐しているのでProcess, Existでは
常に「起動してる」という結果しか得られない

331 :名無しさん@お腹いっぱい。 (ワッチョイ 4611-yRqa):2020/08/27(木) 17:11:20 ID:QHZeYd9S0.net
>>329
>>330
ちょっと返信遅れちゃったけどアドバイス本当にありがとうございました!
エクスプローラーが常駐してるだなんて知らなかった…

332 :名無しさん@お腹いっぱい。 (ワッチョイW 6edc-CY6w):2020/08/27(木) 19:48:18 ID:Vy3dVpps0.net
>>331
タスクマネージャーからエクスプローラ終了してみな?
Windowsへの理解が深まるよ

333 :名無しさん@お腹いっぱい。 (ワッチョイ 0211-1etN):2020/08/27(木) 20:17:14 ID:cadQeoYy0.net
代替シェルやファイラーなどを使ってエクスプローラを使わない文化はまだ存在しているのだろうか

334 :名無しさん@お腹いっぱい。 (ワッチョイW 3d58-SlOK):2020/08/27(木) 20:45:17 ID:SZ2UrCzM0.net
ファイラーは普通にあるでしょ
今でもシェルまで変えられるかは知らんけど

335 :名無しさん@お腹いっぱい。 (ワッチョイW 6edc-CY6w):2020/08/27(木) 23:51:15 ID:Vy3dVpps0.net
VistaをどうしようもないXPレペルのノートで使ってた頃は少し使ってた>代替シェル
結局当時良さげになってきてたUbuntu10.04に逃げた

336 :名無しさん@お腹いっぱい。 (ワッチョイ 1156-hfuR):2020/08/28(金) 03:05:13 ID:cZIhkCY40.net
裏で動いているitunesの曲の再生や停止を書きたかったのですが、
^!Space::Send {Media_Play_Pause}
のように書いても反応しません。
キーボードに付属しているメディアキーでも反応しないのですが、どこかに設定等があるのでしょうか

337 :名無しさん@お腹いっぱい。 (ワッチョイ 3d58-1etN):2020/08/28(金) 04:21:25 ID:xw+3/nKK0.net
>>336
そもそもキーボードで反応しないならAHKに関係無くiTunesがメディアキーに対応してないだけじゃね
もしくはキーボード側の設定の可能性もあるがそれもAHK関係無いからスレチ
WMPとかでまず試して動作確認すればいいじゃん

あとはメディアキー使わなくてもほとんどのプレイヤーがスペースキーでPlay/Pauseになってんだろうから
ControlSendでスペースキー送れば良いんじゃね

338 :名無しさん@お腹いっぱい。 (ワッチョイ 1156-hfuR):2020/08/28(金) 15:06:19 ID:cZIhkCY40.net
>>337
そうですねすいません。
WMPでメディアキー使っても再生停止出来なかったのでソフトが対応してないのかと思います。ありがとうございます。

339 :名無しさん@お腹いっぱい。 :2020/08/28(金) 15:54:02.21 ID:xw+3/nKK0.net
>>338
>WMPでメディアキー使っても再生停止出来なかったので

WMPでメディアキー使っても再生できないならソフト側のせいじゃないだろ
論理的な思考力ないのかよ

・If 「WMPではメディアキー反応するけどitunesでは反応しない」→itunesが対応してないだけ
・ElseIf 「WMPでもメディアキー反応しない」→メディアキー自体が何かしらの理由で機能してない

ちなみにWMPや俺が使ってるプレイヤーソフト(AIMP)では>>336のスクリプトも機能してる

340 :名無しさん@お腹いっぱい。 :2020/08/29(土) 21:32:28.31 ID:o6IPlPhZ0NIKU.net
>>339
WMPがなんらかのせいで対応してない状態になってるっていうことですよ
メディアキーのサービス更新やchrome://flags/#hardware-media-key-handlingだとか色々触ってみたけど結局直らないんでもうソフト側の前でメディアキー死んでるってことなんですよね
ただどれだけ調べても同じような現象は無いし治る方法もないんでもう諦めます

341 :名無しさん@お腹いっぱい。 (ワッチョイ 866c-1etN):2020/08/30(日) 00:02:54 ID:Y/S0taCl0.net
>>340
だからその「なんらかのせいで」というのはお前のPC環境の問題であって
他の人はお前のPCの状態なんて触ったことも無ければ知ったこっちゃないわけ
ましてAHKとはなんの関係も無い問題からスレチ

AHKでやるならControlSendでスペースキー送れば良いだけ

342 :名無しさん@お腹いっぱい。 :2020/08/31(月) 23:25:39.14 ID:oOBjBlAHM.net
いまのウィンドウからみて、タスクバー上で1つ隣のウィンドウをアクティブにする処理をしたいんだけど、
何かいい方法ありませんかね?

↓↓絶対もっとスマートな方法あると思うんだけど、思いつかぬ……

やりたいことは例えば、タスクバーの左から順に
(1)エクスプローラー、(2)Excel、(3)Firefox、(4)Google Chrome、(5)メモ帳
みたいに並んで起動しているときに、(前提として、タスクバーボタンを結合していないものとして)
2番目のExcelがアクティブになっている状態でスクリプトを実行したら、
3案目のFirefoxがアクティブになる感じ。
※元々Firefoxが最小化されているか、裏に回っているかに関わらず、タスクバーの該当アプリを押したときと同じ挙動で前面に来てほしい。
※Excelは単に裏に回るだけで、最小化されたりはしない。(これもタスクバーで別のウィンドウが選択されたときと同じ挙動)

【いま考えている方法】
まず、現在のアクティブウィンドウのIDを取得する。……(A)
Win+1など、Win+数字のショートカットで、タスクバーの該当番目にあるウィンドウがアクティブになることを利用して、
Win+1〜Win+9まで順番にSendして、(A)で取得したIDと同じウィンドウがアクティブになれば、
その次の番号のウィンドウがアクティブになったら処理を終了。

【たくさんの欠点】
・問答無用で左から順にアクティブ化するため、最小化していたウィンドウも通常サイズになってしまう。
・重なり順序も変わってしまう。
・処理に時間がかかる。(Ctrl+Tab的な感覚で行いたい)
・9つまでしか使えない。

どなたか良い手法をご存知でしたら教えてください。

343 :名無しさん@お腹いっぱい。 (ワッチョイW 2173-q0Eg):2020/08/31(月) 23:49:04 ID:iwA0T+ry0.net
>>342
長文すぎて流し読みしかしてないけど
Alt + Tab
Alt + Shift + Tab
絡めたらどう?

344 :名無しさん@お腹いっぱい。 (ワッチョイ 3d58-1etN):2020/09/01(火) 00:02:03 ID:CIgJpoRq0.net
タスクバーの順番なんて気にしたことすらないな
タスク切り替えはAltTabで何も不都合感じたこともない

345 :名無しさん@お腹いっぱい。 (ワッチョイ a2be-JMbW):2020/09/01(火) 02:15:24 ID:jyT47uKQ0.net
>>342
ttp://ux.getuploader.com/autohotkeyl/download/72/

346 :342 (テテンテンテン MM66-yRqa):2020/09/01(火) 08:25:33 ID:UhHHrgA3M.net
>>343
>>344
Alt+Tabだと、アクティブ化した順に切り替えだから
直前のウィンドウならまだしも、4つ5つ前とかになるともう覚えてられないのよね。
タスクバー上の隣なら、常に見えているのでわかりやすいかなって思って。

>>345
ありがとう!
まだ私の環境では動かないのだけれど(ST_AccessibleObjectFromWindowが失敗してる?)、
説明を見るかぎりやりたいことはたぶんこれ。
もうすこしソース読んで頑張ってみる。

347 :名無しさん@お腹いっぱい。 (ワッチョイ a2be-JMbW):2020/09/01(火) 08:48:31 ID:jyT47uKQ0.net
>>346
自分の環境(Win7 HP SP1 x64)では、動かなかったので省いたけど
ロダに修正版もあるのでそちらも試してみてください

ttp://ux.getuploader.com/autohotkeyl/search?q=SwitchTask.ahk

348 :342 :2020/09/01(火) 19:35:28.85 ID:+mtd3kPjM.net
>>347
まだ挙動がちょっと変だけど、教えてもらった修正版で動くようになったよ。
ありがとう。
ちなみに環境はWin10 Pro 64bit。

エクスプローラーならエクスプローラーだけ、
Google ChromeならGoogle Chromeだけというように、
複数立ち上がっている同一アプリの中でしか切り替わらなかったり、
切り替わる順番も、タスクバー上の隣ってわけじゃなくて今一つ安定しないものの、
やりたいことに少し近づいた気がする!
ソースいじって確認していくしかないか……

349 :名無しさん@お腹いっぱい。 :2020/09/01(火) 20:15:10.08 ID:bAfqoxH70.net
自分はよく使うアプリを利用頻度順にPin留めしておいて、そのうち最初の3つを「Win+1〜3」でダイレクトに切り替えてる(他は素直に「Alt+Tab」で選択)

350 :名無しさん@お腹いっぱい。 (ワッチョイ 5f20-ALHH):2020/09/03(木) 06:41:44 ID:vJfgepHe0.net
入力ボックスの作成でアドバイスお願いいたします

したいこと
入力補助用のメニューをコンボボックス上のキャレット位置に挿入

サンプルコード
ttp://pastebin.com/raw/neGABRrF

351 :350 :2020/09/03(木) 11:00:46.05 ID:vJfgepHe0.net
キャレット位置の監視ならびにクリックすることで一応希望動作になりました
他にアイデアなどありましたら、引き続きお願いいたします

SetTimer, 500ms, 500
500ms:
 X := A_CaretX ? A_CaretX : X
 return

;ComboBox/キャレット位置
GuiControl, Focus, Edit?
MouseClick,, %X%, A_CaretY
Clipboard := "hoge"
Send ^v

352 :名無しさん@お腹いっぱい。 (バットンキン MMdb-dn8G):2020/09/04(金) 13:00:52 ID:pmB3eQ1YM.net
keywaitでキー指定せずどれかのキーが押されるまで待つっていうのはできませんか?

353 :名無しさん@お腹いっぱい。 (ワッチョイW 6758-HdNL):2020/09/04(金) 14:11:22 ID:WYlJxJA+0.net
Input でどうぞ

354 :名無しさん@お腹いっぱい。 (ワッチョイ bf11-th+2):2020/09/05(土) 12:22:11 ID:k1215Yye0.net
修飾キーではない3つのキーの組み合わせ(例えば変換キーと無変換キーとKキーみたいな組み合わせ)を使用したい場合はどのようなコマンドを使えばいいのでしょうか?

355 :名無しさん@お腹いっぱい。 (ワッチョイ 6758-XrX+):2020/09/05(土) 12:34:58 ID:IeDZCFx80.net
>>354
コンビネーションキーとGetKeyStateの併用

356 :名無しさん@お腹いっぱい。 (ワッチョイ bf11-th+2):2020/09/05(土) 14:04:34 ID:k1215Yye0.net
>>355
ありがとうございます

357 :名無しさん@お腹いっぱい。 (ワッチョイ bf11-th+2):2020/09/07(月) 20:42:26 ID:uheywDGu0.net
無変換と左クリックでctrlと左クリックの動作にさせたいのですがどのようなスクリプトを書けばよいのでしょうか。
vk1D & LButton::
send,{CtrlDown}
MouseClick, LEFT
send,{CtrlUp}
Return
こういうスクリプトだとドラッグアンドドロップができないんですよね…

358 :名無しさん@お腹いっぱい。 (ワッチョイ 7fe6-XrX+):2020/09/07(月) 21:02:20 ID:zmAyLEpT0.net
>>357
MouseClickも押し下げと離すを分けて書いて
間にKeyWaitを入れてボタンを離したらクリックとCtrlをUpする

359 :名無しさん@お腹いっぱい。 :2020/09/07(月) 21:09:20.80 ID:4I4OQpb80.net
send, {ctrl down}{Lbutton down}
keywait
send, {ctrl up}{Lbutton up}

360 :名無しさん@お腹いっぱい。 (ワッチョイ 7fe6-XrX+):2020/09/07(月) 21:40:17 ID:zmAyLEpT0.net
>>359
それだと正常に動作しない
keywait はキー指定しないとエラー吐くし
Sendも一つずつ書いて確実にLButton離した後にCtrl離すようにした方が良い
左クリック離したら{Lbutton up}、無変換離したら{ctrl up}をSendする

361 :名無しさん@お腹いっぱい。 (ワッチョイW 6758-HdNL):2020/09/07(月) 23:59:55 ID:4I4OQpb80.net
すまん丸コピペ用ではなくkeywaitの部分は適切に設定してねというつもりだった

362 :名無しさん@お腹いっぱい。 (ワッチョイ 6758-L48E):2020/09/08(火) 10:13:23 ID:aB6Rq+kj0.net
無変換キーにEnterキーを割り当てたくて

vk1D::Send {Enter down}{Enter up} 
vk1D:Enter

とかを試してみたら、無変換キーを押すとEnterキーとして機能するんだけど
なぜか『�@�@�@』というテキストも同時に入力されるようになった

これは記載方法が何か間違ってるの?

363 :362 :2020/09/08(火) 10:39:24.20 ID:aB6Rq+kj0.net
自己解決しました

ATOKのキーカスタマイズと競合していたようです
無変換のキーアクションを全て無効にしたところ、問題なくEnterキーとして機能しました

364 :名無しさん@お腹いっぱい。 (キュッキュ b5b1-psz/):2020/09/09(水) 18:23:49 ID:hL0M52Ax00909.net
PhotoshopのShift + Alt + Lのハードミックスのショートカットを無効化することは可能でしょうか?
Photoshop上だけで入力がバグってshiftからaltを押すだけでレイヤーやブラシがハードミックスになって困っています。
Shift + Altの組み合わせは用途があるので無効化したくありません。
一方、ハードミックスのショートカットは不要なので消し去りたいです。
autohotkeyのスクリプトは書いてみましたが素人なので全く動作せず。。
どうか助けてください。

OSはwin10 home 64
Photoshopは2020ですが19、17でも同じでした。

365 :名無しさん@お腹いっぱい。 (キュッキュ a6c5-pVuC):2020/09/09(水) 18:32:44 ID:M/EV9AG600909.net
書いたコードまず貼りな

366 :名無しさん@お腹いっぱい。 (キュッキュ b5b1-psz/):2020/09/09(水) 18:49:45 ID:hL0M52Ax00909.net
>>365
たぶん何もかもダメだと思い消し去りました

367 :名無しさん@お腹いっぱい。 (キュッキュ a6c5-pVuC):2020/09/09(水) 18:51:44 ID:M/EV9AG600909.net
じゃ一からやり直して書いたもの貼りな
答え丸投げする場所じゃないから

368 :名無しさん@お腹いっぱい。 (キュッキュ 2592-vvkI):2020/09/09(水) 20:15:30 ID:YCK8GMty00909.net
>>364
まずは、タスクトレイのAutoHotkeyのアイコンをダブルクリックして、Ctrl+Kでキー履歴を見る。
ShiftとAltを同時に押した瞬間に L が入力されているかどうかの確認。

369 :名無しさん@お腹いっぱい。 (キュッキュ 8d40-pVuC):2020/09/09(水) 20:33:21 ID:wOD155n800909.net
>>364
そもそもAHK以前の問題でPhotoshopのキーショートカットを無意識に弄っただけじゃねえの
ショートカット無効にしたいならそれもPhotoshop側でやればいいじゃん
使ってないから知らんけどカスタマイズくらいできるんだろ
https://helpx.adobe.com/jp/photoshop/using/customizing-keyboard-shortcuts.html

370 :名無しさん@お腹いっぱい。 (キュッキュ 2592-vvkI):2020/09/09(水) 20:39:13 ID:YCK8GMty00909.net
>>369
Shift+Alt+〇 だけは特別みたいよ

371 :名無しさん@お腹いっぱい。 (キュッキュ b5b1-psz/):2020/09/09(水) 21:43:51 ID:hL0M52Ax00909.net
>>367
申し訳有りません
+!l::return
こんなんしか私の理解では無理でした

>>368
ログの見方がわからず、理解ができませんでしたが、
他のちゃんと動作しているスクリプトと比べると、そもそも動作していないようでした。
サイト上で入力を確認できるものを使ってみたところ、Lは出力されていないようです。
あくまでPhotoshopだけのようです。もしPhotoshop上もLが出力されていないのだったら絶望的だと思うのですが。。

altからshiftを押してもPhotoshop上も問題なく、shiftからalt、または同時押しでショートカットが呼び出されるようです。

>>369
370の仰る通り、設定では変えられないショートカットです。

372 :名無しさん@お腹いっぱい。 (ワッチョイ a958-F4ZW):2020/09/09(水) 22:23:37 ID:JM7IfwIs0.net
CCはもってないからわからんけど
サブスクリプションになる前のPhotoshop CS6では +!l::return で普通にキー殺せたよ

昔MSのMouse without BordersのグローバルホットキーがAHKで殺せなかったことならある
技術知識ない人間の妄想だがホットキー管理のレイヤー層みたいなので優先度が違ってるのかもしれんね

373 :名無しさん@お腹いっぱい。 (ワッチョイ 2592-vvkI):2020/09/09(水) 22:35:40 ID:YCK8GMty0.net
俺の、Photoshop CC 20.0.6 でも
+!l::return
で無効にできたぞ

374 :名無しさん@お腹いっぱい。 (テテンテンテン MM3e-nV8z):2020/09/09(水) 22:44:44 ID:AgH7rqJLM.net
マジですかー

375 :名無しさん@お腹いっぱい。 (ワッチョイ 8d40-pVuC):2020/09/09(水) 23:10:39 ID:wOD155n80.net
>>371
だからAHKでAlt Shift Lを無効にしても意味無いに決まってんじゃん
おま環のPhotoshopの問題なんだから根本的な問題の原因探れよって
これ以上は完全にスレチ

376 :名無しさん@お腹いっぱい。 (ワッチョイ a958-F4ZW):2020/09/09(水) 23:13:34 ID:JM7IfwIs0.net
すまん Shift+Alt+L がフックできないってことじゃなく Shift+Alt が フォトショ上で Shift+Alt+L として認識されるって話なのか
alt → shift の順で押せばOKなん?

したらこんな感じで Shift+Alt の挙動をブロックしたらいいんかね
sleepの時間は適当に調整して
https://pastebin.pl/view/3fadc078

377 :名無しさん@お腹いっぱい。 (ワッチョイ 2592-vvkI):2020/09/09(水) 23:20:18 ID:YCK8GMty0.net
altから先に押す癖を付けろ
今のところ、そんなアドバイスしかできんわ

378 :名無しさん@お腹いっぱい。 (ワッチョイ a958-F4ZW):2020/09/09(水) 23:21:47 ID:JM7IfwIs0.net
ごめん Loop { の行は
While (GetKeyState("Shift","P")) {
に差し替えで

https://pastebin.pl/view/f751a89e

379 :名無しさん@お腹いっぱい。 :2020/09/09(水) 23:26:37.20 ID:YCK8GMty0.net
まぁ、タスクトレイを空っぽにするくらいの勢いで常駐ソフトを終わらせて実験かな

380 :名無しさん@お腹いっぱい。 (ワッチョイ b5b1-psz/):2020/09/09(水) 23:44:57 ID:hL0M52Ax0.net
皆さん検証と意見ありがとうございます。
お騒がせして申し訳有りません。

原因が判明しました。
Photoshop上でaltを押すとメニューバーにフォーカスがいってしまうのを防ぐために入れたスクリプトが原因かと思います。
*~Alt::Send {Blind}{vk07}
コイツを停止したらならなくなりました。
しかしaltのシングル押しは乱用するのでメニューバーにフォーカスがいってしまうのは防ぎたいです。
どうすれば良いでしょうか?

381 :名無しさん@お腹いっぱい。 (ワッチョイ b5b1-psz/):2020/09/09(水) 23:54:18 ID:hL0M52Ax0.net
>>378
本当にありがとうございます。

382 :名無しさん@お腹いっぱい。 (ワッチョイ 8d40-pVuC):2020/09/09(水) 23:58:29 ID:wOD155n80.net
>>380
{vk07}って何?
Alt単押しを無効にしたいなら何も送らなきゃいいじゃん
チルダ付けてる意味あんの?

383 :名無しさん@お腹いっぱい。 (ワッチョイ 2592-vvkI):2020/09/10(木) 00:02:19 ID:2fAi9aLg0.net
>>380
photoshop autohotkey 単独alt無効
とかでググれば

384 :名無しさん@お腹いっぱい。 :2020/09/10(木) 00:32:46.56 ID:Cm6y8Cq00.net
Photoshopがアクティブか否かでキーの割り当て変えたいなら #IfWin[Not]Active とか #If 〜 とか覚えた方が良い

385 :362 (ワッチョイ a958-5yGd):2020/09/10(木) 09:36:00 ID:fNpuGnD40.net
自宅PCでChangeKeyでCapsLockとカタカナ/ひらがなキーをF13・F14にして、AutoHotkeyで機能を割り当てしてて
会社PCでも同様のキー配列にしたいけど、ChangeKeyは管理者権限が必要で会社PCでは導入できないんだよね

管理者権限なしでキー配列を変更するソフトかAutohotkeyのみでCapsLock類を変更する方法ってないかな?

ちなみに以下を試してみた、らCapsLockキーが押しっぱなしな判定をされて上手く機能しなかった

;CapsLockキーにCtrlキーの仕事をさせる
Capslock::Ctrl
sc03a::Ctrl

386 :名無しさん@お腹いっぱい。 :2020/09/10(木) 14:01:22.75 ID:QDyGjbxh0.net
今気づいたけどマスクキーの推奨が、vk07からvkE8/vkFFに変更されてるね

387 :名無しさん@お腹いっぱい。 :2020/09/10(木) 14:45:53.08 ID:QDyGjbxh0.net
>>380
単独押しの無効化は、のどかやTAALTなどの外部アプリを試してみては

388 :名無しさん@お腹いっぱい。 :2020/09/10(木) 15:18:17.84 ID:6lvL52Oq0.net
>>380
単独のみを無効にしたいなら"*"はいらない
wikiのホットキーの修飾シンボルの項を読み直したほうがいい

389 :名無しさん@お腹いっぱい。 :2020/09/10(木) 15:50:58.91 ID:6lvL52Oq0.net
本家wikiに書いてあるけど>>386がレスしているように
windows10 1909からvk07がreservedになっているらしいからついでに変えたほうがいいかも
忘れたころにゲームバーが突然開くようになって面倒な思いをするかもしれない

390 :名無しさん@お腹いっぱい。 :2020/09/10(木) 16:04:05.90 ID:I8YcnkKO0.net
>>386 >>389
無効にしたいなら何もSendしなきゃいいだけじゃないの

391 :名無しさん@お腹いっぱい。 :2020/09/10(木) 16:05:27.96 ID:2KL8uN270.net
皆さんありがとうございます。
>>378のスクリプトを調整すると改善されました。
しかし私の交互に連打するようなキー操作では時折例のバグが出てしまいました。
私でも調整できるようなスクリプトを提供頂き本当にありがとうございます。

vk07は no mappingを意味するらしいです。
vkE8やvkFFに置き換えてみましたが、例のバグは出てしまいました。

altのみを押してPhotoshopの表示と設定を切り替える機能があり、1日何百回も押します。
単独押し無効化をしてもこれは使えるのですが、0.1〜0.5秒程のラグができるので避けていました。
しかしバグよりもマシなので単独押し無効化しラグを容認しようと思います。
外部アプリを試してラグがなかったら、そちらに変更しようと思います。
皆さん本当にありがとうございました。

392 :名無しさん@お腹いっぱい。 :2020/09/10(木) 16:15:14.23 ID:A5yC1cZ60.net
>>385
>18
OSに起因してる問題なので他のアプリでも無理と思う
英語版Windowsならワンチャン

keystate取れなくてリピート発生してるならタイムアウト張れるかなと試してみたが
Caps+A とか他のキーと同時押しした後はリピートも発生しなくなるから無理やった

*sc03a::
SetTimer,caps_timout,600
Send,{CtrlDown}
return

caps_timout:
Send,{CtrlUp}
SetTimer,caps_timout,OFF
return

393 :名無しさん@お腹いっぱい。 :2020/09/10(木) 17:35:40.17 ID:QDyGjbxh0.net
>>390
LAlt::return
RAlt::return ってことかな?
これだと、他のホットキー(Alt+Dなど)も無効になってしまいよろしくないので
~LAlt::Send {Blind}{vkE8}
のようにDownとUpの間に特定のキーを挟むことでAltならメニューモードへの移行を抑止しているわけ
このような動作は、外部アプリも同様のことをしていますよ

394 :名無しさん@お腹いっぱい。 :2020/09/10(木) 17:47:55.95 ID:I8YcnkKO0.net
>>393
Alt::Return
で単独押しはメニューバーにフォーカスしない
複数キー押しは使える

質問者もメニューバーにフォーカスするのを防ぎたいだけだろ?
何か問題あるの?

395 :名無しさん@お腹いっぱい。 (ワッチョイ 36be-bL/7):2020/09/10(木) 18:03:53 ID:QDyGjbxh0.net
> Alt::Return
> で単独押しはメニューバーにフォーカスしない
> 複数キー押しは使える

で、同様の動作をしないのはおま環かな
Win7 HP SP1 x64
1.1.33.02

396 :名無しさん@お腹いっぱい。 (ワッチョイ b681-7JDO):2020/09/10(木) 18:07:01 ID:YkKqN8hX0.net
おま環だろ

397 :名無しさん@お腹いっぱい。 :2020/09/10(木) 18:34:50.10 ID:I8YcnkKO0.net
>>395
Win10 1909
AHK U64 1.1.31.00

てか未だにWin7なんて使ってんのかよ
セキュリティ穴だらけのサポート切れてるOSなんか使うなよ

398 :名無しさん@お腹いっぱい。 :2020/09/10(木) 19:16:40.23 ID:QDyGjbxh0.net
ID:I8YcnkKO0 さんへ

  OS違いのおま環みたいですね。ご無礼しました。<(_ _*)>

399 :名無しさん@お腹いっぱい。 :2020/09/10(木) 19:33:45.48 ID:b3mtVJQc0.net
>>398
OSも関係ない気がするけどな
L R 指定しなけりゃAlt::ReturnでAlt+Tabなどは普通に使える

400 :名無しさん@お腹いっぱい。 :2020/09/10(木) 20:09:47.04 ID:F0qFHywe0.net
確かに右Altだけ元の機能を残そうとか思わなければ、Alt::Returnでいけるね
Photoshopだけのスクリプトにすればこれで良いよね

401 :362 :2020/09/11(金) 22:56:55.34 ID:G1QxvIFs0.net
ATOKで無変換キーを押したときに日本語入力OFF、AutoHotkeyで以下のように記載して
『無変換+2』で F2になるように設定してるんだけど、
『無変換+2』でファイル名を変更使用とすると、必ず日本語入力がOFFになる

多分『無変換+2』を入力する際に、先に無変換キーが押された判定になってると思うんだけど
AutoHotkeyの記載方法を変えて回避する方法ってあれば教えて

vk1D & 2::Send,{Blind}{F2}

402 :名無しさん@お腹いっぱい。 :2020/09/11(金) 23:10:08.16 ID:nVvz5fCg0.net
>>401
IME.ahk使うとか

403 :名無しさん@お腹いっぱい。 :2020/09/11(金) 23:52:35.75 ID:vWH9Lnrv0.net
ahk側の問題じゃないのでATOKの設定を変えない限り無理じゃね
IME OFFごとahkでやってしまうことは可能

・ATOKで無変換の設定を外す
・>160のIME.ahkを入れる
vk1D::IME_SET(0)

404 :名無しさん@お腹いっぱい。 :2020/09/11(金) 23:59:58.98 ID:3NK9sCUm0.net
>>401
>多分『無変換+2』を入力する際に、先に無変換キーが押された判定になってると思うんだけど

まず「多分」とか言う前にちゃんと検証してから書き込めよ
その1行のスクリプトのみを動作させる分には「先に無変換キーが押された判定」なんてならんし
それで「先に無変換キーが押された判定」されてるとしたら他に余計な邪魔してる記述があるんじゃねえの

そもそも「ATOKで無変換キーを押したときに日本語入力OFF」というのはAHKでやってるのか、
それともATOK側のキー設定でやってるのか
もし前者ならそれが邪魔してる可能性大だから後者の方法に変えればいいし
ATOK使ってないけどIMEですら出来るんだからATOKでもキー設定くらい出来るだろ

405 :名無しさん@お腹いっぱい。 :2020/09/12(土) 00:28:29.23 ID:WXHgevBG0.net
>>402,>>403
IME.ahkを調べてみます

>>404
無変換キーを押したときに日本語入力OFFはATOK側のキー設定を利用
vk1D & 2::Send,{Blind}{F2} のみ記載した『テスト.ahk』でも同じ症状になるから、余計な記述が原因ではないはず

406 :名無しさん@お腹いっぱい。 :2020/09/12(土) 00:50:44.32 ID:B6pfhp8P0.net
>>405
じゃあ権限の問題ですり抜けてんじゃね
そのスクリプトを管理者顕現で実行してる?

407 :名無しさん@お腹いっぱい。 :2020/09/12(土) 01:27:21.44 ID:wwfoc5Tq0.net
すり抜けもなにも単体押し動作についてはコード記述してないし
ATOK側で 他キーとの同時押し を考慮せず押したら必ず発火するようになってるだけでしょ
本来モデファイヤキーではないんだからある意味当然の動作

408 :名無しさん@お腹いっぱい。 :2020/09/12(土) 01:39:19.80 ID:B6pfhp8P0.net
>>407
コンビネーションキー書いたら普通は一つ目のキーは乗っ取られるぞ
例えば
Space & 1:: Send,0
としたらチルダを付けない限りSpaceは乗っ取られるから単独押しでSpaceとして使えなくなる
Space::Space
を付け加えるとSpaceも使えるようになる(この場合はSpace単独押しはキー離した時点で送信)
無変換キーにしても普通は同じ
本来乗っ取られるはずのものが乗っ取れてないということはすり抜けてるということ

409 :名無しさん@お腹いっぱい。 :2020/09/12(土) 01:53:55.84 ID:B6pfhp8P0.net
なので管理者権限で実行して正常に無変換キーを乗っ取れれば
vk1D & 2::Send,{Blind}{F2}
vk1D::vk1D
とすることで『無変換+2』を押した時はF2のみ送信して無変換は送信されず
単独押しした場合はキーを離した時点で無変換が送信されて日本語OFFになる

410 :名無しさん@お腹いっぱい。 :2020/09/12(土) 15:29:33.58 ID:Z7QY2LvR0.net
ctrl+tabやctrl+shift+tabにもAltTabと似たようなスクリプトってないんですか?
例えばvscodeはctrl+tabでリストが表示されてタブが巡回されるんですけど普通に Send,^{Tab}ってやるとまともに動かなくなって不便なんですよね…

411 :名無しさん@お腹いっぱい。 :2020/09/12(土) 16:50:21.88 ID:5xppWT9b0.net
>>410
デフォ設定だとそうなんだっけ?
自分の環境だとchrome等と同じ動作だが...

412 :名無しさん@お腹いっぱい。 :2020/09/12(土) 17:06:32.81 ID:I8w0giUO0.net
>>410
一つずつDownとUpとKeyWait組み合わせて書けば同じことは出来るだろ

413 :名無しさん@お腹いっぱい。 :2020/09/12(土) 17:35:39.79 ID:ilxyNZyz0.net
>>410
ttp://kantaro-cgi.com/blog/tool/vscode_tabmovekey_like_chrome.html

414 :名無しさん@お腹いっぱい。 :2020/09/12(土) 17:52:48.91 ID:Z7QY2LvR0.net
>>412
vk1D & f::
send,{CtrlDown}
send,{Blind}{Tab}
Keywait, vk1D
send,{CtrlUp}
Return
僕の力だとこのスクリプトが精一杯で…
でもこれだと思っていたものとは全く違いすぎて詰まってしまいました…
>>413
ありがとうございます。
しかし僕はあくまでもvscodeではリスト表示にし続けたいんです。

415 :名無しさん@お腹いっぱい。 :2020/09/12(土) 18:14:30.04 ID:I8w0giUO0.net
>>414
すまんKeyWaitは連続でTab押したいときダメだったな
vk1D & f::
send,{Ctrl Down}
send,{Blind}{Tab}
Return

~vk1D up::
send,{Ctrl Up}
Return

これなら行けんじゃね?

416 :名無しさん@お腹いっぱい。 :2020/09/12(土) 19:37:06.09 ID:Z7QY2LvR0.net
>>415
ありがとうございました!

417 :名無しさん@お腹いっぱい。 :2020/09/12(土) 20:34:07.29 ID:rBhzcfbaa.net
AHKからスクリーンセーバーを起動したいのですが
Run, "C:\Windows\System32\ssText3d.scr" /s
のように書くと、何故かファイルが存在しないというエラーが出ます
エクスプローラから見るとちゃんとファイルはありますし
コマンドラインから
"C:\Windows\System32\ssText3d.scr" /s
と入力したらちゃんとスクリーンセーバーが起動します
どうすればAHKからスクリーンセーバーを起動できるのでしょうか?

418 :名無しさん@お腹いっぱい。 :2020/09/12(土) 20:46:53.67 ID:6fTrh62k0.net
%comspec% /c

419 :名無しさん@お腹いっぱい。 :2020/09/12(土) 21:00:14.31 ID:4W6E5sSV0.net
>>417
その2行目コピーして実行したらエラーなく起動したけど

420 :名無しさん@お腹いっぱい。 :2020/09/12(土) 21:45:16.45 ID:je+/x62Z0.net
>>417
SendMessage, 0x112, 0xF140, 0,, Program Manager

421 :名無しさん@お腹いっぱい。 :2020/09/12(土) 23:01:39.08 ID:MCt0GW2X0.net
64bit版Windowsで32bit版AutoHotkey使ってない?
だったらSystem32じゃなくてSysnativeにすればいけるはず
Run, "C:\Windows\Sysnative\ssText3d.scr" /s

422 :417 :2020/09/13(日) 13:05:54.81 ID:VsDdvnlFa.net
ご返答ありがとうございます
まさに64bit Windowsで32bitのAHKを使っていることが原因でした
ファイルシステムリダイレクタというメカニズムをはじめて知りました
ありがとうございました

423 :名無しさん@お腹いっぱい。 :2020/09/13(日) 16:29:57.61 ID:HKoAmkYr0.net
wikiをみてて思ったんですけ#UseHookのデメリットってなんですか?
反応が早くなるのならとりあえずオンにしとけばいいんですかね?

424 :名無しさん@お腹いっぱい。 :2020/09/13(日) 19:35:14.15 ID:BYR+nd6M0.net
>>423
全てのホットキーに$をつけたときと同じになる(ソフトウェア的なキーボードイベントを無視する)
これがメリットでありデメリット
個別に細かい調整がしたいなら#UseHookは書かない

メリット: $書く手間が省ける
デメリット: 個別に$なしのホットキーにできない

425 :名無しさん@お腹いっぱい。 :2020/09/13(日) 20:25:54.96 ID:2su4JZVF0.net
#UseHookはON/OFF出来るし複数の箇所に記述することも可能
だからフックするエリアをON-OFFで囲うことでフックしないエリアと別にできる
スクリプトが長くなるとフックしてるエリアか否か分かりにくくなるかもしれない → デメリットかな?

426 :名無しさん@お腹いっぱい。 :2020/09/13(日) 20:42:26.32 ID:3sOtZfCH0.net
>>423
俺もよく分かってないけどとりあえず#UseHook ONにして使ってるよ

427 :名無しさん@お腹いっぱい。 :2020/09/14(月) 09:19:01.24 ID:pZOOkKBQ0.net
今のところ、ONで困ることがないからONにしてる

428 :名無しさん@お腹いっぱい。 :2020/09/16(水) 05:19:25.53 ID:uM6IGn9Q0.net
sysgetで現在のモニターリフレッシュレートを取得したいのですが、どうにもうまくいきません。
どなたか助けて下さい。

429 :名無しさん@お腹いっぱい。 :2020/09/16(水) 10:26:38.51 ID:6p38klUn0.net
左Alt + Ctrl で ShiftAltTab 機能するようにしているのですが
その後にAltキーを離したら、アクティブになったウィンドウに
マウスカーソルを飛ばしたいのですが、下記では上手くいきません。
どのようにしたらよいでしょうか教えて下さい、、

LAlt & Ctrl::ShiftAltTab
KeyWait, Alt
Sleep, 200
WinGetActiveStats, Title, Width, Height, X, Y
MouseMove, Width / 2, Height / 2
return

430 :名無しさん@お腹いっぱい。 :2020/09/16(水) 12:04:50.41 ID:ZEJxUAhI0.net
>>428
sysgetにはそんな機能元から無いんじゃね

>>429
ホットキーを一行で表記したコマンドは二行目以降は実行されない(一行で完結してる)
ShiftAltTabは一行表記専用コマンドなので他の動作を追加したいなら>>415を参考に一つずつバラして書きな

431 :名無しさん@お腹いっぱい。 :2020/09/16(水) 16:18:52.64 ID:uLS/Sq6S0.net
英字キーボードでワンキーでディスプレイ切るとしたら、どのキーに割り当てますか?
Pause?Ins?
Functionキーはなんかで使うかもしれないから避けたいです

432 :名無しさん@お腹いっぱい。 :2020/09/16(水) 18:16:32.55 ID:uM6IGn9Q0.net
リフレッシュレートの取得ですが、海外本スレでみつけました。
おさわがせ。
VarSetCapacity(DM,156,0), NumPut(156,&DM,36, "UShort")
DllCall( "EnumDisplaySettings", UInt,0, UInt,-1, UInt,&DM )
msbox, % NumGet(DM,120)

433 :名無しさん@お腹いっぱい。 :2020/09/16(水) 19:08:18.37 ID:dPBJtla40.net
>>429
ウィンドウ切替時のイベントをフックすればいい
ttp://sites.google.com/site/agkh6mze/howto/winevent

434 :名無しさん@お腹いっぱい。 :2020/09/17(木) 11:55:02.84 ID:PwvllNHp0.net
windowsアップデートで以下の記述が機能しなくなってしまいました。
どうすれば機能する様になりますかね…。

;Apple_keyboard_wired
#USEHOOK
sc071 Up::Send,{vkF4}
sc072 Up::Send,{vk1D}
#USEHOOK off

435 :名無しさん@お腹いっぱい。 :2020/09/17(木) 15:54:57.20 ID:4vwGVhL7a.net
#Includeが関数の中だとエラーだといわれて使えなくなるんですけど使えるようにする方法ってないですか?



動く
#Include %A_ScriptDir%\hoge.ahk


動かない
aaaaa()
aaaaa()
{
#Include %A_ScriptDir%\hoge.ahk
}

436 :名無しさん@お腹いっぱい。 :2020/09/17(木) 16:26:15.37 ID:tO5z1xrf0.net
>>435
関数内でも使えなくならない
エラーになるのは別の理由

エラーの内容くらいちゃんと読みなさい

437 :名無しさん@お腹いっぱい。 :2020/09/17(木) 17:05:24.36 ID:4vwGVhL7a.net
エラーでググってもわかりませんでした・・・
line text: findtext_Gui(cmd,arg1:="")
error.funcitons cannot contain functions.

細かく書くと
”hoge.ahk”は”FindText.ahk”というImagesearchの便利版みたいなので作るファイルですが、(”hoge.ahk”で”FindText.ahk”を呼び出して動作するようです)
原因も対処法もさっぱりです・・・

438 :名無しさん@お腹いっぱい。 :2020/09/17(木) 18:54:36.60 ID:tVqWQN2B0.net
>>437
関数の中に関数を含むことはできません
https://www.google.co.jp/search?q=AHK%20cannot%20contain%20functions%2E

439 :名無しさん@お腹いっぱい。 :2020/09/17(木) 19:12:30.56 ID:4vwGVhL7a.net
>>438
そうでしたか・・・
FindText.ahkはボタンを押すのに便利だと思ったけど別の方法を考えてみますありがとうございました

440 :名無しさん@お腹いっぱい。 :2020/09/17(木) 19:16:46.85 ID:in4j28AM0.net
>>437
少なくとも再現できる最少のコード貼ってもらえないとこっちも"さっぱり"なんだが…

>line text: findtext_Gui(cmd,arg1:="")
関数の引数に「arg1:=""」のような「:=」は書けなかったような → 「arg1=""」と修正したらどうか?
動かなかったらスマンね

441 :名無しさん@お腹いっぱい。 :2020/09/17(木) 19:18:37.25 ID:in4j28AM0.net
>>440
何かオレ頓珍漢なこと言ってたみたいね、恥ずかし(´・ω・`)

442 :名無しさん@お腹いっぱい。 :2020/09/17(木) 19:49:31.71 ID:EXtdT3ICM.net
多分FindText.ahkで関数使ってるのにそれごと#Includeした上で関数で包もうとしてるんでしょ

hoge.ahkの#includeを外して

#Include FindText.ahk
aaaaa()
aaaaa()
{
#Include %A_ScriptDir%\hoge.ahk
}
でいけんじゃね

まあ自分ならaaaaa()はhoge.ahk側で関数化するけど

443 :名無しさん@お腹いっぱい。 :2020/09/17(木) 20:17:00.79 ID:yCKYDmYd0.net
ID:4vwGVhL7a
FindText.ahkの使い方が間違っている気がするけど...

>>440
引数のデフォ値のコロンなしは今は推奨されてないよ
> The use of = (without a colon) is permitted for backward-compatibility, but not recommended, and will not be permitted by AutoHotkey v2.
> Regardless of which operator is used, default values which are strings must always be enclosed in quote marks.

444 :名無しさん@お腹いっぱい。 :2020/09/17(木) 21:34:25.52 ID:in4j28AM0.net
>>443
どうも
そうだったのか…自分は1.1.33.02使用中だがあらためて付属の英語版ヘルプ読んでみたらそういう表記になっていた
でも中途半端だよな、スクリプトへの引数の数や内容を変数に代入する時は「=」と「:=」表記で内容変わってくるし
個人的には全て「:=」表記に統一して欲しいよ、ややこしくて仕方ない(あと「%」表記も)

445 :名無しさん@お腹いっぱい。 :2020/09/17(木) 23:26:30.53 ID:NLqmKNHf0.net
01234567890abcdefghi・・・って文字列があったとして
n番目の位置の文字を抽出するってどうやるんですか?

446 :名無しさん@お腹いっぱい。 :2020/09/17(木) 23:32:33.20 ID:tO5z1xrf0.net
http://ahkwiki.net/Commands_Category#str

447 :名無しさん@お腹いっぱい。 :2020/09/17(木) 23:33:31.85 ID:lrp/kY8K0.net
>>445
autohotkey 文字列 n番目
でググると3つ目に出てきた、SubStr()を使うと良いのでは?

448 :名無しさん@お腹いっぱい。 :2020/09/17(木) 23:45:39.08 ID:vGzWcsVz0.net
正規表現でしょうね

449 :名無しさん@お腹いっぱい。 :2020/09/18(金) 03:11:07.54 ID:N7Izm2Ama.net
>>442

hoge.ahkの#includeを外して

#Include FindText.ahk をあらかじめ書いておくことで動作しました

ありがとうございました

450 :名無しさん@お腹いっぱい。 :2020/09/18(金) 14:36:49.81 ID:tdDbvR3p0.net
>>430
>>430
アドバイスありがとうございました!
全部バラしてやってみようと思います。

451 :名無しさん@お腹いっぱい。 :2020/09/19(土) 01:22:57.56 ID:LPvHgbsEr.net
無理だとは思うのですが、エクスプローラにて、
「今現在自分がいる場所のフォルダ名をペーストする」という機能はさすがに作れないですよね…
動画制作の際、フォルダ名を付け、その中にプロジェクトファイルの雛形をコピペするのですが、その際にプロジェクトファイルにもフォルダ名と同じ名前を付けなければいけません。
今現在のフォルダ名、というか一つ上の階層名をコピーというものがあれば実現は出来そうなのですが…さすがに厳しいでしょうか?
宜しくお願い致します。

452 :名無しさん@お腹いっぱい。 :2020/09/19(土) 02:05:40.95 ID:ijfcb9lz0.net
タイトルバーにフルパス表示する設定にしてwingettitleするか
アドレスバーからパスを取得
substrなりregexなりStrSplitなりで最右の \ から右側の文字列を取り出す

453 :名無しさん@お腹いっぱい。 :2020/09/19(土) 02:25:43.69 ID:jl8WgP3W0.net
むしろタイトルバーにフルパス表示しない設定にしといてウィンドウタイトル取得すれば今いるフォルダ名を取得できる

454 :名無しさん@お腹いっぱい。 :2020/09/19(土) 04:45:30.29 ID:u6F+ZqQE0.net
>>451
Explorer関連はShellオブジェクトを使うと大体解決する

選択されたファイル/フォルダまたはカレントフォルダのパスを取得
https://www.autohotkey.com/boards/viewtopic.php?style=17&t=60403

455 :名無しさん@お腹いっぱい。 :2020/09/19(土) 15:12:47.55 ID:nTmhGbnM0.net
>>452->>454
ありがとうございます
フォルダタイトルを取得してコピペという動作にすればいいのは分かったのですが、その書き方がどれだけ調べても分かりません

;エクスプローラのタイトル取得してコピー
;Alt+Shift+Cでタイトルをコピー
#IfWinActive,ahk_class CabinetWClass ;エクスプローラのクラスがある時
!+c::
WinGetTitle,title,

これ以降のフォルダタイトルを取得、クリップボードにコピー、ペーストの一連の書き方が分からず手詰まってします。
どなたか分かる方いらっしゃいますでしょうか。お願いします。

456 :名無しさん@お腹いっぱい。 :2020/09/19(土) 15:17:29.28 ID:Fn8EPBHg0.net
>>451
1) ファイル作成
  今現在自分がいる場所のフォルダ名をペーストする.ahk → %ProgramFiles%\AutoHotkey\Scripts
2) レジストリ登録
3) 実行
  ファイル選択 右クリック→リネーム→

■今現在自分がいる場所のフォルダ名をペーストする.ahk
SplitPath, 1, FileName, FolderPath
SplitPath, FolderPath, FolderName
;追加
nName := RegExMatch(FileName, "^" FolderName) ? FileName : FolderName "_" FileName
;リネーム
IfNotEqual, FileName, %nName%, FileMove, %1%, %FolderPath%\%nName%

■レジストリ登録
MsgBox, 262452, AutoHotkey, レジストリに値を書き込みますか?
IfMsgBox, No, ExitApp
RegWrite, REG_SZ, HKCR\*\Shell\リネーム, MUIVerb, リネーム
RegWrite, REG_SZ, HKCR\*\Shell\リネーム, SubCommands
RegWrite, REG_SZ, HKCR\*\Shell\リネーム\Shell\1,, 今現在自分がいる場所のフォルダ名をペーストする
RegWrite, REG_EXPAND_SZ, HKCR\*\Shell\リネーム\Shell\1\Command,, "`%ProgramFiles`%\AutoHotkey\AutoHotkey.exe" "`%ProgramFiles`%\AutoHotkey\Scripts\今現在自分がいる場所のフォルダ名をペーストする.ahk" "`%1"

457 :名無しさん@お腹いっぱい。 :2020/09/19(土) 22:28:05.81 ID:nTmhGbnM0.net
>>456
ありがとうございます。
ただ本当に分からなくて申し訳ないのですが、このレジストリ登録の記述は、vbsでは無いのでしょうか?
.vbsで記述して実行してもエラーが出るので…。申し訳有りませんがご教授いただけるとありがたいです。

458 :名無しさん@お腹いっぱい。 :2020/09/19(土) 22:48:36.12 ID:jl8WgP3W0.net
>>455
エクスプローラーの設定でフルパスを表示しない(今いるフォルダ名をウィンドウタイトルにする)
WinGetActiveTitleでウィンドウタイトル=今いるフォルダ名を取得して
Clipboard = %title%
にしてファイル名にペースト

459 :名無しさん@お腹いっぱい。 :2020/09/19(土) 23:12:30.24 ID:Fn8EPBHg0.net
>>457
AutoHotkey Script(.ahk) です

参考程度に今日の成果物おいときます
ttp://pastebin.com/raw/sNywf1Aj

460 :名無しさん@お腹いっぱい。 :2020/09/21(月) 07:25:31.36 ID:r/YWuZyE0.net
AHKスクリプトの呼び出し用にUSBテンキー買おうかと思ってるんだけど
キーボード側のテンキーと区別して
XNUM1~XNUM9みたいに特別なキーとして振る舞ったり出来るやつないかな

461 :名無しさん@お腹いっぱい。 :2020/09/21(月) 09:59:07.93 ID:YT0rcHXY0.net
>>460
一番簡単なのはプログラマブルテンキーやOrbweaverなど買ってF13〜F24や直接スクリプト実行を割り当て

普通のテンキーで何とかしたいならAHKHID.ahkでデバイス判別

462 :名無しさん@お腹いっぱい。 :2020/09/21(月) 10:53:21.35 ID:D1yU57jf0.net
AHKHID.ahkはデバイス一覧取得して判別&選択用の設定部UI作ったら
汎用で使いやすくなりそうなんだけど
そこ作るのが一番面倒くさそうで放置してるわ

463 :名無しさん@お腹いっぱい。 :2020/09/21(月) 12:54:50.83 ID:8BA0BlpWM.net
すり抜けが多発するようになったのでkeyhacに乗り換えます。

464 :名無しさん@お腹いっぱい。 :2020/09/24(木) 17:17:31.43 ID:X28ILbsz0.net
右下ら辺にウィンドウとか出さずただ文字だけを表示する様なGUI操作をしたいのですがどうすればいいのでしょうか?

465 :名無しさん@お腹いっぱい。 :2020/09/24(木) 18:21:19.01 ID:1NTOBJJR0.net
ahk osd とかでググるとサンプル出てくると思うが
タイトルバーや枠のないGUI作って背景を透明化

466 :名無しさん@お腹いっぱい。 :2020/09/24(木) 19:04:51.33 ID:VpwFtp1l0.net
同じ動作を2パターンのショートカットキーに割り当てる方法は、2回同じ記述をするしかないのでしょうか?

467 :名無しさん@お腹いっぱい。 :2020/09/24(木) 19:11:29.35 ID:aPeNe1Ff0.net
>>466
同じ動作ならまとめて書くことは出来る

F1::
F2::
Msgbox, F1またはF2が押されました
Return

468 :名無しさん@お腹いっぱい。 :2020/09/25(金) 19:40:29.19 ID:R2uxAA1p0.net
管理者権限で起動したAutoHotkeyのEdit This Scriptは管理者権限でメモ帳が開かれてしまうのですが何か管理者権限として実行しない対策はないんですかね?

469 :名無しさん@お腹いっぱい。 :2020/09/25(金) 21:02:28.92 ID:+wDzDU+n0.net
Menu, Tray, add, Edit_hogehoge
Return

Edit_hogehoge:
RunAs, (ユーザー名), (パスワード)
Run, notepad.exe %A_ScriptFullPath%
RunAs
Return

メニューに別途エディットコマンド追加してRunAs
メニューの名前はお好きなように

470 :名無しさん@お腹いっぱい。 :2020/09/25(金) 22:07:12.14 ID:UGj2yKOjM.net
>>469
やっぱり直接的な対策はないのですね…
ともあれありがとうございました。

471 :名無しさん@お腹いっぱい。 :2020/09/26(土) 00:11:33.28 ID:QPxTUZHr0.net
>>470
余談だがメニューにエディットコマンド追加はDefaultにしておけばトレイアイコンダブルクリックでエディタ起動も出来て便利

472 :名無しさん@お腹いっぱい。 :2020/09/26(土) 00:15:07.32 ID:QPxTUZHr0.net
>>470
あと直接的な対策って意味がよく分からんのだが
そもそもエディタが管理者起動されて困る理由は?
起動時に確認メッセージ出てきて煩わしいってならUACの設定を低くしとけばいいだけだし
むしろ俺はエディタは敢えて常に管理者権限起動してるわ

473 :名無しさん@お腹いっぱい。 :2020/09/26(土) 11:16:13.41 ID:+l/xFA1QM.net
変換キーとタッチパッドのタップでマウスホイールボタンのタップにしたかったのですが、この記述だと変換を押しながらタッチパッドで移動したあとはMButtonが動作しません。何か対策はありますか?
変換キーはf14を割り当てています。
f14 & LButton::Send, {Blind}{MButton}

474 :名無しさん@お腹いっぱい。 :2020/09/26(土) 14:47:35.77 ID:QPxTUZHr0.net
>>473
問題無く動くぞ

475 :名無しさん@お腹いっぱい。 :2020/09/26(土) 18:47:48.56 ID:gI0ar3qsM.net
>>474
ありがとうございます。このコメントを見て前に使っていたパソコンで試したら普通に動作しました
新パソコン HP SPECTRE x360 13
旧パソコン NEC 法人向けパソコン (core i5 の第8世代)
両方ともwindows10でアップデートはしています
全く同じスクリプトでosも同じでも動作が変わることがあるんですね

476 :名無しさん@お腹いっぱい。 :2020/09/26(土) 19:35:37.54 ID:QPxTUZHr0.net
>>475
動作が変わるのは必ず理由がある
そういうのをおま環と言うわけで

477 :名無しさん@お腹いっぱい。 :2020/09/26(土) 19:58:05.39 ID:2y66JUT00.net
おま環て言葉は全てを飲み込んでて便利だけど
役には立たないな

478 :名無しさん@お腹いっぱい。 :2020/09/26(土) 20:02:44.95 ID:9mJySQ+70.net
>>477
おま環かおま環じゃないかの切り分けは大事だろ
トラブルシューティングにおける基本中の基本
現に>>473はその切り分けすら出来ずに質問してたわけだしな

479 :名無しさん@お腹いっぱい。 :2020/09/26(土) 20:55:15.81 ID:b8mjfegu0.net
まずは、新パソコンと旧パソコンに常駐しているソフトが全く同じなのかどうか

480 :名無しさん@お腹いっぱい。 :2020/09/26(土) 21:29:01.67 ID:f4zsWHI60.net
すいません、お騒がせしてますね。
解決はできなかったですが、スクリプトじゃなくその他が原因だとわかったのはとてもありがたいです。
2台のパソコンは常駐ソフトは似てますが全部は同じではありません。

481 :名無しさん@お腹いっぱい。 :2020/09/27(日) 14:41:21.39 ID:StjMx0SL0.net
タスクビューが1万倍使いやすくなった

#IfWinActive,
!Tab:: ; Alt+Tabでタスクビューを表示
Send,#{Tab}
return

;; タスクビュー
#IfWinActive, タスク ビュー ahk_exe explorer.exe
+!Q::EditMe(A_LineFile, A_LineNumber)

w::up
a::left
d::right
s::down
q::#^left
e::#^right

482 :名無しさん@お腹いっぱい。 :2020/09/27(日) 14:49:53.29 ID:StjMx0SL0.net
f::LWin
目当てのアプリがないならfから起動できるとなおいいな

483 :名無しさん@お腹いっぱい。 :2020/09/27(日) 15:21:40.68 ID:7rVPZP7w0.net
Autohotkeyのアイコンを右クリックしてopenした時と同じ様な動作をするスクリプトはどうやればいいのですか?

484 :名無しさん@お腹いっぱい。 :2020/09/27(日) 16:28:31.83 ID:ZLd5kCP80.net
>>483
専用のコマンドは無いんじゃないかな
キーボード操作をマクロ化するなら>>221
頭文字「A」の常駐アプリがトレイに複数ある場合はAを複数回押せばいい

485 :名無しさん@お腹いっぱい。 :2020/09/27(日) 16:45:19.32 ID:ZLd5kCP80.net
今夜はRIZINか
天心がバカンサイ人皇治をボコるの楽しみだな

486 :名無しさん@お腹いっぱい。 :2020/09/27(日) 16:45:39.69 ID:ZLd5kCP80.net
すまん誤爆った

487 :名無しさん@お腹いっぱい。 :2020/09/27(日) 17:17:45.48 ID:YgR/T/tm0.net
>>483
ListLinesのこと?

488 :名無しさん@お腹いっぱい。 :2020/09/27(日) 17:26:55.85 ID:mzMuBKWz0.net
>>483
ListLines

Viewメニュー内のその他の項目も

ListVars
KeyHistory
ListHotkeys

でそれぞれ直接指定可能

489 :名無しさん@お腹いっぱい。 :2020/09/27(日) 19:15:57.97 ID:4+4A5UVO0.net
>>483
DetectHiddenWindows
SetTitleMatchMode
PostMessage

490 :名無しさん@お腹いっぱい。 :2020/10/02(金) 15:18:29.95 ID:GM4xvjP40.net
トラックパッドの4本指の左右ジェスチャの仮想デスクトップの切り替えの
にゅるっとした動作の量を測って、何回振ったら何の動作するってやりたいんだけど
仮想デスクトップの切り替え中のアニメーション遷移してるパラメってどこ見ればいいんでしょ

491 :名無しさん@お腹いっぱい。 :2020/10/02(金) 16:33:04.78 ID:voPv3vuf0.net
トラックパッドの特殊ジェスチャーはAHKであれこれするの無理じゃね
2本指スクロール程度ならキーヒストリーでも検出できてるけど
3本指左右(タスク切り替え)とか4本指左右は何も検出されないし

492 :名無しさん@お腹いっぱい。 :2020/10/12(月) 15:31:13.11 ID:DEG2vDeD0.net
ctrl alt deleteって割り当てるの不可能?
プログラムキーボードでも割当不可だからやっぱり無理なのかね

493 :名無しさん@お腹いっぱい。 :2020/10/12(月) 16:00:57.42 ID:VphcfQuD0.net
Send, ^!{Del} は反応しないね
でも使うのってタスクマネージャーくらいじゃね?
Run, taskmgr.exe
で起動できるからctrl+alt+delete割りあてる必要も無いんだが

494 :名無しさん@お腹いっぱい。 :2020/10/13(火) 21:15:38.19 ID:WIV8aGwm0.net
IMEがオンの時だけ、
「x」キーと「ー」を入れ替えたい

;;☆Google Chrome
;;☆Microsoft Edge
LAlt & w::Send,^w

495 :名無しさん@お腹いっぱい。 :2020/10/13(火) 22:07:35.42 ID:5Y5Xe4mA0.net
>>494
>IMEがオンの時だけ、「x」キーと「ー」を入れ替えたい
IME.ahk使えば実現できるんじゃないかな

下3行の意味が分からない

496 :名無しさん@お腹いっぱい。 :2020/10/14(水) 08:41:21.44 ID:WcY97C4k0.net
>>494
全角のエックスを打てなくなりそうだけど良いの?

497 :名無しさん@お腹いっぱい。 :2020/10/16(金) 02:29:08.51 ID:kB4NCdNb0.net
キーボードが手元にない時にマウスだけでホットキーが出来ないか試行錯誤してます
やりたいことは下記です

「Lボタンを押しながらマウスホイールを下に回転させた場合に発動」

LButtonWheelDown::
LButton,WheelDown::
{LButton}{WheelDown}::

いずれの方法でもホットキーが実行されませんでした

どなたかアドバイスいただけますでしょうか

またマウスでのホットキー実行についてこの方法の方が便利だなどありましたら
そちらも教えていただきたいです

498 :名無しさん@お腹いっぱい。 :2020/10/16(金) 02:39:14.20 ID:jICo6JW00.net
>>497
Wikiをきちんと読もう

499 :名無しさん@お腹いっぱい。 :2020/10/16(金) 03:30:31.16 ID:kB4NCdNb0.net
>>498
とりあえずホットキー関係とマウス関係のページは読みましたが参考になる記述は見つかりませんでした…

500 :名無しさん@お腹いっぱい。 :2020/10/16(金) 03:34:12.13 ID:UZRXYnGU0.net
>>499
ホットキーの中に必ず書いてある
ちゃんと一行ずつ理解しながら読め

501 :名無しさん@お腹いっぱい。 :2020/10/16(金) 05:30:11.79 ID:kB4NCdNb0.net
みつかりました
&でつなぐんですね…なるほど


ホットキーの出し方はわかったものの機能の実現は出来なかったので続けて聞かせてください


・やりたいこと
デュアルモニター使用時に、マウスを使ってアクティブなウィンドウをモニター間を移動させる
(デュアルモニターだけど横に並べずにお互いに見えない位置に置いている、リビング用とキッチン用モニター)

アクティブなウィンドウをモニター間移動するショートカットはシフト+Win+→キーなのでこれを使う


・書いたコード
マウスを右クリしながら左クリックで発動(発動の仕方は何でもよい)

~RButton & LButton::
Send +#{Left}
Return


・結果
アクティブなウィンドウが目の前のモニターにある時は、他のモニターにウィンドウを移動出来た
しかし、見えない他のモニター上のウィンドウを目の前のモニターに移動させることが出来なかった

タスクバー上で目的のウィンドウをクリックしていったんアクティブにしても
ホットキーを使ったとたん、マウスカーソルの位置がクリック状態になるのが原因



ここまでで力つきました、どなたかアドバイスなどお願いします

502 :名無しさん@お腹いっぱい。 :2020/10/16(金) 05:39:16.59 ID:QFUkX31o0.net
マウス操作がメインならMouseGestureLを使いなさいと
ahkのスクリプト知識がなくても大概のことができる

503 :名無しさん@お腹いっぱい。 :2020/10/16(金) 09:16:33.87 ID:QGtun8kL0.net
マウスクリックした段階でクリック位置にフォーカス切替わるのがOS仕様なので
>502の言うようにマウスジェスチャソフト使うか
~外してXbutton12などのドラッグに影響のないボタンに割り当てる方がスマートだと思うけど
どうしても右クリトリガでやりたいなら実行前に Send !{Tab} 入れて失ったフォーカスを戻してやったらいいんじゃね
時間調整は適当にsleep入れる

けど根本的な問題としてディスプレイ設定ををミラー(複製)で使うのではあかんのか?

504 :名無しさん@お腹いっぱい。 :2020/10/16(金) 10:20:29.34 ID:kB4NCdNb0.net
>>502
>>503
マウスジェスチャーをAHKで書くの面倒だなと思ってたんですが
書いて配布してる人がいたんですね、便利、後で試してみます

たしかにデュアルで使う意味あるのかと思われるでしょうが、
HDMI切り替えで更にもうひとつのモニターを拡張?で使う機会があるので、
マウス操作で切り替えが便利なのでした

ありがとうございます

505 :名無しさん@お腹いっぱい。 :2020/10/18(日) 00:02:18.85 ID:Cg8HaPH50.net
以下のスクリプトについて、改善案を頂きたいです。
https://pastebin.pl/view/0c9f86a2
※PasteBinからコピペして動かしてみてください。

このスクリプトでは、例えば次のように、キーボードをスクリプト実行用の盤面にシフトして運用することができます。
「変換+Aの後R押下::AutoHotkeyをリロード」
「変換+E→C::1行コピー」
「変換+E→D::全消去」

問題点は、
@上記スクリプトにて☆をコメントした部分について、スクリプト登録の際に複数回同じ文言を入力する必要がある。
Atoggle_aが有効な状態でtoggle_eも有効にしてしまうことが可能。
です。

この解決のためにヒントを頂きたく思い、書き込みました。

便利ではあると思いますので、ぜひ使っていただきたいという思いと共に、改善を施せればと思っております。

506 :名無しさん@お腹いっぱい。 :2020/10/18(日) 00:32:43.14 ID:8B492qWs0.net
function内にstaticでフラグ持っときゃいいんでない?
2ストロークキーについては車輪の再開発な気がしなくもないが

507 :名無しさん@お腹いっぱい。 :2020/10/18(日) 08:49:56.58 ID:IpkYdAIV0.net
>>505
俺が自前で2ストロークキーを実装した時は、
Input,key,L1 T10.0,{Space}
で次の1キーが押されるのを待って
if(key=="c") とか if(key=="d") で分岐してたなぁ。

508 :名無しさん@お腹いっぱい。 :2020/10/18(日) 09:08:07.38 ID:LZFs63+60.net
>>507
{
if key = c
ほにゃ
ふが
}else{
じゃあかんの?昔の.ahkにそんな書き方してあるけど

マルチストロークもあった気がするけどどこだろう……

509 :名無しさん@お腹いっぱい。 :2020/10/18(日) 11:56:02.54 ID:tErQ0Iyy0.net
>>505
自分ならこういじるかな
ttp://pastebin.pl/view/raw/c743ddba

510 :509 :2020/10/18(日) 14:38:25.01 ID:tErQ0Iyy0.net
>>509は、なんかいろいろとおかしいのでスルーしてください。<(_ _*)>

511 :名無しさん@お腹いっぱい。 :2020/10/21(水) 17:33:42.16 ID:p/8W4acR0.net
3を押したらF3を出力して、
その後5000msの間、3を押してもF3を出力させない
というスクリプトをつくりたいんだけど
Blockinputで特定のキーの入力だけブロックすることができないから困ってます。
なにかほかに手はないでしょうか

512 :名無しさん@お腹いっぱい。 :2020/10/21(水) 18:05:58.87 ID:gKsHzB9x0.net
send前にif分岐してA_TimeSincePriorHotkeyが5000ms未満だったら弾けばいい

513 :名無しさん@お腹いっぱい。 :2020/10/21(水) 19:18:17.24 ID:p/8W4acR0.net
なるほどそんな手が!ありがとう

514 :名無しさん@お腹いっぱい。 :2020/10/22(木) 00:36:46.32 ID:+oFWEyP36.net
>>505です

皆さんありがとうございます。
時間が取れなくなったため、お礼だけ言いに来ました。

頂いた情報をもとに、近いうちに改めて検討してみます。

515 :名無しさん@お腹いっぱい。 :2020/10/22(木) 11:29:24.22 ID:uHQQeSKa0.net
ええで

516 :名無しさん@お腹いっぱい。 :2020/10/22(木) 17:31:33.33 ID:k3pJj+AJ0.net
設定に苦慮しており、助けていただけると嬉しいです。

やりたいこと:テンキーのEnter(NumpadEnter)を押している間、Ctrl+Shiftに置き換えし、
テンキーのEnter(NumpadEnter)を二回押し、2回目を押している間、Ctrlに置き換え。

*NumpadEnter::
Keywait, NumpadEnter,
Keywait, NumpadEnter, D T0.15

で色々試していますが、二度押し&押しっぱなしにしか対応できず困っています……。
よろしくお願いします。

517 :名無しさん@お腹いっぱい。 :2020/10/23(金) 19:49:38.35 ID:6sZqIp1O0.net
iTunesの再生停止、曲送りを割り当てることって出来ないですかね
Media_Play_Pauseを使っても動かなくて困っています
powermateのような外部デバイスでの再生停止は動くのですが…。

518 :名無しさん@お腹いっぱい。 :2020/10/23(金) 22:24:48.75 ID:xLBME1pE0.net
>>517
諦めたんじゃなかったのかw

COMオブジェクト操作したり
https://note.com/takanaction/n/n608bd1c598b9
ショートカットキーを送ったりすれば良いんじゃない?
https://www.autohotkey.com/boards/viewtopic.php?t=62090

メジャーなソフト用のスクリプトはいろんな人が作ってるから、「autohotkey itunes」みたいにググって参考にすると良いかも

519 :名無しさん@お腹いっぱい。 :2020/10/23(金) 23:06:56.54 ID:0x9R3Tzg0.net
>>517
>>336-340辺りのやつか?
まずはメディアキー自体が正常に機能しないお前のPC環境の問題を解決しろって
iTunesに限らずメディアキー自体が効いてないってことはahkの問題じゃないんだから

520 :名無しさん@お腹いっぱい。 :2020/10/24(土) 02:19:29.00 ID:T5kTB8Vu0.net
>>519
iTunesにメディアキーを送るソフトを使用した所
https://i.imgur.com/0vvO32H.png
このようにFailed to set hotkeyのエラーが出ました。
メディアキーの機能が死んでいるのは明白なのですが、メディアキーを復活させる方法が一向に分かりません。

かなり調べたのですが出てきたこちらの記事を
https://www.reviversoft.com/ja/blog/2014/06/what-to-do-when-your-media-keys-no-longer-work-on-your-keyboard/
試したのですがやはり駄目でした。(Human Interface Device Accessはそもそも動いていた)

windows10のメディアキーが効かない場合に動くようにする方法は無いでしょうか…。
本当に情報がありません。

521 :名無しさん@お腹いっぱい。 :2020/10/24(土) 02:27:13.11 ID:S/98U1OW0.net
>>520
ス レ チ

522 :名無しさん@お腹いっぱい。 :2020/10/24(土) 03:24:06.87 ID:T5kTB8Vu0.net
>>521
そうですよね windowsスレやソフトスレで聞いても誰も分からなかったのでつい質問してしまいました
すいません

523 :名無しさん@お腹いっぱい。 :2020/10/24(土) 03:28:27.47 ID:+MpvyafJ0.net
当たり前だろ
誰もお前のPC環境全く知らないし
触ってみなきゃ分かる訳ねえんだから

524 :名無しさん@お腹いっぱい。 :2020/10/24(土) 05:43:40.33 ID:DDIUlkSX0.net
>>517
powermateのドライバとかが競合してんじゃないの?

525 :名無しさん@お腹いっぱい。 :2020/10/25(日) 12:47:57.82 ID:aQtH8BBo0.net
ユーザー切り替えした時切り替え前のアカウントで動作させ続けるのは可能?
loopカウントを数えるだけのスクリプトは裏で動いてたけどメモ帳に文字を送り続けるようなやつは切り替えの時点で途切れてる
UWSCでも同じ感じで駄目だったし元のアカウントでのウィンドウのアクティブ化はやっぱり無理かな

526 :名無しさん@お腹いっぱい。 :2020/10/25(日) 15:16:53.36 ID:cnuvEfeua.net
>>525
>ユーザー切り替えした時切り替え前のアカウントで動作させ続けるのは可能?
それができたらOSの欠陥だと思うけど
どういう理由でアカウントを切り替えて切り替え前のユーザのプログラムを継続させたいいんだ?
ユーザをログアウトせずにあるプログラムだけ別アカウントで動作させることができる
(runas ソフトによってはできない)が
そういう方法と組み合わせて近いことをすることはできないのかな

527 :名無しさん@お腹いっぱい。 :2020/10/25(日) 15:30:25.71 ID:cnuvEfeua.net
>>526
ユーザー切り替えなのでログアウトは間違い
誤:ユーザをログアウトせずに
正:現在のユーザーのまま

528 :名無しさん@お腹いっぱい。 :2020/10/25(日) 15:36:37.14 ID:cnuvEfeua.net
>>526
なんか勘違いしてた
切替えた先のユーザが切替え前のユーザのプログラムを確認すると途切れてるということではなく
前のユーザに戻ったときに途切れてるということか

529 :名無しさん@お腹いっぱい。 :2020/10/25(日) 17:47:07.25 ID:uaVWnWQJ0.net
>>525
GUIの操作は無理じゃない?
vimとかnanoみたいなコンソール型のテキストエディタのwindows版を使ったら?

530 :名無しさん@お腹いっぱい。 :2020/10/25(日) 21:50:52.06 ID:aQtH8BBo0.net
裏でGUI操作させたままユーザー切り替えするのは無理そうですね
ありがとうございました

531 :名無しさん@お腹いっぱい。 :2020/10/26(月) 23:55:07.30 ID:0nLQayUp0.net
最新のMS-IMEの仕様だと、
Autohotkey IME制御用 関数群 (コピペ/組込用)(IME.ahk)
の更新が必要か?

532 :名無しさん@お腹いっぱい。 :2020/10/30(金) 17:11:57.65 ID:Ndf4EDLW0.net
>>531
IMEが有効な時にキーの置き換えを無効にしたくて、特定のアプリでは無効になってくれるのに
メモ帳では無効になってくれません
これってその仕様のせいですかね?


#include <ime>
#If ! IME_GET()
a::b
#If
Return

533 :名無しさん@お腹いっぱい。 :2020/10/30(金) 18:12:07.34 ID:Ndf4EDLW0.net
指定したアプリ以外ではスクリプトを無効にしたいのですが、”#IfWinActive”で指定しても、”#If ! IME_GET()”を入れると指定以外のアプリで実行されてしまいます
指定したアプリ以外の場合は”#If ! IME_GET()”の部分を読まないようにするにはどうすればいいでしょうか


#IfWinActive ahk_exe notepad.exe

#include <ime>
#If ! IME_GET()
a::b
#If

Return

#IfWinActive

534 :名無しさん@お腹いっぱい。 :2020/10/30(金) 18:28:45.29 ID:PSQm7T6f0.net
#If~ は次の #If~ が出現するまで有効、つまり一行目の #IfWinActive ahk_exe notepad.exe は無意味

条件を複数指定したければ式を引数に取る #If を使う。↓こんな感じ

#If WinActive("ahk_exe notepad.exe") && !IME_GET()

535 :名無しさん@お腹いっぱい。 :2020/10/30(金) 19:23:52.66 ID:Ndf4EDLW0.net
>>534
やりたいことができました!感謝します!!

536 :名無しさん@お腹いっぱい。 :2020/11/01(日) 18:48:49.89 ID:f8skW5aS0.net
複数のスクリプトを起動させている時のリロードは全てのスクリプトがリロードできるのでしょうか?

537 :名無しさん@お腹いっぱい。 :2020/11/01(日) 19:11:40.19 ID:Lmt/WVPq0.net
>>536
ABCDの4つのahkが起動している時、Aのahkでreloadを実行すると、BCDのahkもreloadが実行されるのか?
という質問ならノー。

538 :名無しさん@お腹いっぱい。 :2020/11/01(日) 19:14:51.80 ID:cum2FKsZ0.net
自分だけだよ
ただ親スクリプトのautoexecuteで子スクリプトをまとめて起動して
全ての子スクリプトを #SingleInstance FORCEにしておけばリロード一発で全再起動にはなる

539 :名無しさん@お腹いっぱい。 :2020/11/01(日) 20:13:11.39 ID:f8skW5aS0.net
>>537-538
ありがとうございます。その方法を調べて試してみます

540 :名無しさん@お腹いっぱい。 :2020/11/01(日) 21:38:30.40 ID:+lp4/pQd0.net
今まで使えてたんですが、最近のバージョンアップのせいか、気づいたら使えなくなってました。
仕様変更があったみたいなインフォあったらページ教えてくれると嬉しいです。

キーを長押しした場合に分岐する関数です。
この「Time=0.2」の部分が機能しなくなりました。
初期値を指定して省略する、ということをせず、
関数を呼び出す際、省略せずに逐一「,"0.2")」と記述すれば機能するので、
現状すべてそれで修正しました。

また、数値を「Time=0.5」にすると一応分岐が機能するんですが、
体感的にどうも1.0秒くらい押しておかないと長押し判定されないんです。

Hold(Key, SendA, SendB, Time=0.2)
{
KeyWait, %Key%, T%Time%
If (ErrorLevel=0)
{
Send, %SendA%
}
Else
{
Send, %SendB%
KeyWait, %Key%
}
}

F1::Hold("F1", "{F1}", "^{F1}")

541 :540 :2020/11/02(月) 04:26:40.82 ID:YjDJU8KL0.net
すみません自己解決しました!
バージョンアップのせいなんかじゃありませんでした・・・

別の関数の都合で以下のようなものを書いていたのですが、
SetFormat, float, 3.0
これ計算結果に対してだけ効果のあるものだと思ってたんですが、
関数の初期値に指定した数値にも影響するみたいでした。
0.5という指定のときに1.0に四捨五入されるのも納得です。

自分がアホでした、スレ汚しごめんなさい。

542 :名無しさん@お腹いっぱい。 :2020/11/04(水) 07:17:56.05 ID:fAt0anr70.net
PageUpをWin+L(ロック)にしたいのですが、上手く動きません

PgUp::#l
で動きません…
これは何が原因なのでしょうか

543 :名無しさん@お腹いっぱい。 :2020/11/04(水) 07:27:24.69 ID:fAt0anr70.net
>>542
自己解決しました
DllCall('LockWorkStation')

544 :名無しさん@お腹いっぱい。 :2020/11/04(水) 07:50:49.25 ID:hfaH06vJ0.net
珍しいやつがいるな

545 :名無しさん@お腹いっぱい。 :2020/11/04(水) 17:16:09.35 ID:1IOEDSZU0.net
真にマルチスレッド化する方法は、どうしてもないのでしょうか?
例えばAutoHotkey.exeをコピーして、別で実行してみても、それぞれのスクリプトは疑似マルチスレッド的に動作しています。
PCの一般ユーザーでエンジニアではないです。根本の仕組みがわからないために湧いた疑問なのですが、
何とかして別のソフトのように実行できないものでしょうか?

546 :名無しさん@お腹いっぱい。 :2020/11/04(水) 18:08:51.47 ID:RBW8HZXS0.net
>別のソフトのように実行
同じスクリプトを同時に実行したいってことなら #SingleInstance Off

547 :名無しさん@お腹いっぱい。 :2020/11/04(水) 18:25:04.69 ID:ZyxeyMFR0.net
>それぞれのスクリプトは疑似マルチスレッド的に動作しています。

の意味が分からん
真マルチスレッド的な動作と何が違うん?

548 :名無しさん@お腹いっぱい。 :2020/11/05(木) 18:07:56.73 ID:I/mZi28I0.net
新しいパソコンで、ジョイパットが反応してくれません

AutoHotkeyのウィンドウ(実行履歴とか変数一覧を表示してくれるやつ)が
アクティブ状態だと何故か普通に反応するのですが、それ以外ではうんともすんとも言ってくれません
この症状に心当たりある人ますか?

549 :名無しさん@お腹いっぱい。 :2020/11/05(木) 21:20:37.23 ID:yGBOughe0.net
#If系のディレクティブが誤爆してんじゃないの

550 :名無しさん@お腹いっぱい。 :2020/11/05(木) 22:18:37.85 ID:I/mZi28I0.net
検証用に数行だけ書いたスクリプトでやってみてもダメなので#If系は関係なさそうです
一応、JoyToKeyは正常に反応するので、

ジョイパット操作をJoyToKeyで受ける→JoyToKeyが出力したキー操作をAutoHotkeyで処理する

ということは出来そう
ただ、書き直しが面倒なうえに処理がややこしいので、できれば避けたい

551 :名無しさん@お腹いっぱい。 :2020/11/05(木) 22:45:03.39 ID:GGl1mCW80.net
>>550
その検証用スクリプト貼ったら?

552 :名無しさん@お腹いっぱい。 :2020/11/05(木) 23:50:16.43 ID:I/mZi28I0.net
検証用といっても、ツールチップでジョイパットの状態を表示しているだけです。
SetTimer, Timer, 100
Timer:
  GetKeyState, joyx, JoyX
  GetKeyState, joyy, JoyY
  GetKeyState, joy1, joy1
  GetKeyState, joy2, joy2
  GetKeyState, joy3, joy3
  GetKeyState, joy4, joy4
  ToolTip,%joyx% %joyy% ,0,0
  ToolTip,%joy1% %joy2% %joy3% %joy4%,1,25,2
return
joy1::ToolTip,1,1,50,3
joy2::ToolTip,2,1,50,3
Joy3::ToolTip,3,1,50,3
Joy4::ToolTip,4,1,50,3

553 :名無しさん@お腹いっぱい。 :2020/11/06(金) 00:51:44.04 ID:IZlN468w0.net
>>552
試したけどスクリプト自体は何も問題なく動いてる
AHKのウィンドウを出さなくてもX軸やY軸やボタンも取得してツールチップに表示されてる
Chromeやメモ帳などアクティブ時でも問題なし
JTKも常駐させてるけど併用して問題ない

となると貴方の環境で何か別のスクリプトや他の常駐ソフトなどが邪魔してるんじゃない?
ちなみにスクリプトを管理者権限で実行してもダメ?

554 :名無しさん@お腹いっぱい。 :2020/11/06(金) 01:58:35.01 ID:03VprpHh0.net
新しいPCと古いPCの環境の違いを書き出してみるといいよ
多分OSのビルドやahkのバージョンあたりに細かい差異があるんでないの
知らんけど

555 :名無しさん@お腹いっぱい。 :2020/11/06(金) 04:26:02.69 ID:Cd90Lss80.net
>>546
>>547

例えばAutoHotkey.exeをリネームしたa.exeとb.exeを用意します。
それぞれa.ahkとb.ahkを実行します。
どちらのスクリプトにもループ処理が入っています。
これらのループ処理を両方実行した場合、片方のみ実行するより動作が鈍くなります。
つまり実行ファイルを分けても、それぞれが割り込みあっているのだろうと思います。
これを、完全に別物として実行させたいわけです。

556 :名無しさん@お腹いっぱい。 :2020/11/06(金) 08:28:24.96 ID:RAq9Icdy0.net
>>555
動作コアを分ける
でググってみたらどうだろ?

557 :名無しさん@お腹いっぱい。 :2020/11/06(金) 14:28:42.61 ID:03VprpHh0.net
スレッドとプロセスがごっちゃになってるぽい?
https://image.itmedia.co.jp/ait/articles/0503/12/dt-mthread01_02.gif

>555
exe(プロセス)を分けて動作が遅くなるっていうのは
色んなアプリを一度に立ち上げて動かしてたら1窓単体起動のときより重くなりましたつってるのと同じでは?
>556の言うように手動で任意のCPU割り当てる方法もあるけど
プロセス別のコア割り当ては基本OS側の仕事だと思う

同一プロセス内でのマルチスレッドについては
AHKは擬似マルチスレッドなのでマルチコア対応はしてないと思う

558 :名無しさん@お腹いっぱい。 :2020/11/06(金) 16:31:41.10 ID:pYlpzeSL0.net
>>555
どんなループ処理してんだ
1秒に何百回みたいなループさせてんのか?

559 :名無しさん@お腹いっぱい。 :2020/11/06(金) 21:48:27.22 ID:Cd90Lss80.net
>>556

検証用のスクリプトは用意していないので、わかりにくいかもしれませんが現状を話します。
何が関係しているかわかりませんから、念の為詳細に書きます。

AutoHotkey.exeでAutoHotkey.ahkを常駐させています。AutoHotkey.ahkにIncludeしているスクリプトがいくつかあり、
そのうち1つがキーボードでマウス操作をする、mouse.ahkです。
あるトリガーキーを押してから、再度そのキーを押すまで、キーの入力をwhile、if、GetKeyStateでループ、監視し続けます。
そこでカーソル移動用のキーを押すと、MouseMoveを発動します。発動間隔は監視間隔なので、20ミリ秒程度の設定になっています。

これとは別に、MouseGestureL.exe(AutoHotkey.exeを改名した別ファイル)も常駐させています。

そこで問題なのが、MouseGestureL.exeを終了させると、AutoHotkey.exe下のmouse.ahkによるマウスカーソルの移動速度が上がります。

このことから、AutoHotkey.exeとMouseGestureL.exeで別プロセス?として実行していたはずのスクリプトですが、相互にスレッドを奪い合って?いるのではないかと思いました。
MouseGestureL.ahkの仕様はわかりませんが、ループ処理がなされているのだろうと推測しました。

ともかく、実行ファイルもスクリプトファイルも分けて、独立したはずのアプリケーション同士が干渉しあっているので、
疑似マルチスレッド動作になっているのではないかと思いました。

以上です。
これを互いに完全に独立した動作にする方法がないかと思い、質問しました。

関係するかわかりませんが、CPUはi7-8700Kです。

560 :名無しさん@お腹いっぱい。 :2020/11/06(金) 21:48:50.69 ID:Cd90Lss80.net
>>557
>>558

561 :名無しさん@お腹いっぱい。 :2020/11/06(金) 22:02:37.65 ID:pYlpzeSL0.net
そもそもAutoHotkey.exeを改名とかやってることが特殊過ぎてな
意味あんのかそれって感じだし
まだコンパイルしてスクリプト自体を別exeにした方がいいんじゃねえの

562 :名無しさん@お腹いっぱい。 :2020/11/06(金) 22:14:53.95 ID:94t2tBdQ0.net
>>559
>そこで問題なのが、MouseGestureL.exeを終了させると、AutoHotkey.exe下のmouse.ahkによるマウスカーソルの移動速度が上がります。
MouseGestureL.exeも基本常駐じゃないの?終了即再起動することはあるけど終了したままにするケースがよく分からない
ま、何にしてもMouseGestureLが終了したらmouse.ahkの挙動が変わるのが嫌ということなら
MouseGestureLの方にmouse.ahkをIncludeさせればいいのでは?
それならMouseGestureL起動中しかmouse.ahkも動作しないわけだから

563 :名無しさん@お腹いっぱい。 :2020/11/06(金) 22:57:45.00 ID:zxpauMpi0.net
>>559
自分もMGL使ってるけど同じahkスクリプトで常駐させたいものはMGLのプラグインにして
監視するのには「while」などのループじゃなく「settimer」使ってるな

プラグインにするのは別に薦めないけど、試しに「while」の代わりに「settimer」で監視してみては?

564 :名無しさん@お腹いっぱい。 :2020/11/07(土) 01:04:37.47 ID:lXeAUpve0.net
マルチスレッド云々以前の問題な気が
まず、マウスの挙動を制御するプロセスス2つ同時に動かすことで干渉しあってる可能性は?
コントロールの奪い合いになってたりしない?

あとmouse.ahkの回し方に問題あると思う
20msの高頻度でMousemoveし続けて必ず時間どうりに動かすのがまず無理だし
ループ監視するよりHotkey、#if あたりで2ストロークイベントにしたほうがスムースに動くんではないか

565 :名無しさん@お腹いっぱい。 :2020/11/07(土) 19:11:05.17 ID:/fD/cqh1d.net
https://i.imgur.com/H58BDRl.jpg

566 :名無しさん@お腹いっぱい。 :2020/11/10(火) 16:23:55.12 ID:7m/sr7zP0.net
ループ間のディレイをなくす設定ってありますか?
Reloadで中断できるようにDllCallのSleepを小分けにしてループさせてたんですが
WindowsとAHKのアプデ後からループ10回で0.1秒ぐらいのディレイが入るようになりました
現状はこの設定です
#NoEnv
ListLines Off
Process, Priority, , H
SetBatchLines, -1
SetKeyDelay, -1, -1
SetMouseDelay, -1
SetDefaultMouseSpeed, 0
SetWinDelay, -1
SetControlDelay, -1
SendMode Input

567 :名無しさん@お腹いっぱい。 :2020/11/10(火) 20:20:11.56 ID:iUPLlj4e0.net
>>566
実際のスクリプトを見ないと誰も答えられない
検証用に最小限まで削ってから貼ってください

568 :名無しさん@お腹いっぱい。 :2020/11/10(火) 21:17:47.40 ID:Opml9bS20.net
winみたいなマルチタスクOSではアプリ層で割り込み禁止にできないし
AHK側の設定をどう変えてもノーディレイにはならない

けどsleepの精度を上げる方法はある模様
http://www.charatsoft.com/develop/otogema/page/02window/sleep.html

AHKで適用できるのか、できてもインタプリタなスプリクトでどこまで
シビアに時間制御ができるのかは知らんけど

569 :名無しさん@お腹いっぱい。 :2020/11/10(火) 21:18:03.46 ID:7m/sr7zP0.net
>>567
上記の設定の後に

Sleep(Loops) {
Loop, %Loops%
DllCall("Sleep", "UInt", 50)
}

Shift::
Send, {Lbutton}
Sleep(20)
Send, {Lbutton}
Return

https://stopwatch.onl.jp
検証サイトはここです
Loop使わず直接1000ms指定だとディレイなし、Loopありだと+100~200ms,設定全削除だと+300~400msに増えました

570 :名無しさん@お腹いっぱい。 :2020/11/10(火) 21:55:37.89 ID:Opml9bS20.net
A_TickCount を使おう
ループの中に組み込んで所定時間が過ぎてたらbreakするように組めば
sleepでの時間誤差は考慮しなくて良くなる

571 :名無しさん@お腹いっぱい。 :2020/11/11(水) 00:33:28.39 ID:V+LIbDi40.net
>>569
↑のスクリプトで検証、ループであってもほぼ一致(+20〜30ms)ブラウザ経由の誤差だけ
他の負荷がかかってるのかも?タスクマネージャーで確認

念のため以下のスクリプトで検証してみてください。
通常は1ms程度の誤差しか出ないはずです。
https://pastebin.com/Rs3N47rb

572 :名無しさん@お腹いっぱい。 :2020/11/13(金) 21:38:30.41 ID:p37fZhSk0.net
>>571
セーフモードでの検証で
https://pastebin.com/JeZ4Y5kQ
AHK再インストール後でも同じでした

573 :名無しさん@お腹いっぱい。 :2020/11/15(日) 18:32:50.67 ID:mZ0u8NFa0.net
低スペでもそんな現象にならんと思うし
AHK関係なくハードに何か問題が発生しているのでは?

574 :573 :2020/11/15(日) 19:12:31.38 ID:mZ0u8NFa0.net
毎回sleep誤差15msってことは分解能の問題みたいですね
>>573は忘れてくださいw

精度を上げるサンプル(timeBeginPeriod)
https://www.autohotkey.com/docs/commands/Sleep.htm#ShorterSleep

575 :名無しさん@お腹いっぱい。 :2020/11/15(日) 22:19:49.93 ID:F94Ybu5B0.net
>>574
50ms200回で10125まで精度上がりました、ありがとうございます

576 :名無しさん@お腹いっぱい。 :2020/11/18(水) 02:47:53.44 ID:jye7OlUl0.net
firefoxを83にアップデートしたらfirefox関係のスクリプトが動かなくなった。
調べてると返ってくるウインドウタイトルが
YouTube - Mozilla Firefox とかから
YouTube - Mozilla Firefox と真ん中の棒が変わってた。
このまぎらわしい棒は何だと調べたらem-dashとか言うらしい。

577 :名無しさん@お腹いっぱい。 :2020/11/18(水) 02:56:36.33 ID:jye7OlUl0.net
すいません、>>576は間違えて同じもの2回貼り付けただけでした。
こっちが正しい比較です
YouTube - Mozilla Firefox (真ん中がハイフン)
YouTube ? Mozilla Firefox (真ん中がem-dash)

578 :名無しさん@お腹いっぱい。 :2020/11/18(水) 02:59:50.81 ID:jye7OlUl0.net
だめだ、em-dashが?になって5chだと表示されないみたい。
em-dashはハイフンがちょっと長くなった見た目の記号です

579 :名無しさん@お腹いっぱい。 :2020/11/18(水) 09:14:49.00 ID:RsW9sGDZ0.net
>>576
ウインドウクラスで指定すれば?
もしタイトルも必要なら「em-dash」以降は指定しなくても特定できるでしょ
#IF [ウインドウクラス] && [「em-dash」以降を削除したウインドウタイトル]
↑とかで

580 :名無しさん@お腹いっぱい。 :2020/11/18(水) 09:18:34.79 ID:RsW9sGDZ0.net
>>579
>#IF 〜
省略し過ぎな書き方でスマン
でも何となく分かるっしょ

581 :名無しさん@お腹いっぱい。 :2020/11/18(水) 10:16:17.44 ID:RsW9sGDZ0.net
あ、>>579は何か間抜けな方法だったかも…↓な感じで良かったか?
#IfWinActive, 「em-dash」以降を削除したウインドウタイトル ahk_class MozillaWindowClass

適当なこと言い過ぎだから後は黙っときまつ

582 :名無しさん@お腹いっぱい。 :2020/11/18(水) 12:27:26.44 ID:jye7OlUl0.net
>>581
youtubeドメイン内のページ全てで動作させたいので、SetTitleMatchMode, 2 でタイトル部分一致にして

#IfWinActive,YouTube - Mozilla Firefox

としてます。youtubeドメインのタイトル末尾は全部 YouTube - Mozilla Firefox で終わってるので。

583 :名無しさん@お腹いっぱい。 :2020/11/18(水) 19:23:06.56 ID:R3wB7cjZ0.net
a up::b
とすると
Line Test:*a up up::
Error:invalid hotkey
のようにエラーが出てしまう。対処法を教えてください

584 :名無しさん@お腹いっぱい。 :2020/11/18(水) 19:32:07.56 ID:N187D9Tyd.net
>>583
a up::send, b

585 :名無しさん@お腹いっぱい。 :2020/11/18(水) 20:02:08.83 ID:R3wB7cjZ0.net
>>584
出来ました。ありがとうございます

AutoHotkeyJpのリマップの項を読んでも、いまいち分からないんだけど
リマップしようとすると、スクリプトの実行時に自動的にホットキーに変換されちゃって、それが
a up up::
になって、エラーの原因になっている。って認識でいいんでしょうか?

586 :名無しさん@お腹いっぱい。 :2020/11/18(水) 20:29:34.01 ID:5zToSpE1a.net
>>577
ついにウィンドウタイトルというかアプリのリソースにUnicodeが使われる時代がきたのか
これまでどおり「-」ハイフンというかマイナスだとなんか問題があるのかねぇ
今回のように障害になることの方が多い気がするなぁ

587 :名無しさん@お腹いっぱい。 :2020/11/18(水) 20:39:04.99 ID:gySV1Zomd.net
>>585
そんな感じ

588 :名無しさん@お腹いっぱい。 :2020/11/19(木) 20:16:44.85 ID:JScPAAMr0.net
質問なのですが、1つのスクリプトの中で SetTitleMatchMode,2 と SetTitleMatchMode,3 を混在することは出来ますか?
下のように書いても初めの SetTitleMatchMode,2 のみ読み込まれているようなのですが

SetTitleMatchMode,2 ;部分一致
#ifwinactive 無題
^2::
msgbox, 2
return
#ifwinactive

SetTitleMatchMode,3 ;完全一致
#ifwinactive 無題 - メモ帳
^1::
msgbox, 1
return
#ifwinactive

589 :名無しさん@お腹いっぱい。 :2020/11/19(木) 21:12:14.90 ID:aDkK1dmt0.net
#If系で参照する既定値はAutoexecuteでしか指定できない
スレッドごとの再指定は可能なのでホットキーラベルの中では使える

SetTitleMatchMode,2 ;部分一致

^2::
msgbox, % A_TitleMatchMode
return

^1::
SetTitleMatchMode,3 ;完全一致
msgbox, % A_TitleMatchMode
return

590 :名無しさん@お腹いっぱい。 :2020/11/19(木) 21:19:49.46 ID:dLHSdZBc0.net
>>588
SetTitleMatchModeとウィンドウ判定を使ったユーザー定義関数を自作する

#If 部分一致()
#If
#If 完全一致()
#If

591 :名無しさん@お腹いっぱい。 :2020/11/19(木) 23:26:20.80 ID:JScPAAMr0.net
>>589,590
ありがとうございます、上手くわけることができました。

592 :名無しさん@お腹いっぱい。 :2020/11/21(土) 15:47:54.04 ID:HFuDqTjt0.net
GUIのウィンドウスタイルについて教えてください
メッセージボックスのような閉じるボタンのみのGUIウィンドウは作成できますか
よろしくお願いいたします

サンプル
Gui, -MinimizeBox +AlwaysOnTop ;SysMenu+XButton
;Gui, -SysMenu +AlwaysOnTop  ;None
Gui, Add, Edit
Gui, Show
MsgBox
ExitApp

593 :名無しさん@お腹いっぱい。 :2020/11/21(土) 17:24:41.85 ID:gIijDdiS0.net
>>592
なんでサンプルがEditなんだよ

594 :592 :2020/11/22(日) 11:14:04.41 ID:6IUc61XH0.net
>>592
解決しました
ttp://www.autohotkey.com/boards/viewtopic.php?t=35803

595 :名無しさん@お腹いっぱい。 :2020/11/24(火) 14:18:35.34 ID:35b4u2J50.net
すいません教えて下さい
zを押してある場所で左クリックしたままにして
zを離したら左クリック解除して他の場所をクリックしたいんですが
200ms以内に離した場合は200ms後に左クリックするようにしたいんです

z::
MouseClick, L, 900, 775, 1, 0, D
Sleep, 200
Return
z Up::
MouseClick, L, 900, 775, 1, 0, U
MouseClick, L, 690, 775, 1, 0
Return

これだと200ms以内にクリックしてしまいました
どうすればいいか教えて下さい

596 :名無しさん@お腹いっぱい。 :2020/11/26(木) 19:22:30.23 ID:0VP9GA5s0.net
>>595
望みが実現しない原因。
Sleep,200 でSetTimer以外のスクリプト全体の動きは止まるが、
z Up::で新たなスレッドが実行されたので、
Sleep,200 の動作が一時停止し、MouseClick,U が行われた。
(z Up::の実行を終えた後、Sleep,200 のスレッドが再び動く)

KeyWaitを使うといいぞ

z::
x1:=900,y1:=775,x2:=690,y2:=775
MouseClick, L,%x1%,%y1%, 1, 0, D
KeyWait,z,T0.2 ;指定秒数 指定の状態になるのを待機する
if ErrorLevel ;時間が過ぎても指定の状態にならなかった
{ ;200ms以上押した場合
KeyWait,z ;このままzキーを押し続けた場合、z::が連続で実行されてしまうので待機処理を入れる
Send,{LButton UP}
;MouseClick, L,%x1%,%y2%, 1, 0, U
MouseClick, L, %x2%,%y2%, 1, 0
}
Else
{ ;200ms以内に離した場合
Sleep,200
Send,{LButton}
;MouseClick, L,%x1%,%y1%, 1, 0
}
Return

597 :名無しさん@お腹いっぱい。 :2020/11/27(金) 13:40:13.10 ID:j5UTV/Iv0.net
>>596
ありがとうございます出来るようになりました

ロジクールのlua scriptでやっていた事をautohotkeyでやろうとしたんですが
自動でコマンド間などにsleepが入るとかでちょっと指定時間より遅れるので

#NoEnv
SetBatchLines, -1
ListLines, Off
SetKeyDelay, -1

これを先頭に突けてみたのですがlua scriptより遅かったです
他に方法があったら教えて下さい

598 :名無しさん@お腹いっぱい。 :2020/12/03(木) 10:36:24.66 ID:9dOR8MWZ0.net
Loopの使い方が分からないので教えて下さい
やりたい事は指定範囲の色が変わったらマウスポインタをA点(650, 750)に移動させ
色が変わる前にF2キーを押したらそB点(1500, 1000)に移動させてLoopを終わらせたいです
F2キーを押してB点移動した後もLoopが終わらず色が変わるとポインタがA点に動いてしまいます
F2キーを押したらB点に移動しLoopが終わるようにするにはどこが間違ってるか教えて下さい

F1::
CoordMode, Pixel, Screen
CoordMode, Mouse, Screen
Loop  ;指定範囲が0xFDFDFD色になるか
{  ;F2キーが押されるまでLoopさせる
PixelSearch,,, 1265, 370, 1270, 375, 0xFDFDFD, 3, Fast
GetKeyState, state, F2  ;F2キーの状態を取得
if (ErrorLevel = 0 or state = D)  ;0xFDFDFD色になる or F2キー操作でLoopを終わらせる
break
}
if state = D  ;F2キー操作ならLoopを終了してF2キーに割り当てた操作をする
Return
Else  ;0xFDFDFD色になら 650,750 に移動してLoopを終わらせる
MouseMove, 650, 750, 0  ;A点
Return

F2::  ;F2キーを操作したら 1500, 1000 に移動
CoordMode, Mouse, Screen
MouseMove, 1500, 1000, 0         ;B点
Return

599 :名無しさん@お腹いっぱい。 :2020/12/03(木) 12:26:50.32 ID:GUp+2HRv0.net
試してないけど怪しそうなとこ
if (ErrorLevel == 0 or state = "D")

if () と if カッコなし は記述ルールの違いが紛らわしいんで
なるべく混在させないほうがいいよ

600 :名無しさん@お腹いっぱい。 :2020/12/03(木) 13:48:39.55 ID:9dOR8MWZ0.net
>>599
有難うございます

if (ErrorLevel = 0 or state = D)のカッコを外したらA点に移動しなくなりました

if (ErrorLevel = 0 or state = D)のまま
if state = Dにもカッコをつけたら前と変わらない動作のままでした

601 :名無しさん@お腹いっぱい。 :2020/12/04(金) 00:31:13.26 ID:0dL9tzcB0.net
>>600
>>599をよく読もう

602 :名無しさん@お腹いっぱい。 :2020/12/04(金) 09:30:50.35 ID:tzc0zJrS0.net
>>601
勘違いしてました
Dに""付けたら希望通りの動作しました
有難うございました!

603 :名無しさん@お腹いっぱい。 :2020/12/04(金) 17:04:28.42 ID:MrImZAZK0.net
v2はいつまでαなんだろうな

604 :名無しさん@お腹いっぱい。 :2020/12/05(土) 02:10:21.07 ID:M7niQZd10.net
>>603
現状(v1?)で不満ないんだけど、v2使うメリットって?

605 :名無しさん@お腹いっぱい。 :2020/12/05(土) 21:56:19.61 ID:ttw726i4a.net
新しければ新しいほど楽しい

606 :名無しさん@お腹いっぱい。 :2020/12/08(火) 19:56:16.74 ID:yaQ1ZOXD0.net
AppleのUSキーボードをWindows10環境で使用しています。
(左CommandキーはLWin、右CommandキーはRWinとして認識されています)

・LWin単体で押されたときにvk1Dsc07B(無変換)を送る
・RWin単体で押されたときにvk1Csc079(変換)を送る
・↑と被るためWindowsキー単体で押された時の機能(スタートメニュー表示)は無くしたいが、Win+Rなどは残したい

ということがやりたいです。

~LWin Up::
if (A_PriorKey = "LWin") {
Send {vk1Dsc07B}
}
Return

が望みに近いのですが、スタートメニューが表示されてしまいます。
LWin::Return などを加えるとスタートメニューは表示されなくなりますが、Win+Rなども効かなくなってしまいます。
どのように設定すればよいか教えていただけますでしょうか?

607 :名無しさん@お腹いっぱい。 :2020/12/11(金) 04:43:38.79 ID:3zDhK2Cg0.net
>>606
LWin::vk1D
LWIN & r::#r

余計な事せずこれじゃダメなの?
コンビネーションキーひとつ書くだけでWin+Dとかも全て利用可能になる

608 :名無しさん@お腹いっぱい。 :2020/12/11(金) 18:18:16.53 ID:7ZWD+tQW0.net
>>607
ありがとうございます。
教えていただいた方法で実現できました!

全然話は変わるのですが、マニュアルはどちらを参照されていますか?
vk1Dとかの書き方、自分の探し方だと出てこなかったもので。。。

609 :名無しさん@お腹いっぱい。 :2020/12/11(金) 18:37:56.77 ID:wFOUTixS0.net
>>608
基本的に日本語wikiとここしか見てないよ
vk1Dとかの書き方はたまたまAHKのUpdateで記述ルールが変わった時にスレ見てたから
自分は把握してるだけでwikiは古い仕様のままだから直ってない
直せるなら直したいけどロックされてて出来ないんだよな

610 :名無しさん@お腹いっぱい。 :2020/12/12(土) 00:50:25.31 ID:gZiNtGot0.net
>>609
ありがとうございます。

# 教えていただいた設定に変えて手も慣れてきて、すっごい快適になりました。

611 :名無しさん@お腹いっぱい。 :2020/12/13(日) 01:46:26.64 ID:yWHewayM0.net
長いことバージョンアップしてなくてv1.1.33.02にしたら

・カタカナひらがな
vkF2sc070:: Run, calc.exe
・変換
vk1Csc079:: Run, calc.exe
・無変換
vk1Dsc07B:: Run, calc.exe

各キーに割り当てていたホットキーがすべてエラーになります
なんと書き直せばいいのでしょうか?

612 :名無しさん@お腹いっぱい。 :2020/12/13(日) 01:57:20.57 ID:YY9Cj1GT0.net
>>611
>>607-609

613 :名無しさん@お腹いっぱい。 :2020/12/13(日) 02:18:24.77 ID:yWHewayM0.net
>>612
ありがとうございます!
直上に書いてあったんですね

614 :名無しさん@お腹いっぱい。 :2020/12/13(日) 08:32:21.21 ID:8FNHh+bd0.net
自分もvkscって頃にAHK使い出したけど 恐ろしくて新しいバージョン手を出せないっす やっぱり新しいやつのほうがいいのかしら

615 :名無しさん@お腹いっぱい。 :2020/12/13(日) 13:27:44.30 ID:KxxmPkUk0.net
>>614
※新規利用者には最新版を推奨しますが、旧AHK(2009年9月までのVer)の利用者は新AHKへの移行に際して
少なからず改修が必要となります。特に、旧流行らせるページの配布物(MouseGesture等)の多くは
そのままでは動作しません。安定利用できている環境を崩して移行するかどうかは各人の判断による。

616 :名無しさん@お腹いっぱい。 :2020/12/13(日) 16:23:26.07 ID:yWHewayM0.net
32bitから64bitへの移行も面倒ですよね

これの64bit版がなくて今も32bit使ってます
https://github.com/sourcedog/Wurm-Unlimited-Bot/blob/master/lib/Capture2Text/SourceCode/Capture2Text_AHK_Script/ScreenCapture.ahk

617 :名無しさん@お腹いっぱい。 :2020/12/13(日) 21:26:47.00 ID:403G4Faz0.net
hotstringが効かないことがあるのは、バグなんですかね

618 :名無しさん@お腹いっぱい。 :2020/12/14(月) 12:23:39.07 ID:qR6AWokf0.net
#Hotstring C O K-1 Z
:R:gistp::git stash pop stash@{}

で更に、キャレットを1つ左に移動させたい場合はどうすればよいでしょうか。

試しに
::gistp::
tmp := ClipboardAll
Clipboard = git stash pop stash@{}
Send, %Clipboard%
Send, {Left}
Clipboard := tmp
tmp =
Return
のようにしてもみましたが、Rをつけてもつけなくても(#Hotstring/:R:)、
{}さえ入力されなくなりました。

619 :名無しさん@お腹いっぱい。 :2020/12/16(水) 08:20:57.78 ID:wEUsRmK10.net
クリップボードの内容が何十回かに一度ですが書き換えミスが生じてしまいます。

^b::
send, ^c
send, ^t ;firefoxで新しいタブを開く
sleep, 200
clipboard = test
if(clipboard == "test"){
send, ^v
}
return

上記のコードで、ifでクリップボードの中身が"test"であることを確認しているのに、
send, ^t のように、アクティブなタブが変わった直後にペーストすると何十回かに一度は"test"ではなく、
初めのsend, ^c でコピーした内容が貼り付けられてしまいます。

なにか確実にクリップボードの内容を確認するか書き換える方法はないでしょうか?

620 :名無しさん@お腹いっぱい。 :2020/12/16(水) 08:38:34.83 ID:cUwg2+XO0.net
>>619
ClipWait が代入にも有効かどうか試してみたら?

621 :名無しさん@お腹いっぱい。 :2020/12/16(水) 08:46:53.75 ID:cUwg2+XO0.net
>>619
あと、
send, ^v
の後に
Sleep,100

622 :名無しさん@お腹いっぱい。 :2020/12/16(水) 09:01:20.49 ID:sM37YEnk0.net
先のsend,^cでの反映が遅くてsleep 200msで間に合わってなくて
"test"代入後に上書きされてしまっているのでは?

clipboard := ""
send, ^c
ClipWait, 2
send, ^t

としてみるとか

623 :名無しさん@お腹いっぱい。 :2020/12/16(水) 13:58:02.04 ID:wEUsRmK10.net
>>620-622
返信ありがとうございます。
>>622さんの言われるとおりで,^cのクリップボードへの反映にそこそこタイムラグがあるのが原因でした。

^b::
clipboard := ""
send, ^c
ClipWait, 2
send, ^t ;firefoxで新しいタブを開く
sleep, 200
clipboard := ""
clipboard = test
ClipWait, 2
return

と直せば誤動作がなくなりました。
clipwaitはクリップボードの処理が完了するのを待ってくれているのかと思ったら、ただ単にクリップボード
の中身がテキストかだけを確認するような動きなんですね。
なので上記のように clipboard := "" とセットで使わないとまた誤動作してしまいました。

624 :623 :2020/12/17(木) 02:51:33.01 ID:s1wiQohy0.net
>>620
ClipWait が代入にも有効かどうか下記で試してみました。

rctrl::
s = "aaaaaaaaaaaa" ;実際はもっと長い文字列で試しました
clipboard = %s%
send, ^v
clipboard =
clipboard = test
clipwait
return

上を数百回繰り返しても一度も"test"は表示されなかったので、clipboard = は代入が保証されているようです。
なので>>623(最後に send, ^v が抜けている)も

^b::
clipboard := ""
send, ^c
ClipWait, 2
send, ^t ;firefoxで新しいタブを開く
sleep, 200
clipboard = test
send, ^v
Sleep,100
return

で大丈夫そうです。

625 :名無しさん@お腹いっぱい。 :2020/12/18(金) 09:34:26.26 ID:qmvdmNRt0.net
タスクトレイの操作について質問させて下さい。

#Bでタスクトレイにフォーカスを移す方法は、windows10では問題ないのですが、
windows8.1だと#Bの後に何か操作するとその後タスクトレイのアプリで右クリックメニューが閉じなくなるバグがあるので使えません。

なのでネットにあった以下のコードを使ってみました。

https://pastebin.pl/view/457a5699

このコードで ctrl+b を押すとタスクトレイのAHKを右クリックできるのですが、なかには無反応のアプリもあります。

そこで、右クリックの代わりにアプリケーションキーを送りたいのですが、
TrayIcon_Button() 関数の中の

PostMessage, oIcons[nIdx].msgid, oIcons[nIdx].uid, %sButton%DOWN,, % "ahk_id " oIcons[nIdx].hwnd

の %sButton%DOWN にアプリケーションキーが押されたというメッセージ(0x0200など)を書き込めば良いのではと
考えたのですがどのように書けば良いでしょうか?

626 :名無しさん@お腹いっぱい。 :2020/12/18(金) 11:39:20.94 ID:y8bQBg600.net
この辺が参考になるのでは

ウィンドウメッセージリスト
http://chokuto.ifdef.jp/urawaza/message/index.html

627 :名無しさん@お腹いっぱい。 :2020/12/18(金) 12:05:02.58 ID:qmvdmNRt0.net
>>626
AHKのwikiをみると PostMessage は

PostMessage, Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText]

となっており、メッセージは第一引数に入れるように見えるのですが、

PostMessage, oIcons[nIdx].msgid, oIcons[nIdx].uid, %sButton%DOWN,, % "ahk_id " oIcons[nIdx].hwnd

はメッセージの %sButton%DOWN が第3引数に入っていて、それなら第一引数の oIcons[nIdx].msgid は一体何?
と全くわからない状態です。

628 :名無しさん@お腹いっぱい。 :2020/12/18(金) 12:51:13.71 ID:y8bQBg600.net
とりあえず
SetFormat, IntegerFast, hex
msgbox,% oIcons[nIdx].msgid
で値確認してから逆引きでmsg調べてみては

629 :名無しさん@お腹いっぱい。 :2020/12/18(金) 13:37:07.86 ID:qmvdmNRt0.net
>>628
試したら 0x40000000000404 とよくわからない大きすぎる値が表示されました。

630 :名無しさん@お腹いっぱい。 :2020/12/18(金) 22:04:39.68 ID:y8bQBg600.net
つうかcallbackだって書いてあったわ
ahk tasktray sendmessage でググったらこんなページ出てきたけど関係ある?
https://stackoverrun.com/ja/q/8775770

631 :名無しさん@お腹いっぱい。 :2020/12/18(金) 22:11:13.44 ID:lCGtO4eU0.net
>>629
Win+Bのショートカット使う前は自分の場合はトレイアイコンのスクショを画像保存しておいて
ImageSearchを使ってアイコンの座標を右クリックしてたなあ
スマートなやり方ではないけど簡単で確実
試行錯誤をしたいならそのまま続けてください

632 :名無しさん@お腹いっぱい。 :2020/12/19(土) 15:12:59.73 ID:lBEW00/B0.net
操作するアイコンやメニュー(なんちゃら機能のon/offとか)が決まってるなら
コマンドid調べてpostmessageで直接操作するっていう方法は駄目なんだろうか?
…なんて思ったりする

633 :名無しさん@お腹いっぱい。 :2020/12/19(土) 18:18:21.41 ID:UEfqJcHY0.net
>>632
そんな方法があるんですね。
例えばタスクトレイのAutoHotKey右クリックメニューOpenを実行したいならどのように書けば良いのですか?

634 :名無しさん@お腹いっぱい。 :2020/12/19(土) 20:24:49.57 ID:egabG+oG0.net
ahkのトレイならpostmessage使うまでもない
ListVars / KeyHistory / ListHotkeys から好きなものをどうぞ

635 :名無しさん@お腹いっぱい。 :2020/12/20(日) 04:16:36.47 ID:SXaEsZv90.net
>>634
ahkというより、汎用的なpostmessageを使ったタスクトレイの操作を知りたいです。

636 :名無しさん@お腹いっぱい。 :2020/12/20(日) 09:31:51.47 ID:D5hV/wtp0.net
タスクトレイの操作って概念を捨ててそのアプリに直接コマンド投げて操作したらって意味だと思うけど
http://ahkwiki.net/SendMessage

ahkならdetectHidenWindows ONした上でメニュー上の該当コマンドをPostしたらいいんじゃね
知らんけど
https://f.easyuploader.app/eu-prd/upload/20201220092750_414c32484841744a4d4c447a56316966.png

637 :名無しさん@お腹いっぱい。 :2020/12/20(日) 10:38:21.51 ID:SXaEsZv90.net
>>636
ありがとうございます。
その方法だと1行書くだけでで済みました。
ただリソースハッカーに Menu の項目が表示されないアプリがあるのですがそういった物に関してはこの方法はお手上げでしょうか?

638 :名無しさん@お腹いっぱい。 :2020/12/20(日) 11:30:54.69 ID:GHHuJJi80.net
Get Info from Context Menu (x64/x32 compatible) - AutoHotkey Community
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=31971
後は好きなように改編どうぞ

>リソースハッカーに Menu の項目が表示されないアプリがあるのですが
こういうのにも対応してるのかは分からない

639 :名無しさん@お腹いっぱい。 :2020/12/20(日) 12:23:10.50 ID:D5hV/wtp0.net
>625 >無反応のアプリ
>637 >Menu の項目が表示されないアプリ

ってのが具体的に分からんから何とも言えないけど
うちの環境だとタスクトレイ上で>625で動作せず、リソハカでもID取れなかったのはKeepassXCだけだった
あとPythonやNode.jsをexe化してるようなアプリはリソハカでID見えなかった
たぶんネイティブじゃないクロスプラットフォーム系のアプリは窓の作り方自体のお作法が違うのでは

640 :名無しさん@お腹いっぱい。 :2020/12/20(日) 17:35:09.36 ID:E0DsaI+v0.net
「最初のテキストフィールドに移動」はAHKで実現できますか?
(例えば、Google検索結果を表示している画面でそれを押すと、検索窓にフォーカスがあたる)

CentBrowserにあるショートカットなのですが、AHKで一般化したい事情があります。
WindowSpyで見たところ、ClassNNは画面内すべて同じ値で、テキストフィールドごとなど分かれてはいません。

641 :名無しさん@お腹いっぱい。 :2020/12/20(日) 18:51:57.78 ID:RVrXlmvz0.net
>>640
CentBrowserをアクティブにして「CentBrowserにあるショートカット」キーを送る(という一連をAHKで実行する)ではダメなの?

642 :名無しさん@お腹いっぱい。 :2020/12/20(日) 21:17:22.15 ID:E0DsaI+v0.net
>>641

CentBrowserが入っていない環境下でその機能を使いたいために、
AHKで実装したいのです。
不意に誰かのPCで作業することになることが多く、
そのために、AHKへの統合作業を進めているところです。

643 :名無しさん@お腹いっぱい。 :2020/12/20(日) 22:14:16.67 ID:TkCaGahG0.net
>>642
Chromium系のブラウザだけ考えてもCentにしかない?のなら難しいそうだなぁ
それよりよくあるキーワードをコピーしてGoogle検索で代用になるのでは?
それなら別にメモ帳からエクセルからでもキーワード込みでGoogleに飛ぶ
ブラウザは既定になるけど、指定も可能
これはGoogleだけの話だけど、アクセス頻度が高いサイトが他にあるならそれも追加すればいい

644 :名無しさん@お腹いっぱい。 :2020/12/21(月) 00:05:09.60 ID:ZQcALpWc0.net
>>643
ありがとうございます。

Google検索以外にも、1つ目のテキストフィールドに飛びたい場面は結構ありまして、
そのために共通化したいのです。(Google検索に関しては別途プラグインを用意しています。)

とはいえ、やはりChromeに限らずソフト内部の処理は中々難しそうですね。

645 :名無しさん@お腹いっぱい。 :2020/12/21(月) 00:30:18.81 ID:ZQcALpWc0.net
1::
3::
5::
(処理)
Return
2::
4::
6::
8::
9::
(処理)
Return

これを、次のようなイメージで表現する方法はありますか?
(Hotkey, Loopあたりを使うのでしょうか)

key_list:=1,2,3,4,5,6,7,8,9
valid_key:=1,3,5
invalid_key:=(key_listのうちvalid_key以外)
(valid_key)::
(処理)
Return
(invalid_key)::
(処理)
Return

646 :名無しさん@お腹いっぱい。 :2020/12/21(月) 00:36:35.27 ID:IF897BQT0.net
とりあえずwikiのhotkeyコマンドのページを読んだらいいと思う

647 :名無しさん@お腹いっぱい。 :2020/12/21(月) 00:58:11.67 ID:ZQcALpWc0.net
>>646
逆に、読まないわけないですよね、人に聞くのならば。
当該ページの要約なんてしてしまえば、それこそスレ汚しかなと。

648 :637 :2020/12/21(月) 05:01:55.76 ID:/15D1k390.net
>>638
ありごとうございました。
そのスクリプトでIDを調べればほぼ全てのアプリで直接操作ができました。

649 :名無しさん@お腹いっぱい。 :2020/12/21(月) 08:38:10.04 ID:IF897BQT0.net
>>647
リファレンスじゃなくてコマンドのページを見ろと言ったのだけど
これ見た上で>645の質問するならせめて何がわからないのか言ってくれない?
http://ahkwiki.net/Hotkey

650 :名無しさん@お腹いっぱい。 :2020/12/21(月) 08:56:18.61 ID:IF897BQT0.net
ああすまん HotkeyもLoopも調べた上で完成コード貼ってくれって言ってるのね
ちょっとそれは想定外だったわ

ごめんここそういうスレじゃないんだわ

651 :名無しさん@お腹いっぱい。 :2020/12/21(月) 13:26:31.09 ID:ZX9/7P5B0.net
>>645
うん、そうだね
LoopなりForなりでkeyを取り出しながらHotkeyで登録していけばいいよ

652 :名無しさん@お腹いっぱい。 :2020/12/21(月) 19:52:36.27 ID:5E2XPNSg0.net
>>644
>Google検索以外にも
どれだけあるのか知らないけど、自分は検索ワード付で飛べるようにしてるサイト100近くあるよ
Googleの検索オプション込で20くらいあるし、各EC・翻訳・類語・電子書籍・地図・レシピetc
価格.comとかちょっと苦戦した所もあるけど、それぞれのサイトごとに作ればいいのでは
1回作ればメンテもほとんどいらないし

653 :名無しさん@お腹いっぱい。 :2020/12/21(月) 22:14:34.85 ID:jPLxme370.net
やべーのきた
dp/B08B3C79J5

654 :名無しさん@お腹いっぱい。 :2020/12/21(月) 23:17:02.37 ID:xMP2V9qq0.net
>>644
UIAutomationでFindFirstを使ってみたら?
公式のフォーラムにUIA_Interface.ahkがあるけど
個人的にはTypeLib2AHKから生成したもののほうが使いやすい

655 :名無しさん@お腹いっぱい。 :2020/12/23(水) 20:54:09.66 ID:6j4Tv9/A0.net
知名度低過ぎや
もっと宣伝するんや

656 :名無しさん@お腹いっぱい。 :2020/12/27(日) 00:55:36.04 ID:11eiyns50.net
スレッド住民の天才プログラマー様、デスクトップ版Amazon Musicがグローバルホットキーで動くスクリプト下さい

657 :名無しさん@お腹いっぱい。 :2020/12/29(火) 05:20:07.30 ID:0OZDNm6Y0.net
前にやってた事なのですが、突然グリーンスクリーンでパソコンが落ちた後起動が出来無くなりSSDのデータの復元も出来ず(.ahkファイルなどが)、元々この辺も詳しく無かったので「こうかな?」とやってみたものの上手く行きませんでした
たぶん皆さんだと「そんな事もわからねえのか」ってレベルだとは思いますが、アドバイス頂きたいです

Win10 64bit Pro
AHK 1.1.33.02

やりたい動作
日本語入力で「を押した時「」を出力し↓を送信して選択を確定し←を送信して「」の間にカーソルを移動
同様に、」を押した時()を出力し↓を送信して選択を確定し←を送信して()の間にカーソルを移動

[::Send,{Blind}[]
Send,{Blind}{Down}
Send,{Blind}{Left}
Return

]::Send,{Blind}()
Send,{Blind}{Down}
Send,{Blind}{Left}
Return

上記の書き方でやると()が出力されますが変換未確定状態で止まります
DownとLeftをscの方で書いてみましたが変わらず
以前は出来ていたので可能だとは思うのですが、どう書けば出来るでしょうか?
よろしくお願いします

658 :名無しさん@お腹いっぱい。 :2020/12/29(火) 07:42:38.81 ID:wcRWwvuu0.net
>>657
まずサンプルページを見て書き方覚えな

659 :名無しさん@お腹いっぱい。 :2020/12/29(火) 07:55:01.33 ID:wcRWwvuu0.net
>>657
もう一つだけ言っとくと、大事なのは改行

660 :名無しさん@お腹いっぱい。 :2020/12/29(火) 08:28:10.91 ID:14tV/Yln0.net
相変わらず役立たずが張り付いてんだな
もう引退しろ

661 :名無しさん@お腹いっぱい。 :2020/12/29(火) 08:54:01.66 ID:EOvoeb1K0.net
>>660
文句言うだけならおまえも同類
消えろ

662 :名無しさん@お腹いっぱい。 :2020/12/29(火) 09:37:16.86 ID:hHY1cXnU0.net
>>657
とりあえずその書いた通りに自分でキー入力してみて
やっぱり変換未確定になるのでは?それを確定させるにはどうするか
あと、デフォを変えてしまうのは抵抗あるかな。まあこれは好き好きかもだけど
自分なら無変換+[ とか 右Alt+[ とかで作ると思う

663 :657 :2020/12/29(火) 17:49:07.12 ID:0OZDNm6Y0NIKU.net
>>658-659
レスありがとうございます
ahkwiki.netのサンプルコード集とか他にもいくつか見てはみたのですが、自分のやりたい事に合ってる物が見付からず、基本的な部分もどれが合っている物なのかが…
開業の

664 :657 :2020/12/29(火) 18:04:01.81 ID:0OZDNm6Y0NIKU.net
すみません、間違えて途中で送信になってしまいました(しかも誤字あり)
改行の方法が関わってるんですね
その辺で探してみます

>>662
書いた通り未確定状態です
Enterで確定にする方法を前も考えていたのですが、日本語入力オフの時にやると改行してしまうので下で確定と思った様な
試しにEnterにしてみたのですがそれでも変化ありませんでした
また調べていてBlindは同時押しの時に使う物、という事で関係無いのでは…と消した所上の方が「」にはなりましたがやはり未確定状態
前調べた時にBlindがこの状態に有用っぽいと思ったので付けていたのですが、見間違いか見たサイトの書き方で勘違いでもしたのか

この使い方で何年もやっているので不便は無いというかとても使い易かったです
かっこって「」も()も使う時は必ず両方使いませんか?
片方だけ使用する事が無いので、それなら割り当てちゃおうと

665 :657 :2020/12/29(火) 18:05:35.65 ID:0OZDNm6Y0NIKU.net
あ、662さんにお礼書き忘れていました
レスありがとうございます

666 :名無しさん@お腹いっぱい。 :2020/12/29(火) 18:10:47.69 ID:wcRWwvuu0NIKU.net
>>663
やりたいこととか関係無いから
もっと根本的にサンプルコード集にあるコードの書き方とお前の書き方で決定的に違うところがあるだろ
どれか一つでもサンプルコード集のコード貼ってみろ

667 :名無しさん@お腹いっぱい。 :2020/12/29(火) 18:30:02.12 ID:vRRm8Pin0NIKU.net
>>664
IMEの状態で挙動分けたいならIME.ahkで状態確認してEnter入れるかどうか判定してたんじゃない?
テンプレ >160

なんにしてもバックアップは大事だよー
あとOS入れかえたんならMS-IMEが新方式になってると思われるんで
調子悪いようなら従来方式に戻してみ

668 :名無しさん@お腹いっぱい。 :2020/12/29(火) 19:05:02.33 ID:d76M1KqA0NIKU.net
>>657
http://ahkwiki.net/Hotkeys

669 :名無しさん@お腹いっぱい。 :2020/12/29(火) 19:11:33.86 ID:ww+sN9NY0NIKU.net
愛があるのか意地悪なのか知らないけど、個人的には書いてあげたいところ

ここからIME.ahkをダウンロードして配置→Include
https://w.atwiki.jp/eamat/pages/17.html

スクリプト
https://pastebin.pl/view/390b06d3

下で確定というのがよくわからないけど、これで希望の動作ができているのでは

670 :657 :2020/12/29(火) 19:15:41.07 ID:0OZDNm6Y0NIKU.net
>>666-669
あー、なるほどわかりました!
複数行になる時は::の後ろで改行が必要なんですね
それで出来る様になりました
皆様本当にどうもありがとうございました

671 :名無しさん@お腹いっぱい。 :2020/12/29(火) 19:23:15.22 ID:wcRWwvuu0NIKU.net
>>669
IMEとか全然関係無いだろ
お前みたいにトンチンカンな事いって混乱させる方が余程意地が悪い

672 :名無しさん@お腹いっぱい。 :2020/12/29(火) 20:12:20.72 ID:X40gIKFw0NIKU.net
記号入力系はおれはIME.ahkでIMEがonなら一旦offにしてsendrawで直接文字列入力させてるな
キーボードに無い記号も日本語も扱えるし関数にしとけば記述も楽だ

673 :名無しさん@お腹いっぱい。 :2020/12/29(火) 22:03:42.37 ID:pdcQ/t5p0NIKU.net
俺は Clipboard 使ってるなぁ
IMEがどんな状態だろうが、 Send,^v で

674 :名無しさん@お腹いっぱい。 :2020/12/31(木) 19:06:43.68 ID:ZWi9NKeJ0.net
>>652
>>654

いろいろ試して、とりあえず下記のような形になりました。
ふとした時に最上部のテキストボックスに移動したいことが多いので、特定のサイトというわけではないんですよね。

最初のテキストフィールドに移動β[Chromium]
https://pastebin.pl/view/740eefc4

675 :名無しさん@お腹いっぱい。 :2021/01/01(金) 18:33:05.81 ID:ukB6Yqjo0.net
質問です

func( key )
{
;(ここで色々な処理)
Send, {%key% down}
keyWait, %key%
Send, {%key% up}YES
;(ここで色々な処理)
}

$a:: func( "A" )
$h:: func( "H" )
$k:: func( "K" )

キーリピートさせないため&他にも色々させるためにこの形を取っているのですが
これだと複数キーを押した際にkeyWaitが蓄積されていく形になり
例えば「H」押下→「A」押下→「H」離す だけではHがupされず その後「A」を離した時点で初めて「YESYES」と出るのですね
1キーごとに独立したkeyWaitをさせるみたいなことってどうしたらできるでしょうか?

Inputって今まで使ったことなかったですが、keyWaitのところをとりあえず
「Input, UserInput, V, %key%」
「Input, UserInput, V, %key% up」
「Input, UserInput, V, {%key%}」
「Input, UserInput, V, {%key% up}」
辺りからIf ErrorLevel〜 みたいにしてもInputコマンドのEndKeys引数は(当然かもしれませんが)押下しか検知してくれてないようで…

676 :名無しさん@お腹いっぱい。 :2021/01/01(金) 21:52:10.06 ID:WR1IUEcf0.net
>>675
Threadコマンドで割り込みさせないとか?

677 :名無しさん@お腹いっぱい。 :2021/01/02(土) 06:08:35.06 ID:pF3LV4460.net
普段はチルトにブラウザの戻る、進むを割り当ててるんだけど、右クリック+チルトでタブ移動のショートカットを割り当てたりって出来ないかな?

678 :名無しさん@お腹いっぱい。 :2021/01/02(土) 08:10:54.99 ID:E6Eq2hM70.net
>>677
RButton & WheelRight::Send,^{Tab}

679 :名無しさん@お腹いっぱい。 :2021/01/02(土) 16:22:26.15 ID:pF3LV4460.net
>>678
これ右クリックが動かなくなるんですけど自分だけですかね

680 :名無しさん@お腹いっぱい。 :2021/01/02(土) 16:34:16.37 ID:J5Q8PkIE0.net
>>679
乗っ取るんだから当たり前だろ
RButton::RButton を付け加えれば右クリ単押し離した時に右クリとしで作動するが右ドラッグは出来ない
~ を使えば乗っ取らないけどタブ移動時にも右クリが送信される

こんなこと俺は人に聞くまでも無くwiki読んで試して自力で把握できたけどなんでお前は出来ないんだ?

681 :名無しさん@お腹いっぱい。 :2021/01/02(土) 21:34:02.30 ID:pF3LV4460.net
>>680
なるほど
じゃあどれかを我慢しないといけないんですね >タブ移動時にも右クリ送信
ありがとうございます

682 :名無しさん@お腹いっぱい。 :2021/01/03(日) 03:48:16.68 ID:ys1x8MNd0.net
>>681
ブラウザだけそういう設定にすりゃいいじゃん
ブラウザなら右クリックをドラッグすることなんてまず無いので
ボタン離した時に右クリックでもまず問題ない
やり方はwikiで調べて

683 :名無しさん@お腹いっぱい。 :2021/01/03(日) 08:49:43.73 ID:CEKSJ3+E0.net
タブのあるソフトってブラウザだけじゃないし共通で使いたいということのでは?
個人的にはブラウザが一番マウスジェスチャ使うから右ドラッグは必須だな

684 :名無しさん@お腹いっぱい。 :2021/01/03(日) 08:56:05.45 ID:62Cedb4C0.net
>>683
その場合はマウスジェスチャでタブ移動もすればいいじゃん

685 :名無しさん@お腹いっぱい。 :2021/01/03(日) 13:15:11.93 ID:s3EjySlL0.net
ごろ寝マウス使ってるんですけどahkだけだとドラッグ操作が不完全みたいなので
ごろ寝マウス専用の常駐キー置き換えソフトも常駐させてます
このような使い方ですと時折操作がおかしくなります
仕方ないのでahkをReloadさせると正常になります
これはお互いに干渉してるのでしょうか?

686 :名無しさん@お腹いっぱい。 :2021/01/03(日) 19:10:26.91 ID:UMtJAZdE0.net
ここはエスパースレではありません

687 :名無しさん@お腹いっぱい。 :2021/01/04(月) 10:58:43.49 ID:oUrkyjqVd.net
ノートPC使うときは極力マウス操作したくないから
ブラウザはvimiumでキーボード操作
カーソル移動はahkにしてる

688 :名無しさん@お腹いっぱい。 :2021/01/04(月) 12:21:38.26 ID:URVFoxoT0.net
質問です 既に定義されてるホットキーを一時的に別の操作を割り当てたいです
例えばお絵かきソフトで、描画のペンツールは常用のホットキーを使い、範囲選択のときだけ変えるような
でそういう別系統操作にしたいときGUI出して「それが出てるときは分岐」みたく出来るかなとイメージしてるのですが難しいでしょうか

689 :名無しさん@お腹いっぱい。 :2021/01/04(月) 12:31:35.84 ID:gy/No/Q70.net
>>688
ちょっとわかりにくいので具体例を書いて欲しい。

690 :名無しさん@お腹いっぱい。 :2021/01/04(月) 12:55:20.17 ID:URVFoxoT0.net
ああすみません
つまり言わば母艦のように使っている元ホットキー群があって、そこにはすでにズラズラとプログラムしてあるわけです
で継ぎ足し建築のごとく、違う系統の操作系をパカッとかぶせるように(使う時だけ乗っ取るように)できないかなと
同じキーから別の挙動を引き出したいとき、定義済なキーをもう一度定義しようとするとエラーが出ますが、それをなるべく母艦スクリプトに手を入れないでやりたいのです

691 :名無しさん@お腹いっぱい。 :2021/01/04(月) 13:35:54.88 ID:iY+oM+L60.net
パカッと切り替えの判定分をコードで書けるなら #if で分岐
今あるスクリプトに手を加えたくないのなら
母艦?の方をSuspend して別ファイルのスクリプト立ち上げるスイッチスクリプトを作るとか

692 :名無しさん@お腹いっぱい。 :2021/01/04(月) 13:45:24.42 ID:URVFoxoT0.net
ありがとうございます! suspendで最初に走ってるほうを止めるやり方は知らなかったのでこれでスッキリいける気がします トライしてみますm(_ _)m

693 :名無しさん@お腹いっぱい。 :2021/01/05(火) 04:36:14.39 ID:UEOV8C1c0.net
>>684
今マウスジェスチャでタブ移動してるけどそれが面倒だから右クリ&チルトでもタブ移動出来たらなーっていう感じだったんだけどね
右クリックを使うとやっぱり右クリに影響が出るから他のボタン使わないとなあって感じなんだね
ただチルトと組み合わせやすいボタンって右左クリック以外にないからやっぱりジェスチャで我慢しかなさそうだね

694 :名無しさん@お腹いっぱい。 :2021/01/05(火) 04:59:13.00 ID:xt/cbHPx0.net
; Smart Wheelup
MouseGetPos, x, y
if(y>80)
Send,{WheelUp}
else
Send,^+{Tab}
とかやれば良いんだよ
縦スクロールバー付近なら縦スクロール
ウィンドウ下部付近なら横スクロール
とか好き勝手できる

他にもカーソル位置見て挙動を変えるというのは
モニタを9分割して起動するランチャの種類を変えるという
メタランチャ的な使い方もできる

695 :名無しさん@お腹いっぱい。 :2021/01/05(火) 05:08:30.40 ID:Dx3N9bS60.net
>>693
多ボタンマウス買えば?
俺はG600に普通のXButton1・2の他F13〜F24を割り当てて、各サイドボタン押しながらホイール上下で
タブ移動、AltTab/ShiftAltTab、Home/End、PgUp/PgDown、拡大/縮小、VolUp/VolDown
などを割り当ててる
サイド12ボタンほどじゃなくてもサイド6ボタンくらいでもahkと組み合わせれば工夫次第で数多くのアクションを
割り当てることができる

696 :名無しさん@お腹いっぱい。 :2021/01/07(木) 07:36:18.22 ID:5TUvRG8D0.net
firefoxでctr+bを無効にしたいのですが、どう書くといいんでしょうか?
ctrl+Bではエラーどす(´・ω・`)

697 :名無しさん@お腹いっぱい。 :2021/01/07(木) 07:56:35.01 ID:Fd0s5Uw30.net
さすがにWiki読んでと

698 :名無しさん@お腹いっぱい。 :2021/01/07(木) 12:00:18.40 ID:5TUvRG8D0.net
わからなかったので

699 :名無しさん@お腹いっぱい。 :2021/01/07(木) 12:06:35.50 ID:pK5GPamn0.net
わかるまで 何度でも

700 :名無しさん@お腹いっぱい。 :2021/01/07(木) 13:01:13.22 ID:s4M5NUBTM.net
しょうがないなあ
http://ahkwiki.net/Hotkeys#.E3.82.AD.E3.83.BC.E3.81.AE.E7.84.A1.E5.8A.B9.E5.8C.96

701 :名無しさん@お腹いっぱい。 :2021/01/07(木) 13:06:06.47 ID:5TUvRG8D0.net
^b ::Return
これでエラーになるんどすが、、、(´・ω・`)、、、

702 :名無しさん@お腹いっぱい。 :2021/01/07(木) 13:09:55.01 ID:KHOLJOG40.net
bの後に空白があるからじゃね?
それだと ctrl+b が全てで無効になるけどいいのか?

703 :名無しさん@お腹いっぱい。 :2021/01/07(木) 16:37:33.16 ID:SPF2OWw40.net
F13以降のキーってどこに割り当ててる?
他のソフトでAHKでF13以降に設定したキーを割り当てたい時に、毎回ChangeKeyでキー1つ犠牲にして送らないといけないのかな
SHIFT+ファンクションでFで13以降とか出来たらいいんだけど

704 :名無しさん@お腹いっぱい。 :2021/01/07(木) 16:54:45.05 ID:1jWYevw/0.net
>>703
多ボタンマウスやプログラマブルキーボード
SHIFT+ファンクションは直接そこにAHKで機能割り当てすりゃいいだけだからF13とか要らないだろ

705 :名無しさん@お腹いっぱい。 :2021/01/07(木) 17:26:04.27 ID:5TUvRG8D0.net
^b::<+b
これでlshiftに置き換えされないのはなぜですかね?
>>702
できたどす

706 :名無しさん@お腹いっぱい。 :2021/01/07(木) 17:41:27.14 ID:1jWYevw/0.net
>>705
それだとCtrl+Shift+bが送られるから
Shift+bに置き換えたいなら Send を省かず書きな
あとSendするコマンドには < は要らない

707 :名無しさん@お腹いっぱい。 :2021/01/07(木) 20:01:22.20 ID:5TUvRG8D0.net
どうも
SENDというのを使ってみましたが、動きませんね、、、
^b::Send,{^}{+}
これでshiftとctrlということですよね?

708 :名無しさん@お腹いっぱい。 :2021/01/07(木) 20:14:34.01 ID:Pyfo9vjd0.net
ちがいます

709 :名無しさん@お腹いっぱい。 :2021/01/07(木) 20:16:20.51 ID:Fd0s5Uw30.net
>>707
Wiki読んでと… 明らかに読み込みが足りない質問ばかりだよ
もしくは、他にどんなサイトをググったの?ググっても載ってないなんてことはないでしょう
ついでに>>705の「できた」は>>702の↓が、まだ解決できてないと思うよ
>ctrl+b が全てで無効になるけどいいのか?
firefox以外でもctr+bが効かなくなってない?せめてそこまで確認してどうすれば…くらいじゃないと

710 :名無しさん@お腹いっぱい。 :2021/01/07(木) 20:37:53.96 ID:0Z8NGgPJ0.net
wiki読んでこれが出来ないならAutoHotKeyというかスクリプトは向いてないな
というより本当に読んでんのかってレベルだが
使用例に似たようなの書いてあるのに出来ないって……

711 :名無しさん@お腹いっぱい。 :2021/01/07(木) 20:42:58.14 ID:KHOLJOG40.net
おじいちゃんなんだから
真面目に取り合わないで
適当に付き合ってやればいい

712 :名無しさん@お腹いっぱい。 :2021/01/07(木) 23:02:24.37 ID:SPF2OWw40.net
>>704
書き方が悪かった 例えばマウスのボタンに「Ctrl+Wした後にEsc」みたいなキーを割り当てたいとして、
AHKでF13にそれを割り当てた後、マウスのソフトでF13を割り当てる必要が出てくるだろ?
その時にChangekeyみたいので一旦F13をどっかのキーに割り当てといて、F13を送信する必要があるわけじゃん
そうやって色んなものを追加していって(今だとプログラマブルキーボードとかRev o mateとかに割り当てたくて)
F18とかF19とか使ってるんだけど、それを毎回insertキーとかをF17に割当→再起動→ソフトでF17キーを送信→また戻すっていうこの所作が面倒だから、
F13〜F21とかをSHIFTファンクションで出せたりするとchangekeyで割当の度に再起動しなくて済むからいいよっていう話
俺はすごい非効率なやり方してる気がするからみんなならもっと良いやり方があるんだろうなと思って聞いただけ

713 :名無しさん@お腹いっぱい。 :2021/01/07(木) 23:13:46.21 ID:KHOLJOG40.net
a::send,{F13}
b::send,{F14}
みたいなのを作っといて割り当てるときだけ起動すればいいだろ

714 :名無しさん@お腹いっぱい。 :2021/01/07(木) 23:15:57.02 ID:eHP+CpmG0.net
>>712
Changekeyじゃなくて、AHKで
RAlt::f13
とかやっておいて、登録できないの?
strokeitではそれで登録できたけど

715 :名無しさん@お腹いっぱい。 :2021/01/07(木) 23:19:10.66 ID:1jWYevw/0.net
>>712
マウスのユーティリティソフトなどにF13以降を割りあてる時はFスクリーンキーボードというフリーのソフトキーボード使ってる
とりあえずロジクールのLGSはこれ使ってF13〜F24割り当て可能

716 :名無しさん@お腹いっぱい。 :2021/01/07(木) 23:24:39.53 ID:1jWYevw/0.net
>>713-714
各ハードのユーティリティソフトにもよるだろうけどLGSではその方法は無理
AHKを管理者権限で実行してもLGSにF13〜F24を送ることはできず、押した元のキーそのまま入力される
なのでソフトキーボードからF13を入力してる
>>712が使ってるソフトでどうだかは分からないけどね

717 :名無しさん@お腹いっぱい。 :2021/01/08(金) 02:24:54.86 ID:j3YkFqUR0.net
>>716
ほんっっとにありがとう
正にこういうソフトを探してた。言う通りハードキーボードからだとAHKで指定しても物理キーの方が送信されちゃうから困ってた
このソフトならF13以降も出せそうですごい便利だ ほんと助かった

718 :名無しさん@お腹いっぱい。 :2021/01/08(金) 02:31:47.15 ID:Ydeng18x0.net
昔の記憶だから不確かかも知れないけど Sleep 挟めば AHK でもいけたはず。(Up/Down を分ける必要があったかは覚えてない)

F1::
Sleep 1000
Send {F20 Down}
Sleep 1000
Send {F20 Up}
Return

719 :名無しさん@お腹いっぱい。 :2021/01/08(金) 02:40:38.16 ID:Zb/ZORju0.net
>>718
いやそう言う問題ではないから
一応今それ試したけどLGSに入力されるのはF1のみでF20は入力されない
弾かれるかどうかはソフトによりけり

720 :名無しさん@お腹いっぱい。 :2021/01/08(金) 02:49:24.35 ID:Ydeng18x0.net
そうか。昔使ってた時はそれで設定してたんだけど、今のLGSではだめなのね

721 :名無しさん@お腹いっぱい。 :2021/01/08(金) 03:03:18.82 ID:Zb/ZORju0.net
>>720
昔から使ってるけど同じだよ
何か別のソフトと記憶違いしてんだろう

722 :名無しさん@お腹いっぱい。 :2021/01/08(金) 03:27:36.61 ID:Ydeng18x0.net
うーん、99%LGS だったと思うけど SetPoint の可能性も排除出来ないな。LGS を使ってたのは初代 G403 が発売された頃だから 2016 年頃か
自分自身の記憶が確かなのか興味が出てきたから、仮想環境だけどちょっと検証してみるわ。ありがとう

723 :名無しさん@お腹いっぱい。 :2021/01/08(金) 05:31:51.87 ID:Ydeng18x0.net
結論を述べると、当時俺が参考にしたスクリプトが見つかったので検証する必要はなかった(検証したけど)
https://gist.github.com/ryantheleach/2017fa84169f75926913c5c659da462f

動かなかった理由は設定の仕方が特殊だったのをすっかり忘れてた事
上の github のスクリプトに書いてあるけど、>>718 のスクリプトで実際に設定するには、F1 キーを押しながら LGS のクリアボタンを押す必要があった
この方法で LGS_9.02.65_x64_Logitech.exe + AHKx64 1.1.33.02 + Win10 20H2 19042.685 にて実際に設定出来る事を確認した

724 :名無しさん@お腹いっぱい。 :2021/01/08(金) 09:04:45.47 ID:CHJeHMGT0.net
wikiのどのあたりですか?

725 :名無しさん@お腹いっぱい。 :2021/01/08(金) 09:44:20.54 ID:EN4PbPQW0.net
>>723
横からだけど
フックの優先順位をその方法で対策しているんだね
簡単な記述で済むところがいいわー

726 :名無しさん@お腹いっぱい。 :2021/01/08(金) 10:52:39.20 ID:m09ym9E+0.net
というか物理キーを押すからそちらが認識されてしまうわけで
AHKからのF13〜F20が認識されないわけじゃないんだよね?
GUIでF13〜F20ボタン作るとか(>715のFスクリーンキーボードかまさにそれだけど)
なんならMsgboxで「OKを押すとF13を送信します」とかでもいけるのでは

727 :名無しさん@お腹いっぱい。 :2021/01/08(金) 12:05:01.05 ID:ba4WGSbD0.net
>>712
改行が多いといわれたので、その1

・ahkが対応していないマウスボタンを使いたい
・マウス付属のユーティリティでは使いたいボタンにF13〜F24が割り当てできない
・・・という条件だと解釈

1.マウス付属のユーティリティで使いたいボタンにほぼ使い道の無い「scroll lock」を割り当てる(一度割り当てたら変更しない)
2.ahkで「scroll lock」にやりたい操作を記述する ※
※:一つのボタンで複数の操作したいからフラグを利用して切り分ける(例として2通り)

;shift+F1で操作1が出来るようになる
+F1::sousa:=1
;shift+F2で操作2が出来るようになる
+F2::sousa:=2

728 :名無しさん@お腹いっぱい。 :2021/01/08(金) 12:05:43.31 ID:ba4WGSbD0.net
その2

;Switch で切り分ける方法
scrolllock::
 Switch sousa {
  Case 1:
   msgbox, 操作 1
  Case 2:
   msgbox, 操作 2
 }
return

;#IF使う方法
#IF (sousa=1)
scrolllock::msgbox, 操作 1
#IF (sousa=2)
scrolllock::msgbox, 操作 2
#IF

条件とかやりたいこととか違ってたらスマン

729 :名無しさん@お腹いっぱい。 :2021/01/08(金) 12:20:52.44 ID:CHJeHMGT0.net
特定のブラウザを除外するにはですか?

730 :名無しさん@お腹いっぱい。 :2021/01/08(金) 15:34:35.98 ID:Zb/ZORju0.net
>>726
いや>>723のやり方は”F1キーを押しながらクリアボタン押す”というのが肝みたい
LGSは後から押したキーが入力されるから普通のキーなら先にF1を認識した後でもF2を押せばそのままF2が入力される
けど>>718のスクリプトはF1を押しっぱなしにしなかった場合F1押して離した直後1秒以内にクリアを押してもF20は弾かれてしまう
原理は分からないけど>>725の言うように押しっぱなしにしておくことでフックの優先順位とかが変わるのかもしれない
だからMsgBoxなどでF13〜F24を送信してもやはり弾かれる

731 :名無しさん@お腹いっぱい。 :2021/01/08(金) 16:28:10.64 ID:CHJeHMGT0.net
http://did2.blog64.fc2.com/blog-entry-438.html
特定ブラウザのみで動作させるには?このリファレンスはどこにありますですか?

732 :名無しさん@お腹いっぱい。 :2021/01/08(金) 16:40:43.70 ID:ba4WGSbD0.net
>>731
wiki行ってページ右上に検索欄あるからそこに知りたい語句(単語)入れてenter

733 :名無しさん@お腹いっぱい。 :2021/01/08(金) 16:44:47.35 ID:cTBm37CuM.net
>>731
特定のブラウザだったら#IfWinActive,ahk_exe chrome.exe
みたいにやった方が良くない?

734 :名無しさん@お腹いっぱい。 :2021/01/08(金) 16:47:55.44 ID:JO7HrYzb0.net
http://hissi.org/read.php/software/20210107/NVRVdlJHOEQw.html
http://hissi.org/read.php/software/20210108/Q0hKZUhNR1Qw.html

735 :名無しさん@お腹いっぱい。 :2021/01/08(金) 16:50:27.87 ID:4dcwZ4bQ0.net
なんか呼ばれた気がした

教えて君五大要素
1. 読まない
2. 調べない
3. 試さない
4. 理解力が足りない
5. 人を利用することしか頭にない

736 :名無しさん@お腹いっぱい。 :2021/01/08(金) 18:24:42.54 ID:CHJeHMGT0.net
できたよおじさん(´・ω・`)!!
#InstallKeybdHook
#UseHook

#IfWinActive,ahk_exe firefox.exe ;firefoxがアクティブ時
^b::Return
#IfWinActive

737 :名無しさん@お腹いっぱい。 :2021/01/09(土) 01:03:54.86 ID:1O4PGmYQ0.net
>>736
出来たとか言ってるけど結局は>>733の言う通りにしてるだけ
自分がやりたい事あったら自分で調べる能力付けてくれよ次世代の子供たちのためにもね!

738 :名無しさん@お腹いっぱい。 :2021/01/12(火) 12:38:47.02 ID:DFkrzbZH0.net
自分でも何を言ってるか分からないのでエスパーの人だけ聞いてほしい
パソコンを新しくしておそらくインストールした?もしくは予めあったソフトを使った?
ので(この時点で謎)起動はできてるんですが、プログラムを書くファイルが見当たりません

スタートアップ時に起動してるのでファイル場所を探したらデスクトップにあることを確認。
通常プログラム各ファイルも一緒にあるはずなんだけど見当たらず。

一体どこにプログラムを書くファイルがあるのか確認できる方法ってありますか?
もしくは新しく作るとか可能でしょうか?

739 :名無しさん@お腹いっぱい。 :2021/01/12(火) 12:48:18.89 ID:uKyB67AU0.net
すべてがFになる

740 :名無しさん@お腹いっぱい。 :2021/01/12(火) 13:00:11.75 ID:r9pfl9S30.net
>>738
リレーショナルウェブブラウザにログインブートリモートバイアスをダブルクリックして
さかまくエクスプローリングが七つ目のアイコンからインストールされるHDMIを
Ctrlを押しながら黒体輻射の色収差にINすれば確認できるはず

自分でも何を言ってるかわからないのでよかったら試してみて

741 :名無しさん@お腹いっぱい。 :2021/01/12(火) 13:19:01.40 ID:rjTnRJ7J0.net
>>738
>プログラムを書くファイル
これをメモ帳としよう。プログラム書けるし
であれば、Win+Rでファイル名を指定して実行を呼び出してnotepadと入力→Enter
これで起動できる。どこにあるかと言うのなら、OSによって違うのかもしれないが
Windowsの中のSystem32フォルダの中

742 :名無しさん@お腹いっぱい。 :2021/01/12(火) 13:19:49.54 ID:DFkrzbZH0.net
面倒なので新しくインストールし直しました
ただ、アイコンが緑じゃなく編集用のになりました

目的の動きができてるので良しとします

743 :名無しさん@お腹いっぱい。 :2021/01/12(火) 13:22:44.87 ID:DFkrzbZH0.net
>>741
アイコンだけデスクトップにあり、編集できるahkファイルは他の場所にありました。
おそらくアイコンをクリックして起動させる、もしくはスタートアップに登録する目的で
移動したものと思われます。(推測(謎))

744 :名無しさん@お腹いっぱい。 :2021/01/12(火) 14:23:27.63 ID:fS3du+5E0.net
Autohotkey.exeのショートカットとahkファイルてことでしょ

編集できるAHKファイルはどこの場所だろうと好きに作って関連付け実行して構わんのだけど
autohotkey.exe直起動で読みにいくAutohotkey.ahkはマイドキュメントの中にあるよ(デフォルト)

745 :名無しさん@お腹いっぱい。 :2021/01/16(土) 12:00:39.38 ID:f6kw9r5T0.net
AHKで作ったGUIのタスクバーが明るすぎて、
常時最前面表示ではダークテーマUIのアプリとの相性がすこぶる悪い。
タスクバーを非表示か色を変えられないかWinSet, ExStyle, を試してみたんだけど、
自分の環境ではウインドウスタイルの設定が上手く機能してくれない。
困ったな。

746 :名無しさん@お腹いっぱい。 :2021/01/16(土) 19:32:19.17 ID:A4IAZzI80.net
+ToolWindowでタスクバーに非表示にできなかったっけ?

747 :名無しさん@お腹いっぱい。 :2021/01/16(土) 20:02:41.26 ID:AIL+5sWH0.net
>>745
自前GUIの話ならリファレンスの「GUI」項を参照すれば良いんでない?

748 :名無しさん@お腹いっぱい。 :2021/01/16(土) 20:17:33.05 ID:AIL+5sWH0.net
>>747
あ、何か違う話だったみたいOTZ

749 :名無しさん@お腹いっぱい。 :2021/01/16(土) 20:23:16.34 ID:f6kw9r5T0.net
英/米それぞれのGUI ウインドウスタイルの項を読んで目当てに近いスタイルで試してみたけれど、
(0x00400000 二重境界を持ち、タイトルを持たないウィンドウを作成します。)
WinSet, ExStyle, 0x00400000, [ウィンドウタイトル名] ではなぜかウィンドウの内容が左右反転のレイアウトになってしまった。
+ToolWindowは不勉強だったので、もうちょっと調べてみます。

750 :名無しさん@お腹いっぱい。 :2021/01/16(土) 21:24:41.03 ID:AIL+5sWH0.net
何回も申し訳…
OSのタスクバーを消したいならWinHide(表示はWinShow)で出来る
自前のタスクバーの色など変更させるならGUIコマンドで部分的に変更するとかGUI自体を作り直すとか出来そうだけれど、
オレ環で確かめていないので間違ってるかも
そもそもの質問に対する答えじゃない可能性もあるので悪しからず

751 :名無しさん@お腹いっぱい。 :2021/01/16(土) 22:01:26.34 ID:eaq4/nF/0.net
まずはタスクバーなのかタイトルバーなのかはっきりしてくれ

752 :名無しさん@お腹いっぱい。 :2021/01/17(日) 04:54:29.33 ID:7WqaM6Yh0.net
あらら…タイトルバーの話だったのか、分からんかったOTZ
やっぱ私日本語理解できない日本人違うのかもよね

私のレス全部削除してもらいたい(;_;)

753 :名無しさん@お腹いっぱい。 :2021/01/17(日) 06:49:45.51 ID:oI4qwr5b0.net
>>752
そんな気にすんなよ
元気だせ😘

754 :名無しさん@お腹いっぱい。 :2021/01/17(日) 14:18:23.31 ID:p7Uj5Bfi0.net
いやごめん質問者が何を想定してタスクバー言ってるのかわからないので
タスクバーていうのは画面下にあるOSのアレのみに対する呼称で個別Window内には存在しない
真にタスクバーの話ならバー内に表示されてる起動中アプリタスクの部分かなと思うけど
そんなところ特定のアプリだけ背景色が変わるとも考えづらいし

アプリ毎のタイトルバーの話ならうちの環境だとAhk GUIでも個人用設定で指定したアクセントカラーになってる
https://f.easyuploader.app/eu-prd/upload/20210117141438_594f47464c48554977666b6459354a51.png

755 :名無しさん@お腹いっぱい。 :2021/01/20(水) 22:04:24.24 ID:GN2xdmHE0.net
2、3日前から AutoHotKey に初めて取り組み、全く初歩的なことでいろいろ躓いている。
選択部分をクリップボードに取り込んでユーザーが編集し、それを sword に格納したい
が、次のようなエラーメッセージが出て全く次に進められない。
なんでダメなのかさっぱり見当つかないので、誰かアドバイスよろ。
環境は Windows 10 Home x64、AutoHotKey ver.1.1.33.02 U64

A control's variable must be global or static.

Specifically: vsword

---> 045: GUI, Add, Edit, W300 vsword, %Clipboard%

756 :名無しさん@お腹いっぱい。 :2021/01/20(水) 22:08:23.24 ID:PwjG97ci0.net
>>755
まず自分が書いたスクリプトを貼りましょう

757 :名無しさん@お腹いっぱい。 :2021/01/20(水) 22:45:30.55 ID:GN2xdmHE0.net
SearchBox()
{
sword := ""

backup := ClipboardAll
Clipboard = ; クリップボードをクリア
Send, ^c
ClipWait
;GUIウインドウを生成して表示
GUI, Add, Edit, W300 vsword, %Clipboard%
/*
GUI, Add, Button, y+10 Default, Google
GUI, Add, Button, x+5 GtoEnglish, 英語に翻訳
GUI, Add, Button, x+5 GtoJapanese , 日本語に翻訳
GUI, Add, Button, x+5 Gclose, キャンセル
GUI, Show, , 検索・翻訳アプリ
*/
MsgBox,,, %sword%
Clipboard := backup
Return

・・・ 以下略
ネットで拾ったものに手を加えたものだが、コメントアウトの部分は
DropDownリストで検索エンジンを選択するように変更予定。

758 :名無しさん@お腹いっぱい。 :2021/01/20(水) 22:51:09.46 ID:jzH6Gmk80.net
エラーメッセージというのは、エラーの理由が書いてあるんですよ

759 :名無しさん@お腹いっぱい。 :2021/01/21(木) 11:13:40.45 ID:0sJSzMmp0.net
>>757

https://pastebin.pl/view/6830562e

閉じるボタンやESCでGUI閉じられるから、キャンセルボタン要らない気が

760 :名無しさん@お腹いっぱい。:2021/01/21(木) 12:56:50.54 ID:w37ZvrF3b
QTranslateのほうがいいんじゃない?
OCRもdeeplも辞書とかwikiも検索できるし。グローバルホットキーに割り当ててるけどどこ言っても羨ましがられるw

761 :名無しさん@お腹いっぱい。 :2021/01/26(火) 21:10:09.19 ID:/EKj08pC0.net
ctrl + 1でwin + 1と同じ動きをさせたいです。

^1::#1
のようにしていますが、対象のウィンドウが複数ある場合、
wn + 1の場合はwinを押しながら1を押下するごとにウィンドウをサムネイル表示しながら切り替えることができますが、
ctrl + 1の場合、最初のウィンドウにしか切り替えることができません。

win + 1の動作をさせることはできないでしょうか?

762 :名無しさん@お腹いっぱい。 :2021/01/28(木) 01:19:40.58 ID:iRfV16Ae0.net
昔挑戦したけどここで力尽きた(似て非なる挙動でボツ)
Send, {LWin Down}
Send, 1
KeyWait, Ctrl
While (!GetKeyState("Ctrl", "P")) {
If (GetKeyState("1", "P")) {
Send, 1
KeyWait, 1
}
}
Send, {LWin Up}

763 :名無しさん@お腹いっぱい。 :2021/01/31(日) 04:01:27.43 ID:zo4uHj1v0.net
一般化して
アクティブウィンドウと同一のアプリケーションを列挙して
Zが一番下のものをアクティブにする
でいいんじゃね
んで
^1ならExplorerをアクティブにしてからローテーションする
^2ならNotepadをアクティブにしてからローテーションする

764 :名無しさん@お腹いっぱい。:2021/02/08(月) 17:19:18.21 ID:H2o61sXx3
shift押しながら画面下端にカーソルを移動すると○○する。

という挙動を実現したいのですがアドバイスお願いします。
ウィンドウ操作系のXY軸とかを組み合わせるのでしょうか?

765 :名無しさん@お腹いっぱい。 :2021/03/01(月) 18:17:04.75 ID:o09yN/TL0.net
v1.1.33.03 - March 1, 2021

●Changes & New Features | AutoHotkey
https://www.autohotkey.com/docs/AHKL_ChangeLog.htm

766 :名無しさん@お腹いっぱい。 :2021/03/01(月) 20:32:10.02 ID:dRJQpAJZ0.net
>>765
アップデートしたら「alt::return」が効かなくなった
そのせいかaltに割り当てたホットキーが動かなくなったー、マジかよ

767 :名無しさん@お腹いっぱい。 :2021/03/01(月) 20:51:06.16 ID:Qq9Ghx860.net
別にLかRをつければ良いだけのような
return表記はそもそも非推奨だし

768 :名無しさん@お腹いっぱい。 :2021/03/01(月) 21:46:07.46 ID:2g/EhfFK0.net
return表記が非推奨な件は初耳

769 :名無しさん@お腹いっぱい。 :2021/03/01(月) 21:58:23.87 ID:Qq9Ghx860.net
ドキュメントに思いっきり書いてあるよ
https://www.autohotkey.com/docs/KeyList.htm
return命令の誤爆防止なんだろうけど

770 :名無しさん@お腹いっぱい。 :2021/03/01(月) 22:11:47.19 ID:dRJQpAJZ0.net
重大なバグがあったのか分からんけど現在 v1.1.33.03 が落とせなくなってるね

>>767,769
リンク先の説明
>Deprecated: Use the synonym Enter instead to reduce ambiguity.
はキーリマップする時の表記を「return」じゃなく「Enter」にしろって事言ってるように読めるんだがな
で、>>766の「alt::return」はaltキーの本来の機能を無効にするという意味なんだわ

771 :名無しさん@お腹いっぱい。 :2021/03/01(月) 22:16:26.19 ID:8rcF7UBc0.net
昔は「リターンキー」って呼び名の方が一般的だったよな
いつの頃からか「エンターキー」が一般的になったけど

772 :名無しさん@お腹いっぱい。 :2021/03/01(月) 23:00:04.93 ID:iZ7+hNDYa.net
ほんとだ
落とそうとすると02が落ちてくるように戻ってる

773 :名無しさん@お腹いっぱい。 :2021/03/02(火) 15:25:41.98 ID:onxm9FcE0.net
「リターンキーはReturnコマンドで使用されているため、Enterと表記せよ」てことやね

774 :名無しさん@お腹いっぱい。 :2021/03/02(火) 18:35:45.45 ID:KF2LCL+O0.net
v1.1.33.04 - March 2, 2021

Removed dependency on the POPCNT instruction, which is not supported by old CPUs (e.g. Core 2).

●Changes & New Features | AutoHotkey
https://www.autohotkey.com/docs/AHKL_ChangeLog.htm

775 :名無しさん@お腹いっぱい。 :2021/03/02(火) 23:20:49.48 ID:rbnyNyoO0.net
v1.1.33.03 の修正点
>Fixed several issues with overlapping hotkeys.(以下に書かれてる詳細略)
このせいなのか?修飾キー(shift,alt,ctrl)の2度押しが動かなくなった
wikiサンプル集の「1つのキーに3種類以上の動作割り当て」スクリプトとv1.1.33.04で確認

なんか俺しかこういうこと言わないから"オレ環"なんだろうか…だとしたらスクリプト見直して書き換え必要かも(´・ω・`)

776 :名無しさん@お腹いっぱい。 :2021/03/03(水) 17:40:45.34 ID:kbQiiwSk00303.net
>俺しかこういうこと言わないから
色々ありそうだからまだ様子見でアプデしてない説
俺はそう

777 :名無しさん@お腹いっぱい。 :2021/03/07(日) 13:11:44.64 ID:eHXakKsj0.net
取り込んである画像を探すimageserchではなく、
画面内の指定範囲内に同じパターンの画像が複数出てきたら座標を取り込む機能とかってあるのでしょうか?
具体的な使用例としては○○はどれか系のテストを突破するのに使う予定です
数種類画像が合計30個ほど一度に出てくるのですがそれぞれの画像自体は全く同じものなのでパターンみたいなのを認識出来たら突破できそうなので

778 :名無しさん@お腹いっぱい。 :2021/03/07(日) 13:40:09.26 ID:k34dgWZ/0.net
設問のテキスト側が変化することはないの?

779 :名無しさん@お腹いっぱい。 :2021/03/07(日) 14:18:44.71 ID:eHXakKsj0.net
>>778
すみません説明不足でした。
仰る通り設問は毎回変わって、元になっている画像の種類自体は膨大ですので、
画像と設問をキャプチャしてセットで検索するのはできなくはないけど。。。といった感じです。

しかし、テストの設問に設定される画像は必ず30個の中で一番数が少ないもののようです。
例として30個中6種類あるとして、 A=7, B=6, C=6, D=6, E=3, F=2 答えはF このような感じです。
なのでアルゴリズムとしてはすべての画像から最も少ない画像パターンを探してその座標を取るという動作になると思われます。

780 :名無しさん@お腹いっぱい。 :2021/03/10(水) 07:45:09.75 ID:w+gLJiSr0.net
1.1.33.05

781 :名無しさん@お腹いっぱい。 :2021/03/10(水) 08:03:41.40 ID:BgtorH6Z0.net
4月ぐらいになるまでアップデートは様子見だな

782 :名無しさん@お腹いっぱい。 :2021/03/10(水) 12:55:09.63 ID:puL09+6T0.net
v1.1.33.05で>>766>>775が元通り使えるようになったからオレはこの版で様子見だな

783 :名無しさん@お腹いっぱい。 :2021/03/13(土) 11:21:47.73 ID:2gm7+s9L0.net
F1:: Reloadとした場合にリロードされるのはAutoHotkey.ahkだけなのでしょうか?
複数のスクリプトが起動してる時に全てリロードさせる方法はありませんか?

784 :名無しさん@お腹いっぱい。 :2021/03/13(土) 11:39:50.00 ID:BwBPiAwP0.net
>>783
そのAutoHotkey.ahkからrunで実行しているahkが
#SingleInstance,force
なら良いんじゃないかな

785 :名無しさん@お腹いっぱい。:2022/09/05(月) 08:22:49.57 ID:Yy+HjqN1i
まじで上の部屋のキチガイ騒音主ってsyamuと同レベルかそれ以下の精神構造幼稚の自己中やな
何もかも自己中心的で反省もしない学習能力ゼロ精神構造が極端に幼く能力もない無産のくせに無駄にプライドは高く威張ってて性欲だけは一人前
なんで俺はこんな大凶を隣人ガチャで引いてしまうんだ…
こんなのがリードもつけられず外で野放しになってるとか恐怖でしかないね

いやほんとマジで自己中で学習能力なくて幼稚で短足デブで無能のくせに威張り散らしてて性欲だけは一丁前の糞猿モンスターは人間の住むところに来ないでくれ
こっちはお前なんてこれっぽっちも興味ねえっての
人に迷惑かけずに一人で死ねゴミ

786 :名無しさん@お腹いっぱい。:2023/08/24(木) 14:24:21.82 ID:9um2NUPYo
ヘタレチキンジャップが都心まで数珠つなき゛で私権侵害されてヱネ価格暴騰に気候変動に災害連発くらって殺されまくっていながらテ□組織
国土破壊省を焼き討ちすらしないNPCだらけなのって、ワクチンと称するナノマシンによって思考操作されてると考えるとしっくりくるよな
同じCookieになる同じ瓶のバカチン接種者を識別するために2回打ちを前提にしたあたりで気づけなかったてめえの脳弱っぷりを呪わなきゃな
巻き添え根性丸出しの北朝鮮人民の遺伝子を濃縮したようなハゲども全員、変態性癖から位置情報までエシュロンにデ−タベ━ス化されてるし
20年前の技術て゛これだし→ttps://i.imgur.Com/OpIGcrV.jpg
近距離無線通信と゛ころか、思考を読み取って映像化する技術も開發されてるし.日本に原爆落とした世界最悪のならず者国家によるスパイ
ウェア満載のスマホ経由でピンポイントでナ丿マシンは制御可能なわけだが、白々しく何度も打たせてみたり,打った直後に死亡したり
ここ数年、接種率に比例して心不全による死亡者数が爆増してるし、氣か゛狂った犯罪も急増してるし、結構バク゛ハ゛グな感じでニ重にご愁傷様な
[羽田)ttps://www.сall4.jp/info.phр?tУpe=items&id〓I0000062 , ttps://haneda-ΡrojecТ.jimdofrеe.com/
(成田)tтps://n-souonhigaisosyoudan.amebaownd.com/
(テ口組織)tтps://i.imgur.com/hnli1ga.jРеg

総レス数 786
295 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★