探検


AutoHotkey スレッド part28

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

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

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

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

■派生版
IronAhk (.NET製、クロスプラットフォーム)
https://github.com/polyethene/IronAHK
AutoHotkey.dll (真のマルチスレッド対応など, AHKLの派生)
http://www.autohotkey.com/board/topic/39588-autohotkeydll/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2020/09/12(土) 18:14:30.04ID:I8w0giUO0
>>414
すまんKeyWaitは連続でTab押したいときダメだったな
vk1D & f::
send,{Ctrl Down}
send,{Blind}{Tab}
Return

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

これなら行けんじゃね?
2020/09/12(土) 19:37:06.09ID:Z7QY2LvR0
>>415
ありがとうございました!
417名無しさん@お腹いっぱい。 (アウアウオーT Sa12-9YDN)
垢版 |
2020/09/12(土) 20:34:07.29ID:rBhzcfbaa
AHKからスクリーンセーバーを起動したいのですが
Run, "C:\Windows\System32\ssText3d.scr" /s
のように書くと、何故かファイルが存在しないというエラーが出ます
エクスプローラから見るとちゃんとファイルはありますし
コマンドラインから
"C:\Windows\System32\ssText3d.scr" /s
と入力したらちゃんとスクリーンセーバーが起動します
どうすればAHKからスクリーンセーバーを起動できるのでしょうか?
2020/09/12(土) 20:46:53.67ID:6fTrh62k0
%comspec% /c
2020/09/12(土) 21:00:14.31ID:4W6E5sSV0
>>417
その2行目コピーして実行したらエラーなく起動したけど
2020/09/12(土) 21:45:16.45ID:je+/x62Z0
>>417
SendMessage, 0x112, 0xF140, 0,, Program Manager
2020/09/12(土) 23:01:39.08ID:MCt0GW2X0
64bit版Windowsで32bit版AutoHotkey使ってない?
だったらSystem32じゃなくてSysnativeにすればいけるはず
Run, "C:\Windows\Sysnative\ssText3d.scr" /s
422417 (アウアウオーT Sa12-9YDN)
垢版 |
2020/09/13(日) 13:05:54.81ID:VsDdvnlFa
ご返答ありがとうございます
まさに64bit Windowsで32bitのAHKを使っていることが原因でした
ファイルシステムリダイレクタというメカニズムをはじめて知りました
ありがとうございました
2020/09/13(日) 16:29:57.61ID:HKoAmkYr0
wikiをみてて思ったんですけ#UseHookのデメリットってなんですか?
反応が早くなるのならとりあえずオンにしとけばいいんですかね?
424名無しさん@お腹いっぱい。 (ワッチョイ 89bd-jF+x)
垢版 |
2020/09/13(日) 19:35:14.15ID:BYR+nd6M0
>>423
全てのホットキーに$をつけたときと同じになる(ソフトウェア的なキーボードイベントを無視する)
これがメリットでありデメリット
個別に細かい調整がしたいなら#UseHookは書かない

メリット: $書く手間が省ける
デメリット: 個別に$なしのホットキーにできない
2020/09/13(日) 20:25:54.96ID:2su4JZVF0
#UseHookはON/OFF出来るし複数の箇所に記述することも可能
だからフックするエリアをON-OFFで囲うことでフックしないエリアと別にできる
スクリプトが長くなるとフックしてるエリアか否か分かりにくくなるかもしれない → デメリットかな?
2020/09/13(日) 20:42:26.32ID:3sOtZfCH0
>>423
俺もよく分かってないけどとりあえず#UseHook ONにして使ってるよ
2020/09/14(月) 09:19:01.24ID:pZOOkKBQ0
今のところ、ONで困ることがないからONにしてる
2020/09/16(水) 05:19:25.53ID:uM6IGn9Q0
sysgetで現在のモニターリフレッシュレートを取得したいのですが、どうにもうまくいきません。
どなたか助けて下さい。
429名無しさん@お腹いっぱい。 (ワッチョイ f776-lMKa)
垢版 |
2020/09/16(水) 10:26:38.51ID:6p38klUn0
左Alt + Ctrl で ShiftAltTab 機能するようにしているのですが
その後にAltキーを離したら、アクティブになったウィンドウに
マウスカーソルを飛ばしたいのですが、下記では上手くいきません。
どのようにしたらよいでしょうか教えて下さい、、

