AutoHotkey スレッド part25at SOFTWARE
AutoHotkey スレッド part25 - 暇つぶし2ch850:名無しさん@お腹いっぱい。
18/02/28 14:03:38.13 smTsGnw20.net
なにがわからないのかわからない
(.) 1文字キャプチャ
+ 繰り返し
→$1が都度上書きされて最終的に「。」

851:名無しさん@お腹いっぱい。
18/02/28 17:19:59.24 Wd8kHTTzM.net
わけわからんのは大抵仕様を読んでないからだ

852:名無しさん@お腹いっぱい。
18/02/28 17:40:10.57 fyn3Q3mHr.net
>>812
トン
>$1が都度上書きされて最終的に「。」
勉強になりました

853:名無しさん@お腹いっぱい。
18/03/03 21:32:14.87 8R4aDJlk00303.net
質問です
入力履歴、若しくはhotstring recognizerのリセットってできますか?
ホットストリング使ってるんですが、動作して欲しく無い場合があり、その場合途中でリセットしたいんです。
(物理)カーソルキーとかを挟むとリセットできるんですが、
AHKから(例えば無変換+で発生させたカーソルキー)だとリセットされないんですよね……

854:名無しさん@お腹いっぱい。
18/03/04 00:32:52.54 Hu/zstz50.net
できないっぽいですね。
とりあえず、
問題のキー入力から最速で!"#$みたいな、絶対に使われない文字列をsendで出力して
ソレをホットストリングの確定文字無しで認識させて、その時Zオプションを使う
でイイですかね?

855:名無しさん@お腹いっぱい。
18/03/04 05:03:51.36 cZsx79sA0.net
#ifか新機能のHotstringで止めればいいのでは?
URLリンク(autohotkey.com)

856:名無しさん@お腹いっぱい。
18/03/04 20:14:50.24 Hu/zstz50.net
リンクありがとうございます
コマンドのHotstringやZTオプションとか、色々増えてるんですね。
いつも日本語のwikiの方を見てました。
#IFを使って、
IMEオンオフでホットストリングの挙動を分けていたんですが、
IMEオンの時も、
IMEオフキーを押す操作(変換中 文字をかなからローマ字小・大にする)があるので、反応してしまい困ってました。
しかし、よく考えたら、
その操作の後は(AHK側の変数では)IMEオフになっているので打鍵に反応してしまいますね。
結局そのキーを2つに分けるしかないみたいです。
お騒がせしました。

857:名無しさん@お腹いっぱい。
18/03/05 10:10:24.59 TBE7QJqP0.net
F1::SwitchingGems() ;
SwitchingGems(){
BlockInput On
Send I
Click, RIGHT, , 1690, 372
Click, LEFT, , 1615, 250
Click, RIGHT, , 1690, 372
Send I
BlockInput Off
return
}
上記のように指定箇所を計三回クリックするマクロを作りたいのですが
Clickの三回目だけが動作していないようでクリックされません
左クリックと右クリックの間にsleepやdelayなどを挟んでみましたが解決しませんでした。
どうすればいいのでしょうか。。。

858:名無しさん@お腹いっぱい。
18/03/05 11:18:03.82 IOshgH160.net
三回目だけ残しても動かないなら
マクロ対策されてるかもしれないから
sleepをすごい多めにとってみるとか

859:名無しさん@お腹いっぱい。
18/03/05 11:21:07.70 IOshgH160.net
× 三回目だけ残しても動かないなら
○ 三回目だけ残して動くなら

860:名無しさん@お腹いっぱい。
18/03/05 18:03:55.74 EWicYF830.net
>>819
ミスかどうか判断できないので
sleepやdelayなどを挟んで解決しなかったものを書いてほしい

861:名無しさん@お腹いっぱい。
18/03/06 10:20:22.05 zUUbNPBB0.net
loop,10{
Click, RIGHT, , 1690, 372
}
闇雲に連打してみる

862:名無しさん@お腹いっぱい。
18/03/08 08:50:41.34 BnoQlrXA0.net
Mouse without Bordersのコンパネなのですが
WinMoveやWinMaximaize等が効きません。
Winsetも効きません。
これらを効くようにすることは出来ませんか?

863:名無しさん@お腹いっぱい。
18/03/08 08:51:05.88 BnoQlrXA0.net
ちなみにWinActivateは効きます。

864:824
18/03/08 19:24:12.88 BnoQlrXA0.net
>>824ですが、一般論としてウインドウをWinMoveやWinSetが効かなくすることとかウインドウ側で
出来るのですか

865:名無しさん@お腹いっぱい。
18/03/08 20:21:04.86 Yf0JqExZ0.net
Mouse without Bordersとやらは知らんけど一般論で言うなら管理者権限のせいで弾かれるとか
その場合はahkスクリプトも管理者権限で実行する必要ある
あくまでも一般論

866:名無しさん@お腹いっぱい。
18/03/08 21:04:46.18 KOKOXPVs0.net
こういうマクロを作りたいと思っています
①指定キーを押すと画像認識マクロが有効になる
②有効となっている間、画面上にお目当ての画像が出てきた場合にInput
③指定キーをもう一度押すとマクロ自体をsuspend
マクロが有効となっている間、常時画像認識マクロが目を光らせるようにするには
どんなコマンドを使えばいいのでしょうか?
今のところ自分でできてるのは
suspendをトグルさせること(①と③)と
1回キー押したときに1回だけ画像認識を正確に行わせることまでです。。

867:名無しさん@お腹いっぱい。
18/03/08 21:21:08.26 KkF548Je0.net
画像認識って何の事だ?imagesearchか?

868:名無しさん@お腹いっぱい。
18/03/08 21:29:31.69 KOKOXPVs0.net
あ、すいませんimagesearchのことです

869:名無しさん@お腹いっぱい。
18/03/08 21:44:52.70 bMjXMYrA0.net
SetTimerでImageSearch繰り返せば良いんじゃね
あとは指定キーでSetTimerをON/OFF
あと質問するなら自分が書いたスクリプト張った方がいい

870:824
18/03/09 07:31:16.30 tuBlM4VC0.net
>>827
もちろん管理者権限でやってみましたよ。でもダメでした

871:名無しさん@お腹いっぱい。
18/03/09 08:03:10.58 0+2toMkh0.net
>>824
参考になるかどうか分からないけど、俺のウィンドウの移動やサイズ変更のスクリプトだと、
移動は、ハンドラを使ったWinMove と コントロールを使ったControlMove
の2通りを使っていて、サイズ変更も同じような感じ。
たしか、MDIウィンドウに対応するためだった。

872:名無しさん@お腹いっぱい。
18/03/09 08:11:40.12 tuBlM4VC0.net
>>833
ハンドラを使うということはDllを使うとかってことですか?
本来のWinMoveはハンドラは扱えないと思ったけど

