[過去ログ] AutoHotkey スレッド part28 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
553: (ワッチョイ 72ba-t1Nk) 2020/11/06(金)00:51 ID:IZlN468w0(1) AAS
>>552
試したけどスクリプト自体は何も問題なく動いてる
AHKのウィンドウを出さなくてもX軸やY軸やボタンも取得してツールチップに表示されてる
Chromeやメモ帳などアクティブ時でも問題なし
JTKも常駐させてるけど併用して問題ない

となると貴方の環境で何か別のスクリプトや他の常駐ソフトなどが邪魔してるんじゃない?
ちなみにスクリプトを管理者権限で実行してもダメ?
554: (ワッチョイW 6558-RVv3) 2020/11/06(金)01:58 ID:03VprpHh0(1/2) AAS
新しいPCと古いPCの環境の違いを書き出してみるといいよ
多分OSのビルドやahkのバージョンあたりに細かい差異があるんでないの
知らんけど
555
(3): (ワッチョイ 6176-9BKS) 2020/11/06(金)04:26 ID:Cd90Lss80(1/3) AAS
>>546
>>547

例えばAutoHotkey.exeをリネームしたa.exeとb.exeを用意します。
それぞれa.ahkとb.ahkを実行します。
どちらのスクリプトにもループ処理が入っています。
これらのループ処理を両方実行した場合、片方のみ実行するより動作が鈍くなります。
つまり実行ファイルを分けても、それぞれが割り込みあっているのだろうと思います。
これを、完全に別物として実行させたいわけです。
556
(2): (ワッチョイ 3192-K92V) 2020/11/06(金)08:28 ID:RAq9Icdy0(1) AAS
>>555
動作コアを分ける
でググってみたらどうだろ?
557
(1): (ワッチョイW 6558-RVv3) 2020/11/06(金)14:28 ID:03VprpHh0(2/2) AAS
スレッドとプロセスがごっちゃになってるぽい?
画像リンク[gif]:image.itmedia.co.jp

>555
exe(プロセス)を分けて動作が遅くなるっていうのは
色んなアプリを一度に立ち上げて動かしてたら1窓単体起動のときより重くなりましたつってるのと同じでは?
>556の言うように手動で任意のCPU割り当てる方法もあるけど
プロセス別のコア割り当ては基本OS側の仕事だと思う

同一プロセス内でのマルチスレッドについては
AHKは擬似マルチスレッドなのでマルチコア対応はしてないと思う
558
(1): (ワッチョイ 6558-t1Nk) 2020/11/06(金)16:31 ID:pYlpzeSL0(1/2) AAS
>>555
どんなループ処理してんだ
1秒に何百回みたいなループさせてんのか?
559
(2): (ワッチョイ 6176-9BKS) 2020/11/06(金)21:48 ID:Cd90Lss80(2/3) AAS
>>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によるマウスカーソルの移動速度が上がります。
省7
560: (ワッチョイ 6176-9BKS) 2020/11/06(金)21:48 ID:Cd90Lss80(3/3) AAS
>>557
>>558
561: (ワッチョイ 6558-t1Nk) 2020/11/06(金)22:02 ID:pYlpzeSL0(2/2) AAS
そもそもAutoHotkey.exeを改名とかやってることが特殊過ぎてな
意味あんのかそれって感じだし
まだコンパイルしてスクリプト自体を別exeにした方がいいんじゃねえの
562: (ワッチョイ d25a-t1Nk) 2020/11/06(金)22:14 ID:94t2tBdQ0(1) AAS
>>559
>そこで問題なのが、MouseGestureL.exeを終了させると、AutoHotkey.exe下のmouse.ahkによるマウスカーソルの移動速度が上がります。
MouseGestureL.exeも基本常駐じゃないの?終了即再起動することはあるけど終了したままにするケースがよく分からない
ま、何にしてもMouseGestureLが終了したらmouse.ahkの挙動が変わるのが嫌ということなら
MouseGestureLの方にmouse.ahkをIncludeさせればいいのでは?
それならMouseGestureL起動中しかmouse.ahkも動作しないわけだから
563: (ワッチョイ a9b1-xP1L) 2020/11/06(金)22:57 ID:zxpauMpi0(1) AAS
>>559
自分もMGL使ってるけど同じahkスクリプトで常駐させたいものはMGLのプラグインにして
監視するのには「while」などのループじゃなく「settimer」使ってるな