LAlt & Ctrl::ShiftAltTab
KeyWait, Alt
Sleep, 200
WinGetActiveStats, Title, Width, Height, X, Y
MouseMove, Width / 2, Height / 2
return
2020/09/16(水) 12:04:50.41ID:ZEJxUAhI0
>>428
sysgetにはそんな機能元から無いんじゃね

>>429
ホットキーを一行で表記したコマンドは二行目以降は実行されない(一行で完結してる)
ShiftAltTabは一行表記専用コマンドなので他の動作を追加したいなら>>415を参考に一つずつバラして書きな
2020/09/16(水) 16:18:52.64ID:uLS/Sq6S0
英字キーボードでワンキーでディスプレイ切るとしたら、どのキーに割り当てますか?
Pause?Ins?
Functionキーはなんかで使うかもしれないから避けたいです
2020/09/16(水) 18:16:32.55ID:uM6IGn9Q0
リフレッシュレートの取得ですが、海外本スレでみつけました。
おさわがせ。
VarSetCapacity(DM,156,0), NumPut(156,&DM,36, "UShort")
DllCall( "EnumDisplaySettings", UInt,0, UInt,-1, UInt,&DM )
msbox, % NumGet(DM,120)
2020/09/16(水) 19:08:18.37ID:dPBJtla40
>>429
ウィンドウ切替時のイベントをフックすればいい
ttp://sites.google.com/site/agkh6mze/howto/winevent
2020/09/17(木) 11:55:02.84ID:PwvllNHp0
windowsアップデートで以下の記述が機能しなくなってしまいました。
どうすれば機能する様になりますかね…。

;Apple_keyboard_wired
#USEHOOK
sc071 Up::Send,{vkF4}
sc072 Up::Send,{vk1D}
#USEHOOK off
2020/09/17(木) 15:54:57.20ID:4vwGVhL7a
#Includeが関数の中だとエラーだといわれて使えなくなるんですけど使えるようにする方法ってないですか?



動く
#Include %A_ScriptDir%\hoge.ahk


動かない
aaaaa()
aaaaa()
{
#Include %A_ScriptDir%\hoge.ahk
}
2020/09/17(木) 16:26:15.37ID:tO5z1xrf0
>>435
関数内でも使えなくならない
エラーになるのは別の理由

エラーの内容くらいちゃんと読みなさい
2020/09/17(木) 17:05:24.36ID:4vwGVhL7a
エラーでググってもわかりませんでした・・・
line text: findtext_Gui(cmd,arg1:="")
error.funcitons cannot contain functions.

細かく書くと
”hoge.ahk”は”FindText.ahk”というImagesearchの便利版みたいなので作るファイルですが、(”hoge.ahk”で”FindText.ahk”を呼び出して動作するようです)
原因も対処法もさっぱりです・・・
2020/09/17(木) 18:54:36.60ID:tVqWQN2B0
>>437
関数の中に関数を含むことはできません
https://www.google.co.jp/search?q=AHK%20cannot%20contain%20functions%2E
2020/09/17(木) 19:12:30.56ID:4vwGVhL7a
>>438
そうでしたか・・・
FindText.ahkはボタンを押すのに便利だと思ったけど別の方法を考えてみますありがとうございました
2020/09/17(木) 19:16:46.85ID:in4j28AM0
>>437
少なくとも再現できる最少のコード貼ってもらえないとこっちも"さっぱり"なんだが…