873:名無しさん@お腹いっぱい。
18/03/09 08:45:40.20 0+2toMkh0.net
>>834
マウス位置のウィンドウを移動するのに
MouseGetPos,,,mh,ct,3
WinMove,ahk_id ,%mh%,,x,y
こんな感じの書き方をしてた。

874:名無しさん@お腹いっぱい。
18/03/09 08:46:35.41 0+2toMkh0.net
コントロールだと、
ControlMove,,x,y,,,ahk_id %ct%

875:名無しさん@お腹いっぱい。
18/03/09 08:52:03.57 tuBlM4VC0.net
そういうことか。ありがとう

876:名無しさん@お腹いっぱい。
18/03/09 14:09:34.75 Etdy2Nz+0.net
>>832
だったら先に言えよな
偉そうに「もちろんやった」とか後出しで言われても知ったこっちゃねえし

877:名無しさん@お腹いっぱい。
18/03/09 17:45:02.34 2iq8dj2Z0.net
Wikiにあったボタンを押すたびに動作が変わるってのを試しているんですが、
動作自体はして、111と押すと123と出力されるのですが、2回目移行は、
1111と入れないと、123と出力がされません。
何か他に設定する必要があるのでしょうか?
1::
ComboF += 1
If ComboF = 1
{
send, 1
return
}
If ComboF = 2
{
send, 2
return
}
If ComboF = 3
{
send, 3
return
}
ComboF = 0
return

878:名無しさん@お腹いっぱい。
18/03/09 17:50:14.55 c8UvBeAJ0.net
>>839
1回押すごとにComboFが今いくつで、どこのifに入って、どこでreturnしているのかをちゃんと追っていけばわかる

879:名無しさん@お腹いっぱい。
18/03/09 17:53:58.10 OlYgn7zv0.net
>>839
ComboF = 0
が4回目になってるからだろう
3回で繰り返したいならSend, 3の後に入れれば良い

880:名無しさん@お腹いっぱい。
18/03/09 21:08:38.36 LKcOP/MX0.net
>>840
>>841
ありがとう。
うまく動きました!

881:名無しさん@お腹いっぱい。
18/03/10 16:31:28.14 G9FIqbQm0.net
あるソフトで右Altに機能を割り当てているのでマウスボタンで呼び出そうと
xbutton1::send,{Ralt}
return
と書いても動きませんでした
AutoHotkeyの履歴ではRaltが送られているのですがソフト側が認識しないみたいです
試しにメモ帳などでも試したらキーボードでAltを打つとメニュー欄にフォーカスが移動しますが
AutoHotkeyからAltを送っても何も反応しません
修飾キーを単独で押した事にするには何か別な書き方があるのですか?

882:名無しさん@お腹いっぱい。
18/03/11 01:18:05.15 RPCHFg2O0.net
最近気づいたけど
Send,!^{Del}
って機能しない?

883:名無しさん@お腹いっぱい。
18/03/11 01:30:47.46 C1GH2eZG0.net
>>844
Send自体は機能してるので入力検出ソフトなどではCtrl Alt Delを検出してる
ただしOSは受け取らないっぽい

884:名無しさん@お腹いっぱい。
18/03/11 01:37:30.01 RPCHFg2O0.net
>>845
ありがとうございます。
できないことが、はっきりわかると
もう試行錯誤しなくてすむので。

885:名無しさん@お腹いっぱい。
18/03/14 13:33:38.67 HnQGWYiV0Pi.net
お尋ねします
trayメッセージ?の表示存在の有無や内容テキストを得る方法はあるんでしょうか
使っているbluetooth機器が自動電源オフになり、その都度trayに出てくるバルーンを数回クリックして再接続するのが手間なので、これを自動化できたらいいなと思っております

886:名無しさん@お腹いっぱい。
18/03/15 09:31:06.48 xPyBwzTO0.net
トリガーを3キー同時押し
一応動いてるんですが書き方はこんな感じでいいんでしょうか?
;a+CapsLock+SpaceでShift+a
a::
#if GetKeyState("sc03A", "Space")
Send, +a
return

887:名無しさん@お腹いっぱい。
18/03/15 09:36:02.65 xPyBwzTO0.net
すみませんつづき
押しっぱなしになってaキー単独で使えないっす

888:名無しさん@お腹いっぱい。
18/03/15 17:21:57.74 QbWkJm2V0.net
a:: だとaのキーの置き換えだから、そら単独では使えなくなるわ
a & space


889::: if [CapsLockの押し下げ状態] なら[処理] ではどうです。Capsの押し下げは取得が面倒だったような気もするけど



890:名無しさん@お腹いっぱい。
18/03/15 17:49:42.32 VH/6Gl1J0.net
普通のキーをモディファイアキーとして使うのは、いろいろと不便があるよ。

891:名無しさん@お腹いっぱい。
18/03/15 18:33:48.29 xPyBwzTO0.net
>>850
あっ そうか
そりゃそうっすよね
しかし、2キーをトリガーで3つ目をifってみたけど駄目ですな~
う~ん
ちょっと分岐してごにょごにょしてみます

892:名無しさん@お腹いっぱい。
18/03/15 19:04:06.20 xPyBwzTO0.net
出来ますた
~a & sc03A:: ;a+CapsLock
GetKeyState, state, Space, P ;Spaceの状態
If state = D ;押されてたら
Send, +a ;Shift+aを送る
else ;そうでない場合
GetKeyState, state, Space, P ;Spaceの状態
If state = U ;押されてなかったら
Send, a ;aを送る
return
ありがとうございました!

893:名無しさん@お腹いっぱい。
18/03/15 19:08:59.45 xPyBwzTO0.net
と、思ったら駄目だった
CapsLock+aが使えなくなった
分岐の必要が無かった
~a & sc03A::
GetKeyState, state, Space, P
If state = D
Send, +a
return
しかし、CapsLock+aに行くには一度キーを離さないと駄目だぬ

894:名無しさん@お腹いっぱい。
18/03/15 19:25:35.53 xPyBwzTO0.net
結果的に1キートリガーのSpaceの状態をifった
a::
GetKeyState, state, Space, P
If state = U
Send, a
else
GetKeyState, state, Space, P
If state = D
Send, +a
Return
これならCapsLockに指乗せたままで2つのコマンドを行き来できて
単独でaキーも押せる
まぁ実際CapsLock押して無くていいんだけど
操作の流れで感覚的にCapsLockをコマンドキーにしたかったので
まぁいいか

895:名無しさん@お腹いっぱい。
18/03/16 12:26:04.83 UouS7uLn0.net
Msgboxですが、はい、いいえ、キャンセルと3つのボタンをつけられますが、
このはい、いいえ、キャンセルという名前を変えることは出来ませんか。
これらを表示してからあとからの変更でも構いません

896:名無しさん@お腹いっぱい。
18/03/16 12:53:58.76 08l5uqXC0.net
ControlSetText
ただし普通にMsgBoxの次の行に書いてもダメだからなんらかの別スレッドで