プラグインにするのは別に薦めないけど、試しに「while」の代わりに「settimer」で監視してみては?
564: (ワッチョイW 6558-RVv3) 2020/11/07(土)01:04 ID:lXeAUpve0(1) AAS
マルチスレッド云々以前の問題な気が
まず、マウスの挙動を制御するプロセスス2つ同時に動かすことで干渉しあってる可能性は?
コントロールの奪い合いになってたりしない?

あとmouse.ahkの回し方に問題あると思う
20msの高頻度でMousemoveし続けて必ず時間どうりに動かすのがまず無理だし
ループ監視するよりHotkey、#if あたりで2ストロークイベントにしたほうがスムースに動くんではないか
565: (スフッ Sdb2-RPT/) 2020/11/07(土)19:11 ID:/fD/cqh1d(1) AAS
画像リンク[jpg]:i.imgur.com
566
(1): (ワッチョイ b197-NW7M) 2020/11/10(火)16:23 ID:7m/sr7zP0(1/2) AAS
ループ間のディレイをなくす設定ってありますか?
Reloadで中断できるようにDllCallのSleepを小分けにしてループさせてたんですが
WindowsとAHKのアプデ後からループ10回で0.1秒ぐらいのディレイが入るようになりました
現状はこの設定です
#NoEnv
ListLines Off
Process, Priority, , H
SetBatchLines, -1
SetKeyDelay, -1, -1
SetMouseDelay, -1
省4
567
(1): (ワッチョイ 550a-l9zQ) 2020/11/10(火)20:20 ID:iUPLlj4e0(1) AAS
>>566
実際のスクリプトを見ないと誰も答えられない
検証用に最小限まで削ってから貼ってください
568: (ワッチョイW 6558-RVv3) 2020/11/10(火)21:17 ID:Opml9bS20(1/2) AAS
winみたいなマルチタスクOSではアプリ層で割り込み禁止にできないし
AHK側の設定をどう変えてもノーディレイにはならない

けどsleepの精度を上げる方法はある模様
外部リンク[html]:www.charatsoft.com

AHKで適用できるのか、できてもインタプリタなスプリクトでどこまで
シビアに時間制御ができるのかは知らんけど
569
(1): (ワッチョイ b197-NW7M) 2020/11/10(火)21:18 ID:7m/sr7zP0(2/2) AAS
>>567
上記の設定の後に

Sleep(Loops) {
Loop, %Loops%
DllCall("Sleep", "UInt", 50)
}

Shift::
Send, {Lbutton}
Sleep(20)
Send, {Lbutton}
省4
570: (ワッチョイW 6558-RVv3) 2020/11/10(火)21:55 ID:Opml9bS20(2/2) AAS
A_TickCount を使おう
ループの中に組み込んで所定時間が過ぎてたらbreakするように組めば
sleepでの時間誤差は考慮しなくて良くなる
571
(1): (ワッチョイ 0d0a-6m0w) 2020/11/11(水)00:33 ID:V+LIbDi40(1) AAS
>>569
↑のスクリプトで検証、ループであってもほぼ一致(+20〜30ms)ブラウザ経由の誤差だけ
他の負荷がかかってるのかも?タスクマネージャーで確認

念のため以下のスクリプトで検証してみてください。
通常は1ms程度の誤差しか出ないはずです。
外部リンク:pastebin.com
572: (ワッチョイ 1597-D0pj) 2020/11/13(金)21:38 ID:p37fZhSk0(1) AAS
>>571
セーフモードでの検証で
外部リンク:pastebin.com
AHK再インストール後でも同じでした
1-
あと 430 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s