>line text: findtext_Gui(cmd,arg1:="")
関数の引数に「arg1:=""」のような「:=」は書けなかったような → 「arg1=""」と修正したらどうか?
動かなかったらスマンね
2020/09/17(木) 19:18:37.25ID:in4j28AM0
>>440
何かオレ頓珍漢なこと言ってたみたいね、恥ずかし(´・ω・`)
2020/09/17(木) 19:49:31.71ID:EXtdT3ICM
多分FindText.ahkで関数使ってるのにそれごと#Includeした上で関数で包もうとしてるんでしょ

hoge.ahkの#includeを外して

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

まあ自分ならaaaaa()はhoge.ahk側で関数化するけど
2020/09/17(木) 20:17:00.79ID:yCKYDmYd0
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.
2020/09/17(木) 21:34:25.52ID:in4j28AM0
>>443
どうも
そうだったのか…自分は1.1.33.02使用中だがあらためて付属の英語版ヘルプ読んでみたらそういう表記になっていた
でも中途半端だよな、スクリプトへの引数の数や内容を変数に代入する時は「=」と「:=」表記で内容変わってくるし
個人的には全て「:=」表記に統一して欲しいよ、ややこしくて仕方ない(あと「%」表記も)
2020/09/17(木) 23:26:30.53ID:NLqmKNHf0
01234567890abcdefghi・・・って文字列があったとして
n番目の位置の文字を抽出するってどうやるんですか?
2020/09/17(木) 23:32:33.20ID:tO5z1xrf0
http://ahkwiki.net/Commands_Category#str
2020/09/17(木) 23:33:31.85ID:lrp/kY8K0
>>445
autohotkey 文字列 n番目
でググると3つ目に出てきた、SubStr()を使うと良いのでは?
2020/09/17(木) 23:45:39.08ID:vGzWcsVz0
正規表現でしょうね
2020/09/18(金) 03:11:07.54ID:N7Izm2Ama
>>442

hoge.ahkの#includeを外して

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

ありがとうございました
2020/09/18(金) 14:36:49.81ID:tdDbvR3p0
>>430
>>430
アドバイスありがとうございました!
全部バラしてやってみようと思います。
451名無しさん@お腹いっぱい。 (オッペケ Srcb-olMd)
垢版 |
2020/09/19(土) 01:22:57.56ID:LPvHgbsEr
無理だとは思うのですが、エクスプローラにて、
「今現在自分がいる場所のフォルダ名をペーストする」という機能はさすがに作れないですよね…
動画制作の際、フォルダ名を付け、その中にプロジェクトファイルの雛形をコピペするのですが、その際にプロジェクトファイルにもフォルダ名と同じ名前を付けなければいけません。
今現在のフォルダ名、というか一つ上の階層名をコピーというものがあれば実現は出来そうなのですが…さすがに厳しいでしょうか?
宜しくお願い致します。
2020/09/19(土) 02:05:40.95ID:ijfcb9lz0
タイトルバーにフルパス表示する設定にしてwingettitleするか
アドレスバーからパスを取得
substrなりregexなりStrSplitなりで最右の \ から右側の文字列を取り出す
2020/09/19(土) 02:25:43.69ID:jl8WgP3W0
むしろタイトルバーにフルパス表示しない設定にしといてウィンドウタイトル取得すれば今いるフォルダ名を取得できる
2020/09/19(土) 04:45:30.29ID:u6F+ZqQE0
>>451
Explorer関連はShellオブジェクトを使うと大体解決する

選択されたファイル/フォルダまたはカレントフォルダのパスを取得
https://www.autohotkey.com/boards/viewtopic.php?style=17&;t=60403
2020/09/19(土) 15:12:47.55ID:nTmhGbnM0
>>452->>454
ありがとうございます
フォルダタイトルを取得してコピペという動作にすればいいのは分かったのですが、その書き方がどれだけ調べても分かりません

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

これ以降のフォルダタイトルを取得、クリップボードにコピー、ペーストの一連の書き方が分からず手詰まってします。
どなたか分かる方いらっしゃいますでしょうか。お願いします。
2020/09/19(土) 15:17:29.28ID:Fn8EPBHg0
>>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"
2020/09/19(土) 22:28:05.81ID:nTmhGbnM0
>>456
ありがとうございます。
ただ本当に分からなくて申し訳ないのですが、このレジストリ登録の記述は、vbsでは無いのでしょうか?
.vbsで記述して実行してもエラーが出るので…。申し訳有りませんがご教授いただけるとありがたいです。
2020/09/19(土) 22:48:36.12ID:jl8WgP3W0
>>455
エクスプローラーの設定でフルパスを表示しない(今いるフォルダ名をウィンドウタイトルにする)
WinGetActiveTitleでウィンドウタイトル=今いるフォルダ名を取得して
Clipboard = %title%
にしてファイル名にペースト
2020/09/19(土) 23:12:30.24ID:Fn8EPBHg0
>>457
AutoHotkey Script(.ahk) です

参考程度に今日の成果物おいときます
ttp://pastebin.com/raw/sNywf1Aj
2020/09/21(月) 07:25:31.36ID:r/YWuZyE0
AHKスクリプトの呼び出し用にUSBテンキー買おうかと思ってるんだけど
キーボード側のテンキーと区別して
XNUM1~XNUM9みたいに特別なキーとして振る舞ったり出来るやつないかな
2020/09/21(月) 09:59:07.93ID:YT0rcHXY0
>>460
一番簡単なのはプログラマブルテンキーやOrbweaverなど買ってF13〜F24や直接スクリプト実行を割り当て

普通のテンキーで何とかしたいならAHKHID.ahkでデバイス判別
2020/09/21(月) 10:53:21.35ID:D1yU57jf0
AHKHID.ahkはデバイス一覧取得して判別&選択用の設定部UI作ったら
汎用で使いやすくなりそうなんだけど
そこ作るのが一番面倒くさそうで放置してるわ
2020/09/21(月) 12:54:50.83ID:8BA0BlpWM
すり抜けが多発するようになったのでkeyhacに乗り換えます。
2020/09/24(木) 17:17:31.43ID:X28ILbsz0
右下ら辺にウィンドウとか出さずただ文字だけを表示する様なGUI操作をしたいのですがどうすればいいのでしょうか?
2020/09/24(木) 18:21:19.01ID:1NTOBJJR0
ahk osd とかでググるとサンプル出てくると思うが
タイトルバーや枠のないGUI作って背景を透明化
2020/09/24(木) 19:04:51.33ID:VpwFtp1l0
同じ動作を2パターンのショートカットキーに割り当てる方法は、2回同じ記述をするしかないのでしょうか?
2020/09/24(木) 19:11:29.35ID:aPeNe1Ff0
>>466
同じ動作ならまとめて書くことは出来る

F1::
F2::
Msgbox, F1またはF2が押されました
Return
2020/09/25(金) 19:40:29.19ID:R2uxAA1p0
管理者権限で起動したAutoHotkeyのEdit This Scriptは管理者権限でメモ帳が開かれてしまうのですが何か管理者権限として実行しない対策はないんですかね?
2020/09/25(金) 21:02:28.92ID:+wDzDU+n0
Menu, Tray, add, Edit_hogehoge
Return

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

メニューに別途エディットコマンド追加してRunAs
メニューの名前はお好きなように
2020/09/25(金) 22:07:12.14ID:UGj2yKOjM
>>469
やっぱり直接的な対策はないのですね…
ともあれありがとうございました。
2020/09/26(土) 00:11:33.28ID:QPxTUZHr0
>>470
余談だがメニューにエディットコマンド追加はDefaultにしておけばトレイアイコンダブルクリックでエディタ起動も出来て便利
2020/09/26(土) 00:15:07.32ID:QPxTUZHr0
>>470
あと直接的な対策って意味がよく分からんのだが
そもそもエディタが管理者起動されて困る理由は?
起動時に確認メッセージ出てきて煩わしいってならUACの設定を低くしとけばいいだけだし
むしろ俺はエディタは敢えて常に管理者権限起動してるわ
2020/09/26(土) 11:16:13.41ID:+l/xFA1QM
変換キーとタッチパッドのタップでマウスホイールボタンのタップにしたかったのですが、この記述だと変換を押しながらタッチパッドで移動したあとはMButtonが動作しません。何か対策はありますか?
変換キーはf14を割り当てています。
f14 & LButton::Send, {Blind}{MButton}
2020/09/26(土) 14:47:35.77ID:QPxTUZHr0
>>473
問題無く動くぞ
2020/09/26(土) 18:47:48.56ID:gI0ar3qsM
>>474
ありがとうございます。このコメントを見て前に使っていたパソコンで試したら普通に動作しました
新パソコン HP SPECTRE x360 13
旧パソコン NEC 法人向けパソコン (core i5 の第8世代)
両方ともwindows10でアップデートはしています
全く同じスクリプトでosも同じでも動作が変わることがあるんですね
2020/09/26(土) 19:35:37.54ID:QPxTUZHr0
>>475
動作が変わるのは必ず理由がある
そういうのをおま環と言うわけで
2020/09/26(土) 19:58:05.39ID:2y66JUT00
おま環て言葉は全てを飲み込んでて便利だけど
役には立たないな
2020/09/26(土) 20:02:44.95ID:9mJySQ+70
>>477
おま環かおま環じゃないかの切り分けは大事だろ
トラブルシューティングにおける基本中の基本
現に>>473はその切り分けすら出来ずに質問してたわけだしな
2020/09/26(土) 20:55:15.81ID:b8mjfegu0
まずは、新パソコンと旧パソコンに常駐しているソフトが全く同じなのかどうか
2020/09/26(土) 21:29:01.67ID:f4zsWHI60
すいません、お騒がせしてますね。
解決はできなかったですが、スクリプトじゃなくその他が原因だとわかったのはとてもありがたいです。
2台のパソコンは常駐ソフトは似てますが全部は同じではありません。
2020/09/27(日) 14:41:21.39ID:StjMx0SL0
タスクビューが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
2020/09/27(日) 14:49:53.29ID:StjMx0SL0
f::LWin
目当てのアプリがないならfから起動できるとなおいいな
2020/09/27(日) 15:21:40.68ID:7rVPZP7w0
Autohotkeyのアイコンを右クリックしてopenした時と同じ様な動作をするスクリプトはどうやればいいのですか?
2020/09/27(日) 16:28:31.83ID:ZLd5kCP80
>>483
専用のコマンドは無いんじゃないかな
キーボード操作をマクロ化するなら>>221
頭文字「A」の常駐アプリがトレイに複数ある場合はAを複数回押せばいい
2020/09/27(日) 16:45:19.32ID:ZLd5kCP80
今夜はRIZINか
天心がバカンサイ人皇治をボコるの楽しみだな
2020/09/27(日) 16:45:39.69ID:ZLd5kCP80
すまん誤爆った
2020/09/27(日) 17:17:45.48ID:YgR/T/tm0
>>483
ListLinesのこと?
2020/09/27(日) 17:26:55.85ID:mzMuBKWz0
>>483
ListLines

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

ListVars
KeyHistory
ListHotkeys

でそれぞれ直接指定可能
2020/09/27(日) 19:15:57.97ID:4+4A5UVO0
>>483
DetectHiddenWindows
SetTitleMatchMode
PostMessage
2020/10/02(金) 15:18:29.95ID:GM4xvjP40
トラックパッドの4本指の左右ジェスチャの仮想デスクトップの切り替えの
にゅるっとした動作の量を測って、何回振ったら何の動作するってやりたいんだけど
仮想デスクトップの切り替え中のアニメーション遷移してるパラメってどこ見ればいいんでしょ
2020/10/02(金) 16:33:04.78ID:voPv3vuf0
トラックパッドの特殊ジェスチャーはAHKであれこれするの無理じゃね
2本指スクロール程度ならキーヒストリーでも検出できてるけど
3本指左右(タスク切り替え)とか4本指左右は何も検出されないし
2020/10/12(月) 15:31:13.11ID:DEG2vDeD0
ctrl alt deleteって割り当てるの不可能?
プログラムキーボードでも割当不可だからやっぱり無理なのかね
2020/10/12(月) 16:00:57.42ID:VphcfQuD0
Send, ^!{Del} は反応しないね
でも使うのってタスクマネージャーくらいじゃね?
Run, taskmgr.exe
で起動できるからctrl+alt+delete割りあてる必要も無いんだが
494名無しさん@お腹いっぱい。 (ワッチョイ db05-IVWr)
垢版 |
2020/10/13(火) 21:15:38.19ID:WIV8aGwm0
IMEがオンの時だけ、
「x」キーと「ー」を入れ替えたい

;;☆Google Chrome
;;☆Microsoft Edge
LAlt & w::Send,^w
2020/10/13(火) 22:07:35.42ID:5Y5Xe4mA0
>>494
>IMEがオンの時だけ、「x」キーと「ー」を入れ替えたい
IME.ahk使えば実現できるんじゃないかな

下3行の意味が分からない
2020/10/14(水) 08:41:21.44ID:WcY97C4k0
>>494
全角のエックスを打てなくなりそうだけど良いの?
2020/10/16(金) 02:29:08.51ID:kB4NCdNb0
キーボードが手元にない時にマウスだけでホットキーが出来ないか試行錯誤してます
やりたいことは下記です

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

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

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

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

またマウスでのホットキー実行についてこの方法の方が便利だなどありましたら
そちらも教えていただきたいです
498名無しさん@お腹いっぱい。 (ワッチョイ 9f5a-fMdf)
垢版 |
2020/10/16(金) 02:39:14.20ID:jICo6JW00
>>497
Wikiをきちんと読もう
2020/10/16(金) 03:30:31.16ID:kB4NCdNb0
>>498
とりあえずホットキー関係とマウス関係のページは読みましたが参考になる記述は見つかりませんでした…
2020/10/16(金) 03:34:12.13ID:UZRXYnGU0
>>499
ホットキーの中に必ず書いてある
ちゃんと一行ずつ理解しながら読め
2020/10/16(金) 05:30:11.79ID:kB4NCdNb0
みつかりました
&でつなぐんですね…なるほど


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


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

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


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

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


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

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



ここまでで力つきました、どなたかアドバイスなどお願いします
2020/10/16(金) 05:39:16.59ID:QFUkX31o0
マウス操作がメインならMouseGestureLを使いなさいと
ahkのスクリプト知識がなくても大概のことができる
2020/10/16(金) 09:16:33.87ID:QGtun8kL0
マウスクリックした段階でクリック位置にフォーカス切替わるのがOS仕様なので
>502の言うようにマウスジェスチャソフト使うか
~外してXbutton12などのドラッグに影響のないボタンに割り当てる方がスマートだと思うけど
どうしても右クリトリガでやりたいなら実行前に Send !{Tab} 入れて失ったフォーカスを戻してやったらいいんじゃね
時間調整は適当にsleep入れる

けど根本的な問題としてディスプレイ設定ををミラー(複製)で使うのではあかんのか?
2020/10/16(金) 10:20:29.34ID:kB4NCdNb0
>>502
>>503
マウスジェスチャーをAHKで書くの面倒だなと思ってたんですが
書いて配布してる人がいたんですね、便利、後で試してみます

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

ありがとうございます
505名無しさん@お腹いっぱい。 (ワッチョイ eb76-T518)
垢版 |
2020/10/18(日) 00:02:18.85ID:Cg8HaPH50
以下のスクリプトについて、改善案を頂きたいです。
https://pastebin.pl/view/0c9f86a2
※PasteBinからコピペして動かしてみてください。

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

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

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

便利ではあると思いますので、ぜひ使っていただきたいという思いと共に、改善を施せればと思っております。
2020/10/18(日) 00:32:43.14ID:8B492qWs0
function内にstaticでフラグ持っときゃいいんでない?
2ストロークキーについては車輪の再開発な気がしなくもないが
2020/10/18(日) 08:49:56.58ID:IpkYdAIV0
>>505
俺が自前で2ストロークキーを実装した時は、
Input,key,L1 T10.0,{Space}
で次の1キーが押されるのを待って
if(key=="c") とか if(key=="d") で分岐してたなぁ。
2020/10/18(日) 09:08:07.38ID:LZFs63+60
>>507
{
if key = c
ほにゃ
ふが
}else{
じゃあかんの?昔の.ahkにそんな書き方してあるけど

マルチストロークもあった気がするけどどこだろう……
2020/10/18(日) 11:56:02.54ID:tErQ0Iyy0
>>505
自分ならこういじるかな
ttp://pastebin.pl/view/raw/c743ddba
2020/10/18(日) 14:38:25.01ID:tErQ0Iyy0
>>509は、なんかいろいろとおかしいのでスルーしてください。<(_ _*)>
511名無しさん@お腹いっぱい。 (ワッチョイ 8230-8DiG)
垢版 |
2020/10/21(水) 17:33:42.16ID:p/8W4acR0
3を押したらF3を出力して、
その後5000msの間、3を押してもF3を出力させない
というスクリプトをつくりたいんだけど
Blockinputで特定のキーの入力だけブロックすることができないから困ってます。
なにかほかに手はないでしょうか
2020/10/21(水) 18:05:58.87ID:gKsHzB9x0
send前にif分岐してA_TimeSincePriorHotkeyが5000ms未満だったら弾けばいい
513名無しさん@お腹いっぱい。 (ワッチョイ 8230-8DiG)
垢版 |
2020/10/21(水) 19:18:17.24ID:p/8W4acR0
なるほどそんな手が!ありがとう
514名無しさん@お腹いっぱい。 (ガックシ 06e6-bMs7)
垢版 |
2020/10/22(木) 00:36:46.32ID:+oFWEyP36
>>505です

皆さんありがとうございます。
時間が取れなくなったため、お礼だけ言いに来ました。

頂いた情報をもとに、近いうちに改めて検討してみます。
■ このスレッドは過去ログ倉庫に格納されています

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