897:名無しさん@お腹いっぱい。
18/03/16 13:12:55.46 jjTV3maS0.net
試してないけどメニューと同じで別スクリプトでやらないとダメなんじゃないかしら
無理にmsgbox使うよりGUIでカスタムダイアログ作るほうが良さげ

898:名無しさん@お腹いっぱい。
18/03/16 13:17:19.26 UouS7uLn0.net
こんなのさあ、デフォルトで出来るようにしておいて欲しいよねw

899:名無しさん@お腹いっぱい。
18/03/16 13:40:44.65 jjTV3maS0.net
いや
winAPIのMessageBox関数を呼び出してるだけだし
AHKに限らず どの言語でもMsgBoxつったらこういう仕様なんだけど

900:名無しさん@お腹いっぱい。
18/03/16 18:01:07.16 dZXZHaN10.net
共通ダイアログは共通のUIであることこそが価値なのであって、勝手に変えられたら意味がない

901:名無しさん@お腹いっぱい。
18/03/17 21:56:35.01 J13vqzPo0.net
windows 10です
コマンドプロンプトにcontrolsendでファイル名やコマンドを送ると
2文字目が大文字になって(元の文字列の大文字にした文字の次の文字が大文字になります)
しまいます。どうしたらなおせますか?

902:名無しさん@お腹いっぱい。
18/03/18 03:08:50.12 f91JJX+I0.net
単純なコードがまったく効かず小一時間トライアンドエラー
おかしいと思いはじめ調べたところオートリーロードのコードが効かなくなっていた Orz
原因を調べようとエディタを変えてみたが変わらずリロードできない
別のahkファイルをオートリーロードすると効く
で、問題のファイルに戻りトライアンドエラー
ファイル名変更も駄目
ファイル作り直しても駄目
簡単なコードだけ残して試しても駄目
バックアップしておいた物を丸ごと上書きしても駄目
何故このファイルのみオートリーロードのコードが効かなくなってしまったか原因がわからない
ファイル名以外のとこを別のファイルへ移植して動くので
コード自体に問題は無いはず
ファイル名自体も間違っていない
Auto execute Section内は特に何も変更していない
タスクトレイのアイコンは反応ある
キーは送信されている
PCの再起動はした
セキュリティソフトで除外もした
#IfWinActive, ahk_class TextEditorWindowW166 ;サクラエディタ
~^s::
ScriptName :=Remap
If WinActive, %ScriptName%
{
Reload
}
Return
#IfWinActive
お手上げです

903:名無しさん@お腹いっぱい。
18/03/18 03:43:59.43 f91JJX+I0.net
再インストールしたら直りました。
何だよもぅ
はじめにトライすればよかった
時間を無駄にしたわ Orz
何が原因だったんだろう…

904:名無しさん@お腹いっぱい。
18/03/18 22:35:08.80 J+BCt/Kw0.net
c言語を大学の講義で習った程度のアラサー業界未経験でプログラマになりたいけど
autohotkeyでpc作業の効率化・自動化、正規表現を用いたファイル操作等を行うスクリプトは趣味でやったことありますはアピールになるかな?

905:名無しさん@お腹いっぱい。
18/03/18 22:37:10.61 aKvw3zvt0.net
趣味で→業務の効率化を行いました
と言い換えておけ。
大抵の人にはAHKなにそれって言われるだろうけど業務に役に立つものとわかれば多少のプラスにはなるんじゃないか

906:名無しさん@お腹いっぱい。
18/03/18 23:02:23.62 HRiJzGoo0.net
AHKが業務に役立つって一体なんだ?
せいぜいクリックしたりのルーチンワークをやらせるくらいだろ
そんなもの特技にもアピールにもなら無いと思うよ
まだExcel使いこなせます、の方が100倍通る

907:名無しさん@お腹いっぱい。
18/03/18 23:10:49.20 NAu7k0j60.net
未経験者歓迎の会社ならやる気がある人だとポジティブに見てもらえるかも程度かなあ
スキルとしては役に立つとは見なされないだろうけど
しかし今はアラサーからでも始められるんだねえ
うちなんかの頃はプログラマー35才定年説とか冗談でいいながら
結局30才の時に辞めちゃったけど

908:名無しさん@お腹いっぱい。
18/03/19 06:05:47.26 2K9mbLou0.net
>>867
業務にめっちゃ役立つだろ。 どんだけ効率化できることか
ただ世間では知らない人の方が圧倒的に多いから
何それって言われるだけ

909:名無しさん@お腹いっぱい。
18/03/19 09:08:30.30 1gBKOOv90.net
マー枠でないオフィスワークならPC作業のかなりの割合がルーチンワークなので
あの人に頼むと仕事速いって評価は得られる
履歴書段階ではよくわからん余計な事が書いてあるみたいな顔されるけどね
プログラマーの仕事は職場環境の改善や効率化ではないのでアピールとしては微妙かな
SEなら顧客先への提案にAHKでの効率化もねじ込めるかも知れないが

910:名無しさん@お腹いっぱい。
18/03/19 19:18:33.71 IzZLQY4r0.net
おしえてください。
.ahkにドラッグアンドドロップされたファイルを違うアプリにわたす場合、
どうやって変数を書いたらいいのでしょうか?(ドラッグアンドドロップされるファイル)
.ahkにドラッグアンドドロップされたmp3ファイルをmp3directcut.exeに渡したい(D&D)です。

911:名無しさん@お腹いっぱい。
18/03/19 21:21:51.70 +9jTrdWi0.net
>>871
スクリプトのコマンドライン引数
URLリンク(ahkwiki.net)
でも配列が分かるなら、というか分かるようになってでもa_argsを使うほうがいい
URLリンク(www.autohotkey.com)

912:名無しさん@お腹いっぱい。
18/03/19 21:24:00.32 U+xoQwSe0.net
まあいまなら、RPAツールで効率化って言えばいいんじゃね。

913:名無しさん@お腹いっぱい。
18/03/20 06:47:06.72 WP8liIaB0.net
>>871
#NoTrayIcon
Run, mp3directcut.exe %1%

914:名無しさん@お腹いっぱい。
18/03/20 15:11:55.67 +orTD+Tx0.net
このソフトって画像認識は余り重要視されない感じですか?
OpenCVベースのライブラリを作成中なのですが。

915:名無しさん@お腹いっぱい。
18/03/20 15:15:31.27 /qe8h6Jm0.net
>>875
ImageSearch

916:名無しさん@お腹いっぱい。
18/03/21 01:38:35.04 w/ym+8zsM.net
autohotkeyってプログラミング言語なの?

917:名無しさん@お腹いっぱい。
18/03/21 02:26:02.22 t6ZVDJkP0.net
>>877
AHKはスクリプトであり簡易的なプログラム
本格的なプログラミング言語に比べ、用途を限定することで、覚えやすいように簡単な構造になっている
スクリプトの中でもAHKは特に簡単な方なんじゃないかな多分

