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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
539
(1): (ワッチョイ f173-CXnf) 2020/11/01(日)20:13 ID:f8skW5aS0(2/2) AAS
>>537-538
ありがとうございます。その方法を調べて試してみます
540: (ワッチョイ f158-L1Xi) 2020/11/01(日)21:38 ID:+lp4/pQd0(1) AAS
今まで使えてたんですが、最近のバージョンアップのせいか、気づいたら使えなくなってました。
仕様変更があったみたいなインフォあったらページ教えてくれると嬉しいです。

キーを長押しした場合に分岐する関数です。
この「Time=0.2」の部分が機能しなくなりました。
初期値を指定して省略する、ということをせず、
関数を呼び出す際、省略せずに逐一「,"0.2")」と記述すれば機能するので、
現状すべてそれで修正しました。

また、数値を「Time=0.5」にすると一応分岐が機能するんですが、
体感的にどうも1.0秒くらい押しておかないと長押し判定されないんです。

Hold(Key, SendA, SendB, Time=0.2)
省13
541: 540 (ワッチョイ f158-L1Xi) 2020/11/02(月)04:26 ID:YjDJU8KL0(1) AAS
すみません自己解決しました!
バージョンアップのせいなんかじゃありませんでした・・・

別の関数の都合で以下のようなものを書いていたのですが、
SetFormat, float, 3.0
これ計算結果に対してだけ効果のあるものだと思ってたんですが、
関数の初期値に指定した数値にも影響するみたいでした。
0.5という指定のときに1.0に四捨五入されるのも納得です。

自分がアホでした、スレ汚しごめんなさい。
542
(1): (ワッチョイW d96e-4geH) 2020/11/04(水)07:17 ID:fAt0anr70(1/2) AAS
PageUpをWin+L(ロック)にしたいのですが、上手く動きません

PgUp::#l
で動きません…
これは何が原因なのでしょうか
543: (ワッチョイW d96e-4geH) 2020/11/04(水)07:27 ID:fAt0anr70(2/2) AAS
>>542
自己解決しました
DllCall('LockWorkStation')
544: (ワッチョイW 5edc-veuN) 2020/11/04(水)07:50 ID:hfaH06vJ0(1) AAS
珍しいやつがいるな
545: (ワッチョイ 6176-9BKS) 2020/11/04(水)17:16 ID:1IOEDSZU0(1) AAS
真にマルチスレッド化する方法は、どうしてもないのでしょうか?
例えばAutoHotkey.exeをコピーして、別で実行してみても、それぞれのスクリプトは疑似マルチスレッド的に動作しています。
PCの一般ユーザーでエンジニアではないです。根本の仕組みがわからないために湧いた疑問なのですが、
何とかして別のソフトのように実行できないものでしょうか?
546
(1): (ワッチョイ 5e02-t1Nk) 2020/11/04(水)18:08 ID:RBW8HZXS0(1) AAS
>別のソフトのように実行
同じスクリプトを同時に実行したいってことなら #SingleInstance Off
547
(1): (ワッチョイ 6558-t1Nk) 2020/11/04(水)18:25 ID:ZyxeyMFR0(1) AAS
>それぞれのスクリプトは疑似マルチスレッド的に動作しています。

の意味が分からん
真マルチスレッド的な動作と何が違うん?
548: (ワッチョイ c13e-79Tt) 2020/11/05(木)18:07 ID:I/mZi28I0(1/3) AAS
新しいパソコンで、ジョイパットが反応してくれません

AutoHotkeyのウィンドウ(実行履歴とか変数一覧を表示してくれるやつ)が
アクティブ状態だと何故か普通に反応するのですが、それ以外ではうんともすんとも言ってくれません
この症状に心当たりある人ますか?
549: (ワッチョイ 5e02-t1Nk) 2020/11/05(木)21:20 ID:yGBOughe0(1) AAS
#If系のディレクティブが誤爆してんじゃないの
550
(1): (ワッチョイ c13e-79Tt) 2020/11/05(木)22:18 ID:I/mZi28I0(2/3) AAS
検証用に数行だけ書いたスクリプトでやってみてもダメなので#If系は関係なさそうです
一応、JoyToKeyは正常に反応するので、

ジョイパット操作をJoyToKeyで受ける→JoyToKeyが出力したキー操作をAutoHotkeyで処理する

ということは出来そう
ただ、書き直しが面倒なうえに処理がややこしいので、できれば避けたい
551: (ワッチョイ 72ba-t1Nk) 2020/11/05(木)22:45 ID:GGl1mCW80(1) AAS
>>550
その検証用スクリプト貼ったら?
552
(1): (ワッチョイ c13e-79Tt) 2020/11/05(木)23:50 ID:I/mZi28I0(3/3) AAS
検証用といっても、ツールチップでジョイパットの状態を表示しているだけです。
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
省6
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秒に何百回みたいなループさせてんのか?
1-
あと 444 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.016s