918:名無しさん@お腹いっぱい。
18/03/21 05:59:25.78 vW2s5IUZM.net
プログラミングの足掛かりにはなるけど
用途も限られ、誰でも覚えられ、用意されたコマンドも少ない
でも高度な事しようと思ったらwin apiの知識が必要だったり
他からライブラリ持ってきたり
リファレンスが英語しかなかったり
汎用性はあまりないよ

919:名無しさん@お腹いっぱい。
18/03/21 09:01:31.10 ra+qV9Ux0.net
>>878
AHKの言語はかなり特殊で癖が強すぎて出来は良くないよ
perlの方が圧倒的に言語としての出来はいい

920:名無しさん@お腹いっぱい。
18/03/21 11:15:53.77 vX0jpMkC0.net
いきなり使えるという意味では楽なほうだと思うけど
スプリクト言語として簡単な方だとは正直言い難い
増改築繰り返してて色んな言語の方言ぶち込まれてるから纏まりないしね

921:名無しさん@お腹いっぱい。
18/03/21 13:11:58.41 ltXmxIsFM.net
まぁ おもちゃ だね

922:名無しさん@お腹いっぱい。
18/03/21 14:35:23.46 7OKFzbdy0.net
>>880
出来がいいとか悪いとかそんな話は誰もしてないから

923:名無しさん@お腹いっぱい。
18/03/21 17:56:15.87 RBaLq5Ja0.net
>>877
プログラミング言語は以下の総称、AHKはスクリプト言語に属している
スクリプト言語 - プログラミング言語のうち、プログラムの記述や実行を比較的簡易に行うことができる言語の総称
           JavaScript、Perl、Python、PHP、Rubyなど
コンパイラ言語 - 人間が書いたプログラムをコンピュータが理解できる形式に変換するプログラム言語
           C言語やC++、Javaなど、上記と比較してパフォーマンスに優れている

924:名無しさん@お腹いっぱい。
18/03/21 18:36:08.33 zFBQqTlw0.net
>>884
スクリプト言語とインタープリタの違いは?

925:名無しさん@お腹いっぱい。
18/03/21 18:57:46.63 IUvp1TqV0.net
そろそろスレチ

926:名無しさん@お腹いっぱい。
18/03/21 19:06:50.77 vX0jpMkC0.net
アセンブラが抜けてるぞ
コンパイルせんけどあれもれっきとしたプログラミング言語ですよ

927:名無しさん@お腹いっぱい。
18/03/21 19:12:21.63 MLMIaNkj0.net
>>886に同感

928:名無しさん@お腹いっぱい。
18/03/21 20:42:05.97 TU8fmjCY0.net
日本語のwikiは4年前から更新が止まってるけど
日本のユーザーほとんどいないのかしら

929:名無しさん@お腹いっぱい。
18/03/22 04:39:01.11 VvTwrxCl0.net
「Insert」「Scroll Lock」って何で設置されてるんです? キーボードの“いらないキー”の使い方
URLリンク(headlines.yahoo.co.jp)
本来の用途を知ってもやっぱりahkで覆すのが一番だな

930:名無しさん@お腹いっぱい。
18/03/22 09:00:22.19 U0cAdNVx0.net
Insertは固定テーブル書換でよくお世話になったし今もたまに使う
BreakもVBAの暴走止めるのに使うしScrollLockだけは要らんけど
あの辺をahkで覆すことってないなあ
そもそもホームポジションから遠いから便利キーとして活用しづらいというのもあるが

931:名無しさん@お腹いっぱい。
18/03/22 12:01:10.33 Ufwil7jA0.net
この前INSを知らんうちに押しててその性質を失念しててパニックになったw

932:名無しさん@お腹いっぱい。
18/03/22 12:37:22.06 e+UZ/a+c0.net



933:昔使ってたワープロ専用機がパソコンで言えば挿入キーが効いた状態が標準だったので、パソコンに移行した初期はよく使ってたな。今でもたまに長い名称の修正の時に使うことがある。 無変換キー使わないから他に置き換えるって記事も出てくるけど、個人的にはしょっちゅう使ってるんだよなぁ。ショートカットの関係とかもあるし、キーの置き換え考えるのってけっこう難しい。



934:名無しさん@お腹いっぱい。
18/03/22 13:16:44.76 DUtGpx6E0.net
Insert::return
^Insert::Send, {Insert}

935:名無しさん@お腹いっぱい。
18/03/23 10:21:17.86 b+Z0za8i0.net
例えば、
Aキーを押した後、Xを押したらある処理Xをする
Aキーを押した後、Yを押したらある処理Yをする
Aキーを押した後、Zを押したらある処理Zをする
みたいなことをしたいのですが、簡単なスクリプトの書き方ってありますか?

936:名無しさん@お腹いっぱい。
18/03/23 10:24:25.97 XAz/zURm0.net
>>895
キーによって最適の処理があるとおもうから、具体的に何のキーか書いた方が良いよ

937:名無しさん@お腹いっぱい。
18/03/23 14:14:04.10 GjwCbWet0.net
a & x::
処理
Return
ではいかんの?aキー殺したくないなら~a & x::で。

938:名無しさん@お腹いっぱい。
18/03/23 14:48:02.81 b+Z0za8i0.net
>>897
そぅいう書法があるのですか。これは初めて知りました。ちょっと調べてきますね

939:名無しさん@お腹いっぱい。
18/03/23 16:07:40.41 b+Z0za8i0.net
>>897
やってみました。 なるほど。これでもよさそうです。 ありがとうございました

940:名無しさん@お腹いっぱい。
18/03/24 19:08:51.99 QBdmJd9U0.net
スマホのWindows10 MobileにAuto Hot Keyって導入できる
んでしょうか?
無変換+Jに左矢印を割り当てるくらいできればいいのですが。

941:名無しさん@お腹いっぱい。
18/03/27 13:28:24.89 hp/Jmp+F0.net
何いってんだコイツ

942:名無しさん@お腹いっぱい。
18/03/27 23:21:47.06 gIH3YYjz0.net
おまいらファイル長くなりすぎた時どうしてるの?

943:名無しさん@お腹いっぱい。
18/03/27 23:48:02.88 2xWHg+240.net
機能ごとにプラグイン化してる

944:名無しさん@お腹いっぱい。
18/03/28 11:34:17.40 ojeN139t0.net
文字列で、最初の10行を取り出す、とかはないのでしょうか

945:名無しさん@お腹いっぱい。
18/03/28 13:54:22.18 aUGjB4dVM.net
wikiみろ

946:名無しさん@お腹いっぱい。
18/03/28 14:43:43.95 ojeN139t0.net
見つからないので、
StringGetPosで`nを見つけてみたいなことをしています。 それしか方法ないのかな

947:名無しさん@お腹いっぱい。
18/03/28 15:13:27.91 VqAJ66ND0.net
Loop,Parseってのがあるじゃろ…

948:名無しさん@お腹いっぱい。
18/03/28 19:42:08.35 wFJSmFtY0.net
やるとしたらLoop, ParseかRegExReplace()あたりでやるかなあ

949:名無しさん@お腹いっぱい。
18/03/28 20:08:23.29 VpMR9Ykb0.net
>>904
100万回ぶん回したらRegExMatchのほうが1.8倍早かった
Text =
(
111
222
333
444
)
RegExMatch(Text, "`n)(?:.*\n*){2}", Var1)
MsgBox % Var1
Loop, Parse, Text, `n
Var2 .= A_LoopField "`n"
Until A_Index = 2
MsgBox % Var2
return

950:906
18/03/29 08:46:20.34 Kt+xqO1A0.net
私は、
StringGetPos, n, text, `n, L10
StringLeft, text,text, n
としました。
Loop, ParseかRegExReplaceってのは気づきませんでした
いくつか方法ありますね。 gnuとかやってたのでもうちょっと関数ほしいかな

951:名無しさん@お腹いっぱい。
18/04/02 09:12:36.71 6CLUXBlN0.net
RegExMatchで変数同士の比較の際に、変数内に特殊記号が入ってる場合のエスケープってどうすればいいんですか?
例えば↓だと記号が入っている行では0が帰ってきてしまうので、これを正しくマッチさせたいです
str =
(
abcdefg
abcd*e\fg
hijklmn
hijk*"l\mn
)
Loop,parse,str, `n
{
a := RegExMatch(str, A_LoopField)
MsgBox % a
}

952:名無しさん@お腹いっぱい。
18/04/02 09:32:38.76 Bc45Krob0.net
\Q

953:名無しさん@お腹いっぱい。
18/04/02 09:56:17.05 6CLUXBlN0.net
>>912
できましたありがとうございます

954:名無しさん@お腹いっぱい。
18/04/02 23:41:48.53 /5qUy46v0.net
Class k{
A:="U|D|L|R"
x:="X|3|m|x"
Ax:="(" . A . "|" . x . ")"
}
k := new k
Shift & Ctrl::msgbox,% k.Ax
このk.Axが(U|D|L|R|X|3|m|x)で欲しいのですが
(|)が還ってきます
Classの中では、変数の再定義などもエラーになるので振る舞いが違うようですが、
Class中で自身の変数を使うにはどうしたらいいのでしょうか

955:名無しさん@お腹いっぱい。
18/04/03 01:17:27.13 nsnifR/q0.net
this

956:名無しさん@お腹いっぱい。
18/04/05 06:40:22.99 cEzeFAIV0.net
UWSCからAutoHotKeyに鞍替えしようと思っているのですが
UWSCのchkimgXのような高機能な画像認識機能はこちらにはありますか?

957:名無しさん@お腹いっぱい。
18/04/05 11:22:45.68 HI1fVzZM0.net
指定した画像と一致するかどうかという機能(完全一致~ゆるく一致までざっくり設定可)と、
ピクセルの色を調べる機能はあるぞ

958:名無しさん@お腹いっぱい。
18/04/06 03:36:34.69 /B0boEGH0.net
DLL呼び出しはどうやるのかな?
必要なら私が作成したchkimgXのようなのを公開しますが。

959:名無しさん@お腹いっぱい。
18/04/06 10:13:31.58 /B0boEGH0.net
DLL呼び出しして画面と画像でテンプレートマッチングしてクリックまではできました。
配列とかが難しいですね><

960:名無しさん@お腹いっぱい。
18/04/06 19:19:42.82 OFzZtZ5C0.net
chkimg(完全一致検索)
chkimgX(テンプレートマッチング)
それぞれ互換性を持った関数をDLLとして提供しています。
ahkでUWSCとほぼ同じ画像認識操作が可能です。
URLリンク(www.axfc.net)

961:名無しさん@お腹いっぱい。
18/04/07 11:43:46.03 fZhBhj010.net
1.1.28.02 リリース
また細かいバグフィックスだろうけど
現時点でチェンジログは出ていない

962:名無しさん@お腹いっぱい。
18/04/07 15:15:24.78 R1ORWks/0.net
URLリンク(github.com)
チェンジログはGitHubのが早い

963:名無しさん@お腹いっぱい。
18/04/07 15:40:04.20 fZhBhj010.net
>>922
thx
Fixed Control ChooseString and ControlGet FindString ignoring the first two items.
Fixed Control ChooseString to send WM_COMMAND even if the control's ID is 0.
Fixed WinActivate to restore the active window, as originally intended for [v1.1.20.00].
最後のやつ、なんかおかしいと思ってたんだよ
やっぱバグだったのか

964:名無しさん@お腹いっぱい。
18/04/09 09:25:51.24 c9jGED410.net
質問なのですが、画面の特定の座標だけでスクリプトを動作せたいので次の様に書いたのですが
ifの条件が無視されて画面のどこでも動作してしまいます
どのように書けば良いのでしょうか?
Xbutton1 ::
CoordMode,Mouse,Screen
MouseGetPos,xpos,ypos
if (100<xpos<200 && 100<ypos<200 )
{
send,a
}
return

965:名無しさん@お腹いっぱい。
18/04/09 09:30:42.59 G8+Atlb/0.net
a<b<c
って書き方を認めていない言語も多かったような

966:名無しさん@お腹いっぱい。
18/04/09 09:41:06.34 c9jGED410.net
>>925
その通りでした
if (100<xpos && xpos<200 && 100<ypos && ypos<200 )



967:としたら動きました、ありがとうございます



968:名無しさん@お腹いっぱい。
18/04/12 14:21:27.54 LYFBDP2J0.net
使い道がありそうでなさそうだな
上海問屋、6つのボタンに任意キーを割り当てできるUSB有線リモコン - ITmedia PC USER
URLリンク(www.itmedia.co.jp)
URLリンク(image.itmedia.co.jp)

969:名無しさん@お腹いっぱい。
18/04/12 14:46:13.63 kOEYD5Ut0.net
これならゲームのコントローラーで事足りそう

970:名無しさん@お腹いっぱい。
18/04/12 14:47:22.87 W4scmFmJ0.net
どんやのパチモンじゃ購入初日にボタンが壊れそう

971:名無しさん@お腹いっぱい。
18/04/12 16:11:05.18 T0dluYzz0.net
AHKなどソフトウェアマクロが弾かれるゲームでどうしてもハードウェアマクロ使いたい人向けかな
ま、要らんけど

972:名無しさん@お腹いっぱい。
18/04/12 19:25:32.52 vJcRmT+E0.net
(ほしい…)

973:名無しさん@お腹いっぱい。
18/04/13 09:45:10.86 NtTFGXLa0.net
POS用のプログラマブルキーボードが鉄板やろ

974:名無しさん@お腹いっぱい。
18/04/13 17:18:58.63 paZWK/3z0.net
URLリンク(ux.getuploader.com)
Autohotkeyでゲームパッドを弄り倒す叩き台作ってみたよ
サンプルはトーチライト2 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


975:名無しさん@お腹いっぱい。
18/04/13 19:00:24.87 1ryaKKuDa.net
なんかすごいの来たぞ

976:名無しさん@お腹いっぱい。
18/04/13 20:25:23.22 j0qzzlLl0.net
win7からwin10に移行して1か月経ったが、ホイールリダイレクトがwin標準になったのを最近知った
なので、win7時代から使っていたWheelAccel.ahkが不要になったよ
(むしろ、スタートメニューなど一部の窓でスクロール出来なくて困っていたし、加速機能使わなかったから不便無い)

977:名無しさん@お腹いっぱい。
18/04/13 21:19:40.20 0+nIaT1E0.net
バイナリデータn書き換えについて質問します
例えばbinary.datと言うファイルがあります
このファイルの中身は”FF FF FF FF”とします
これを先頭が”FF”だった場合に”00 FF FF FF”と書き換えたいのです。
どこかに良いサンプルコードありませんでしょうか?

978:名無しさん@お腹いっぱい。
18/04/13 21:42:32.33 7h17ETYp0.net
更新フラグでFileOpenしてRawWriteでできるでしょ

979:名無しさん@お腹いっぱい。
18/04/13 22:12:16.80 0+nIaT1E0.net
書き換え方法がわかりません
どうすれば良いですか?
FileGetSize, size, binary.dat
FileRead, data, binary.dat
file := FileOpen("binary.dat", "w")
file.RawWrite(data, size)

980:名無しさん@お腹いっぱい。
18/04/17 11:04:41.37 /LpxS4AS0.net
>>933
Jtkのまがいもの更新しました。
URLリンク(ux.getuploader.com)
思いつくのは入れて満足したのでしばらくこのままだと思います。
なにか要望あれば考えます 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


981:名無しさん@お腹いっぱい。
18/04/17 15:16:07.19 TidmHlF5a.net
>>939
バグ報告いいかな?
無線パットだと起動した直後にLRがキーログに出てくる
実際押されてる模様。初期化の速さに通信が追いついてないっぽい
あと要望はLTトリガーにフルプル対応してほしい。それさえクリアしたらSteamのキーアサインの呪縛から抜けられそう

982:名無しさん@お腹いっぱい。
18/04/17 16:51:38.37 a0NxOH1g0.net
window10 pro 64bit版で.NETアプリを自動操作させようとしているのですが、
コントロール名の取得方法が分からず、座標で操作しています。
しかし、画面サイズが異なると座標がずれてしまうため、コントロール名で操作したいです。
コントロール名を取得する良い方法はありませんか。
Au3Info_x64を使ったりもしているのですが、テキストボックスやボタンの名前の取得もできません。
よろしくお願いします。

983:名無しさん@お腹いっぱい。
18/04/17 17:00:04.82 s4qV74PJa.net
mousrgetposで取れない?Dll叩いてもだめ?そうでないなら画像認識で無理やりかな

984:名無しさん@お腹いっぱい。
18/04/18 13:30:00.16 v+G5gwRf0.net
>>939
jtkモドキ微更新。何度もすみません
バグ取ってフルプル分岐作りました。
フルプルとソフトプルの分岐設定も書いているので参考に
URLリンク(ux.getuploader.com) 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


985:名無しさん@お腹いっぱい。
18/04/18 15:45:10.39 v+G5gwRf0.net
>>943
十字キー関数にミスが有りました。再アップしたので>>1のAutohotkey専用うpろだ からどうぞ。目玉でまくってるし

986:名無しさん@お腹いっぱい。
18/04/18 16:38:37.35 BxRxemHs0.net
>>942
ありがとうございます
mousegetpos試してみました
そこで取得したテキストボックスらしきClassNNにsendしてみたけど入力されないので、
ClassNNがあってるかどうかも分からない状態です
dllはまだよく分かっておらず、試せていません
もう少し試行してみます

987:名無しさん@お腹いっぱい。
18/04/20 01:59:31.80 CBU7UbTU0.net
gui上のあるボタンを押したらcaps入り切り、というのが上手くいきません
capslockのキーコードをsendすれば?と思いましたが必ずロック入にだけなってしまいオフにできません

988:名無しさん@お腹いっぱい。
18/04/20 08:47:40.18 dNl99PS50.net
>>946
SetCapsLockState

989:名無しさん@お腹いっぱい。
18/04/20 10:47:37.95 CBU7UbTU0.net
>>947
946です、出来ました感謝m(_ _)m

990:名無しさん@お腹いっぱい。
18/04/21 18:06:22.61 C1+iWiz90.net
Jtkモドキにマウスカーソルの形状を判断して1か0を返す関数を追加しました
画面上のボタンにマウスカーソルが乗っているかどうかを1か0で返す関数も作りました
今回は主に画像で分岐する処理を追加したものになります
URLリンク(ux.getuploader.com) 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


991:名無しさん@お腹いっぱい。
18/04/21 18:42:03.16 OB+FBU580.net
しつこく継続するつもりなら自分の日記でやってくれ

992:名無しさん@お腹いっぱい。
18/04/21 18:50:31.53 KPF3rMpt0.net
GitHubに上げてくれると助かる

993:名無しさん@お腹いっぱい。
18/04/21 20:02:17.73 9NdPyy9Da.net
今回のはガチ有能だから許してやるよ
これjtk超えたわ

994:名無しさん@お腹いっぱい。
18/04/21 20:21:57.16 C1+iWiz90.net
そろそろウザイいわれる頃だと思いました
今の所目立つ不具合もないので開発はこれで終わりです。お騒がせしました

995:名無しさん@お腹いっぱい。
18/04/21 20:25:29.17 rnogQ4Zw0.net
思ってても自重できないとかガイジかよ

996:名無しさん@お腹いっぱい。
18/04/21 20:25:41.02 NokkieTn0.net
お疲れ様でした

997:名無しさん@お腹いっぱい。
18/04/21 20:26:26.63 A/2ANSA+0.net
そんな~
進捗知らせるリンクとかないの?

998:名無しさん@お腹いっぱい。
18/04/21 22:20:34.98 PYmE/PA4a.net
GitHubはいい選択肢だと思う
割とすごく便利に使ってるからこれで開発終了も勿体無い
これからなんか機能付け足すとかあるかも知れんからお願いします

999:名無しさん@お腹いっぱい。
18/04/21 22:33:06.01 fKXilc1u0.net
うん、ブログかなんか作って、改良したらリンクだけでも貼っておいてくれると助かる。
文字通りのウェブログみたいなのでかまわないから。

1000:名無しさん@お腹いっぱい。
18/04/21 22:34:11.35 fKXilc1u0.net
あぁ、ギットハブでもいいね。

1001:名無しさん@お腹いっぱい。
18/04/22 05:25:59.04 RQZNijO/0.net
ギフハフにかんしされてる

1002:名無しさん@お腹いっぱい。
18/04/22 09:58:25.53 KrMwycZF0.net
お疲れ
たまにうpろだを覗いたらアップされてるくらいでも嬉しいから
よかったら続けてくれ

1003:名無しさん@お腹いっぱい。
18/04/22 19:27:30.11 PW3IH2j00.net
以下のようなサンプルスクリプトを書き、Excel上で
動いたのですが、他のウィンドウに切り替えても
動いたままです。アクティブ時以外は停止させる
ことはできないのでしょうか。
#IfWinActive ahk_class XLMAIN
^!down::
Interval :=2
Loop, 20
{
Send {enter}
Sleep, 1000*Interval
}
#IfWinActive

1004:名無しさん@お腹いっぱい。
18/04/22 19:30:44.48 RQZNijO/0.net
whileループ使えばよろし

1005:名無しさん@お腹いっぱい。
18/04/22 22:10:37.71 +NuTjY0aM.net
#IfWinActiveはトリガー発動時の条件でしかない
アクティブ外れたからって実行中のスレッドを強制的に止めるような怖い機能はついてない
止めたいなら自分でloopの中でアクティブ切り替わったかどうか見てアボート処理入れないと
つうかhotkeyの中でsleep使うとキー連打したときにめんどくさくなるから
settimer使った方が安全だと思うけど

1006:名無しさん@お腹いっぱい。
18/04/22 22:12:00.47 Na2a3cix0.net
俺なら、SetTimer使って
if(WinActive("ahk_class XLMAIN")){
で実行させるかなぁ

1007:名無しさん@お腹いっぱい。
18/04/22 22:44:07.12 10Ec/CBsa.net
loop内からif式でブレイクなんてのもある。まぁ好きなの使えばいいよ

1008:名無しさん@お腹いっぱい。
18/04/23 08:25:10.44 O5Q2FlPe0.net
みなさま、回答ありがとうございます
参考にさせてもらいます

1009:名無しさん@お腹いっぱい。
18/04/23 17:57:46.27 AE7Q4/Eb0.net
要望があったのでJTKモドキの専用のブログ作りました。今後更新はこちらですることにします。
URLリンク(gamepadtokeybordframework.blogspot.jp)

1010:名無しさん@お腹いっぱい。
18/04/23 18:01:29.23 pzh5FeO50.net
ありがとうございます

1011:名無しさん@お腹いっぱい。
18/04/23 18:07:00.37 e3Qosisv0.net
>>968


1012:名無しさん@お腹いっぱい。
18/04/23 18:25:32.83 kj66dibia.net
おお、続けてくれるか!ありがとう!
XboxコントローラーでLRトリガー同時押しできるってだけでも相当助かってるので頑張って

1013:名無しさん@お腹いっぱい。
18/04/23 18:43:56.76 bXPE8uhS0.net
トリガー同時押しなんてJTKでもずっと前から出来てるのに何言ってんだこいつ
やたら過度に称賛してる連中自演臭い

1014:名無しさん@お腹いっぱい。
18/04/23 20:57:13.94 Gj6VP1R00.net
まぁ、ここよりもブログに応援コメントしてあげた方が良いだろうね。

1015:名無しさん@お腹いっぱい。
18/04/23 21:18:00.96 zWCv4IqX0.net
分かってない質問者来たときに上から偉そうなのがワラワラ涌く以外勢いつかないスレなんだから
この程度の自作自慢ぐらいいちいち締め出すこともないだろうに
噛みつきたいだけのキチガイの言うことなんかほっとけよ

1016:名無しさん@お腹いっぱい。
18/04/23 21:34:02.76 x5JIhAAO0.net
と、噛みつきたいだけのキチガイが吠えてます

1017:名無しさん@お腹いっぱい。
18/04/24 00:51:31.04 K1jVCB+q0.net
A_OSVersionってWin8までしかサポートしてない?
Windows10であることを取得したい場合なんか方法ある?

1018:名無しさん@お腹いっぱい。
18/04/24 00:57:28.67 HNWPsUWl0.net
MsgBox, %A_OSVersion%
で10.0.16299と表示されたけど

1019:名無しさん@お腹いっぱい。
18/04/24 01:01:20.02 K1jVCB+q0.net
最新版インストーラから入れたら直った、ZIPだと本体が入ってないのな
スレ汚しすまん

1020:名無しさん@お腹いっぱい。
18/04/24 21:47:10.94 w2d0xl7M0.net
zip版はAutoHotkeyA32.exe(ANSI 32bit)、AutoHotkeyU32.exe(UNICODE 32bit)、
AutoHotkeyU64.exe(UNICODE 64bit)が入ってるので自分の環境に合うやつを
AutoHotkey.exeにリネームなりコピーなりして使う

1021:名無しさん@お腹いっぱい。
18/04/25 02:45:11.77 C2JdtamLM.net
ポータブルマンセー厨だがahkは毎回インストーラ使って入れてるな
.ahkの関連付けされてないと


1022:不便だし



1023:名無しさん@お腹いっぱい。
18/04/25 05:12:42.53 TT/mbE+J0.net
すみません初心者の質問です
AキーをCapsLockとSpaceキーの押下状態での分岐ですが
Aキーを単押しの状態は最初のSend, aだけでいいのでしょうか
一応どちらでも動作するのですがもっとスマートに記述する場合どの様にするのがベストですか?
A::
GetKeyState, state, sc03A, P
If state = U
Send, a
Else
GetKeyState, state, sc03A, P
If state = D
Send, ^!+{A}
Else
GetKeyState, state, Space, P
If state = U
Send, a
Else
GetKeyState, state, Space, P
If state = D
Send, +{A}
Return

1024:名無しさん@お腹いっぱい。
18/04/25 05:35:11.89 pC9fkv9h0.net
>>981
普通にコンビネーションキーじゃダメなのか?

1025:名無しさん@お腹いっぱい。
18/04/25 06:20:19.60 TT/mbE+J0.net
>>982
嫌です

1026:名無しさん@お腹いっぱい。
18/04/25 06:27:05.95 RVBw9LmG0.net
>>981
そもそもIfとElseの使い方も滅茶苦茶
もう少し基本のサンプルコード良く見て基本中の基本を自力で理解した方が良い
そのスクリプト実行すると「a」を一回押しただけで「aa」が入力されるしな

1027:名無しさん@お腹いっぱい。
18/04/25 08:08:05.11 TT/mbE+J0.net
>>984
指摘されて気付いたけどaが2回押されてた
ソフト側でaキーでトグルされる設定がワンセットあったので気づかなかった
詳しくは割愛するが実際に動作に支障がない状態にあった
2つ目はとりあえず消すことで対処出来たけど
とりあえず、書き方がめちゃくちゃと言われたので
ひとまず単純に分岐を1つにして書き方を変えてみた
Ifで条件に一致したときに実行させて一致しない時にElseで分岐でいいのかな?
この場合だとわざわざIf state = U で押上状態を取得しなくていいの?
あと、ifは1行ならカッコで閉じなくていい?閉じるべき?
単一コマンドはElseの直後に絶対書くべき?
↓一応これで意図した動作はします
A::
GetKeyState, state, sc03A, P
If state = D
Send, ^!+{A}
Else Send, a
Return

1028:名無しさん@お腹いっぱい。
18/04/25 08:17:14.96 FDOLZigg0.net
まぁ、好みの問題だと思う。
俺は、
if(GetKeyState("sc03A","P")){
} else {
}
で書く方が好き。

1029:名無しさん@お腹いっぱい。
18/04/25 08:22:27.28 cS31dOM80.net
動作仕様の説明なしでコードだけ貼られても意図した動作
(capsやスペース押下でどうしたいのか) そのものが他人にはわからんのだが

1030:名無しさん@お腹いっぱい。
18/04/25 08:27:29.40 RVBw9LmG0.net
>>987
ほんとだよな
他人から見たらSpaceとaを押して「 A」(Aの前にSpaceが入る)になるのも本当に意図した通りなのか疑問だし

1031:名無しさん@お腹いっぱい。
18/04/25 08:29:03.76 FDOLZigg0.net
>>985
結局、Spaceキーはどうでも良かったわけね

1032:名無しさん@お腹いっぱい。
18/04/25 08:45:52.16 TT/mbE+J0.net
>>986
ありがとうございます
参考にします
985はひとまずって言ってるでしょ
>>987
>>988
CapsLock押下+aキーは Send, ^!+{A}
Space押下+aキーは Send, +{A}
aキーは aキー

で最初の質問での分岐はこうなった
これでaキーの単独押しをわざわざ条件から指定せず単純に分岐するだけでよくなった
A::
GetKeyState, state, sc03A, P
If state = D
{
Send, ^!+{A}
Return
}
GetKeyState, state, Space, P
If state = D
Send, +{A}
Else Send, a
Return

1033:名無しさん@お腹いっぱい。
18/04/25 08:57:54.27 Uuym80WnD.net
続きはblogでやるからみんなみてね

1034:名無しさん@お腹いっぱい。
18/04/25 09:05:46.23 2q8Y67NRa.net
過疎になるわけだ

1035:名無しさん@お腹いっぱい。
18/04/25 09:29:19.28 ehxQscQV0.net
>>985
> Ifで条件に一致したときに実行させて一致しない時にElseで分岐でいいのかな?
OK
> この場合だとわざわざIf state = U で押上状態を取得しなくていいの?
押上を待ちたかったり、押上た時になにかしたいのでなければいらない
> あと、ifは1行ならカッコで閉じなくていい?閉じるべき?
> 単一コマンドはElseの直後に絶対書くべき?
究極的には趣味の問題だけど、初心者のうちはifやelseの後は必ず{}にしといたほうが無難
それとスマートさを求めるなら、If分岐を整理するのもそうだけど
>>988が言ってるCapsLockやSpaceが入力されてるのをどうにかするのが先だと思う
どんなソフトで試してるのか知らないけど、余計なキー入力は誤動作の元だから
KeyWaitを使って横取りするか、コンビネーションキーを使うのが早い
コンビネーションキーが嫌なら、あえてその理由を解消する方向でスクリプトを考えてみるのが楽な場合もある
ただ、今の時点で期待通りに動いてるなら
下手にいじらないのもひとつの手
初心者の自覚があるならなおさら

1036:名無しさん@お腹いっぱい。
18/04/25 10:03:07.10 RVBw9LmG0.net
>>990
Spaceとaを押したときにAの前にスペースが送られてるのも意図的にやってるのであれば
a::
GetKeyState, state, Space, P
If state = D
Send, +{A}
Else Send, a
Return
↑この6行と
~Space & a::Send, +a
の一行で動作は同じだろう
なぜコンビネーションキーではダメなのか知らんが
スマートに記述するならこっちの方がスマート

1037:名無しさん@お腹いっぱい。
18/04/25 10:31:32.03 TT/mbE+J0.net
>>993
ありがとうございます
元々Photoshop等同系ソフトの共通コマンドを同じキーにするための
単なるリマップでしたが、複数のコードをひとまとめにしたかったのがきっかけですです
内容的には押しにくいキーを押しやすくしてるのものです
単純に押しやすいものでも操作の流れ上押しにくかったりするので。
ちなみに、左の小指をCapsLockに固定、親指をSpaceに固定が理想です
~Space & W::Send, +{W}
~Space & S::Send, +{S}
~Space & A::Send, +{A}
~Space & D::Send, +{D}
~sc03A & W::Send, +{W}
~sc03A & S::Send, +{S}
~sc03A & A::Send, +{A}
~sc03A & D::Send, +{D}
Spaceキーは以前単純にリマップしてたときより理想的な動作になってるのですが...
Spaceキー押しっぱなしで次に押したいSpace+◯が動作出来るようになったので
CapsLockはUSキーボードですが、Shift+CapsLockでON、OFF + 単推しでのOFFにしています
ただし、Photoshop等ではCapsLock単体はsc03A::Returnで無効化しています
一応、CapsLockが送信されてることは確認していますが
意図せずオンオフになったりLEDがチラつくこともないです...
ただ、これが意図した動作だとしても書き方がおかしいようなら
もう少し考えます

1038:名無しさん@お腹いっぱい。
18/04/25 10:43:10.93 TT/mbE+J0.net
ついでにCapsLockの動作のコードはこんな感じです
タイマーでもOFFになるようにしておりました
たぶんすごく不自然なことやってるんだと思いますがこれで意図した状態のことが出来てます
SetStoreCapslockMode, off
SetTimer, Timer05, 1000
;------------------------
~LShift & sc03A::
Send, {CapsLock}
Timer05:
If(A_TimeIdlePhysical>5000)
SetCapsLockState, OFF
Return
sc03A::
GetKeyState, state, CapsLock, T
If state = D
SetCapsLockState, OFF
GetKeyState, state, CapsLock, P
If state = U
SetCapsLockState, OFF
Return

1039:名無しさん@お腹いっぱい。
18/04/25 10:47:25.65 RVBw9LmG0.net
>>983は何だったんだ

1040:名無しさん@お腹いっぱい。
18/04/25 10:49:12.47 TT/mbE+J0.net
>>995はちょっと訂正
~sc03A & W::Send, ^!+{W}
~sc03A & S::Send, ^!+{S}
~sc03A & A::Send, ^!+{A}
~sc03A & D::Send, ^!+{D}

1041:名無しさん@お腹いっぱい。
18/04/25 10:56:10.09 YVL3wDrE0.net
それで良いなら嫌ですとか言うなよ

1042:名無しさん@お腹いっぱい。
18/04/25 10:59:43.24 TT/mbE+J0.net
CapsLockが送信されてるのは言われるまで送信されてるのがおかしいとは思っていなかったですが
とりあえず、状態を取得してもその後Ifでon,off出来なかったのでこんな事になってます
CapsLockがトリガーなら大丈夫なのですが、~LShift & sc03Aをトリガーにすると何故か動作しないので
CapsLockを送って処理してる次第です。

1043:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 222日 23時間 7分 3秒

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


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch