【過去ログ】質問・要望・不具合報告
コメントするにあたってのお願い
不具合の報告をする際は可能な限りで構いませんので発生した状況や設定について詳細に報告してください。
コンソールウィンドウやKeyToKeyのフォルダ内にある「Log.txt」にメッセージが記録されていましたら内容を記載してください。
コンソールウィンドウやKeyToKeyのフォルダ内にある「Log.txt」にメッセージが記録されていましたら内容を記載してください。
連絡先
KeyToKeyはゲームなどで使うことを目的として開発されたユーティリティツールです。 キーボード、マウス、コントローラーにキーやマウスのボタン、マクロを割り当てることができます。最新のゲームなどでも動作可能です。
コメント一覧 (170)
SquareEnix のゲーム FF11の、ゲームパッド設定アプリ "Final Fantasy 11 Config"(以下ff11config) です。
KeyToKey 220621.1 で作成、マッピングした XInput Device 0 を ff11config で利用するようにしたとき、
RTとLTが 単一の軸 を読んでいるような動きになっています。
具体的には
o 入力が全ニュートラルにも関わらずRTがオンになりっぱなし
o R2トリガーを(物理的に)引いても 変化なし
o L2トリガーを引くと RT がオフになり LT がオンになる。トリガー戻すと RT オンに戻る
o R2 L2 両方引くと、RT LT 両方オンになる。
といった感じです。
KeyToKey で作成した仮想XInput デバイスではなく、別の XInput デバイスを ff11config で使うようにすると、
RT LT 問題なく動作しました。
例えば、(手元に物理 XInput デバイスが無いので) DS4Windows を xbox360 モードで動作させ
た場合など(この際KeyToKeyはもちろん実行停止しておきます)。
このような挙動になるのは、確認出来た限りではこの ff11config 上でだけで、
gamepad-tester.com や DS4Windows内ユーティリティ XInputChecker では、KeyToKey、DS4Windows 作成の仮想XInputデバイスはトリガー含めて正常に動作しています。
一点不思議なのは KeyToKey、DS4Windows 作成の仮想XInputデバイスの挙動を joy.cpl で見てみると、 R2 L2 を引く等 するとどちらも Z軸のみ が増減します。そもそも XInput なら軸がもう一つないとおかしいような?
そしてこの挙動ですが 版を遡って調べたところ KeyToKey 201218 では起きないことが確認できました。
つまり KeyToKey 201218 + ff11config の組み合わせで RT LT 正常動作します。
公開されている次の版、210123 では 220621.1 と同様の挙動になります。
key0x2key
がしました
たとえば △○×□ 4ボタン全てに Button1 を割り当てたりすると、設定自体は完了できますが、
実際には、この順で最後のボタン(□)に のみ Button1 が割り当てられています。
他の(△○×)ボタンには何も割り当てられません。
本来割り当てられないものなら UI にて無効になってるとわかりやすいかな、と思います。
220708 で確認
key0x2key
がしました
key0x2key
がしました
key0x2key
がしました
https://keytokey-dev.net/archives/32198975.html#comment-261
を試そうとして、
アナログスティックの8方向を有効にし、アナログスティック斜め方向にマウスカーソルの移動を割り当てたところ例外が吐かれました。Log.txtには何も出力されていません。
アナログスティック斜め4方向に割り当てた機能は実行されず(メインウィンドウに割り当てが表示されていないので順当)、縦横4方向に割り当てた機能は実行されています。
設定 : カーソル割り当て
メッセージ : 種類 'System.Exception' の例外がスローされました。
[StackTrace]
System.Exception: 種類 'System.Exception' の例外がスローされました。
場所 KeyToKey.Macro.Core.CursorAssign.get_IsLeft() 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Macro\Core\CursorAssign.cs:行 60
場所 KeyToKey.Macro.Core.CursorAssign.GetDeadZone() 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Macro\Core\CursorAssign.cs:行 110
場所 KeyToKey.Macro.Core.CursorAssign..ctor(MacroRepository Repository, ControllerButtons button, String[] args, AssignData setting) 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Macro\Core\CursorAssign.cs:行 75
場所 KeyToKey.Macro.Core.RepositoryBuilder.CreateCursorAssign(MacroRepository repository, Group group, AssignData x) 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Macro\Core\RepositoryBuilder.cs:行 714
*
もう1件は、同じく、
割り当て設定(コントローラー)→カーソル割り当て
において、オプション内の「横の移動量」の次が「左に移動」となっています。これは「横に移動」の方がわかりやすいと思います。
key0x2key
がしました
22/08/15アップデート以降に必ず発生するようになってしまった不具合についてご報告します。
C#スクリプト中でMatch()関数のオーバーロードの一つであるbool IGlobals.Match(Bitmap, Bitmap, double, out MatchResult)を呼び出すと、OpenCvSharp.OpenCVExceptionから始まる例外がスローされます。
例えばヘルプにある「テンプレート画像/探索元の画像/スコアを指定して画像認識を実行」のサンプルコードをコピーし、テンプレート画像のファイルパスを実在のものにして実行するだけでも例外を吐きます。
当該機能はKeyToKey自体に認識用画像を登録して使うよりもフレキシブルなため便利で多用していたのですが、今回のアップデート以降にスクリプトが軒並み動かなくなってしまいました。
やむなく現在は一つ前のバージョンに戻して使用しています。
上述のサンプルコードも旧バージョンでは問題なく動作していますので、おそらく最新アップデートの「画像認識に関する調整」あたりの弊害かなと勝手に想像しています。
なお当方の環境はWindows 10です。
それと上記不具合とは別ですが、当該メソッドを使用した時に1ピクセル単位で完全一致している画像を検索した場合にも結果のスコアが1ではなく0.99999...等になることが何度かあったため算定方法も気になっています。
お忙しいこととは思いますが、深刻な不具合ですので早めに修正いただけますと幸いです。
お手数ですがよろしくお願い致します。
key0x2key
がしました
key0x2key
がしました
画像認識で SAD が機能していないようです。
画像認識の設定→テストを実行
では、評価値0を最良として、250や500などの悪い評価値も得られ SAD が良好に機能していますが、
Match("識別キー", out var _);
を実行すると、テストのときよりもかなり一致度の高い評価値が出てきて軒並み true が返ってきてしまいます。
(あまり踏み込んで調べていませんが、評価値の大きさから ZNCC の計算結果のようにも感じます)
通常 ZNCC を使っていますが、明度の違いのみで画像認識したいケースだったので SAD を試してみました。
テストは完璧だったので、C#関数からも使えると嬉しいです。
key0x2key
がしました
システムトレイからプロファイルの変更等はできるのですが設定変更等出来ない状況です。
環境はWindows 10 Homeです。
key0x2key
がしました
アクションマクロを使用しています。
不具合といいますか、マクロの入力速度が以前より遅くなっております。
60FPSのゲームで使用しています。
バージョン210502までは1フレーム(=1/60秒)ごとの入力ができていたのですが
それ以降のバージョンはどれも少し遅いです。(正確な数字はわかりませんが)
たとえば
キーを押して離す(KeysA, 17, 0, true) (←1フレーム=1/60秒が16.666…msなので約17msとしてます)
キーを押して離す(KeysS, 17, 0, true)
キーを押して離す(KeysD, 17, 0, true)
キーを押して離す(KeysW, 17, 0, true)
というマクロがあった場合これまでは1フレームごとにASDWと入力されていたのですが
新しいバージョンだと体感ですが3,4フレームごとにASDWと押されています。
ご確認お願い致します。
key0x2key
がしました
1. 220818をインストール
2. トリガーを起動したいので、動作する適当なコントローラを割り当てます。マッピング等は不要
3. なにかしら反応するコントローラのボタン(ここではDpadの左)をトリガーとして、「マクロを割り当てる(押したら)」を実行します
4. アクションマクロを割り当てますが、何でも良いので ここではデフォルトで登録されている「マクロ1」を指定します
5. 「トリガーを離した時に実行中のマクロを終了させる」にチェックします。これが肝です
6. 「トグルモード」「繰り返し」もチェックし、保存します
7. Dpad左を押してトリガーを起動しマクロを繰り返し実行させます
8. メイン画面なりで「実行中」 を確認し、
9. プロファイルをリロードします。マクロは停止されます。
10. process explorerやらタスクマネージャでCPUの跳ね上がりを確認できます。手元のi7-1165G7機では 8 の時点で KeyToKey.exe プロセスのCPU使用は 1%未満でしたが、12%ほどに上がります。
11. ここで再度 7-9を実行すると、CPUの使用率がさらに12%ほどあがります。繰り返しただけ みるみる上がっていきます
5 を実行しないときはCPUの異常消費は起きません
4 でアクションマクロを割り当てましたが、「待機1000ms」1行のみのマクロでも同様に再現します。
C#スクリプト(内容は Wait(1000);1行のみ)でも同様に再現します
9 は、なにかしらの保存動作でもプロファイルがリロードされるのでやはり再現します。
また、リロード時、稀に System.NullReferenceException が発生します。再現はできません。
key0x2key
がしました
key0x2key
がしました
KeyToKeyを利用させていただいている者です。
先程画像添付し、メールにてご質問を送らせていただきましたが、こちらにもコメントをさせていただきました。
現在一部の場面で正常に動作しない現象が起きていまして、解決方法をお教示いただきたくご連絡させていただきました。
割り当て設定画面にてトリガーに使うボタンを選択し、「マクロを割り当てる(押したら)」を選択した際、青枠「トリガーを押した時に実行するマクロを選択してください」が表示されると共に、本来マクロ選択画面が表示されるかと思うのですが、表示されません。
当方の知識だけですと解決に至らなかった為、ご質問させていただきました。
どの様にすればマクロ選択画面が表示されるでしょうか?
ご返信お待ちしております。
key0x2key
がしました
編集ウインドウのタイトルバーにある「リロード」を押すとメインウインドウで選択中のプロファイル名が表示されますが、_(アンダーバー)で始まるプロファイル名ですと頭の_1文字が欠落して表示されるようです。
ver2022/08/15と2022/12/04のいずれでも確認しました。
上記の検証で「_a_b_c_」というプロファイルを作ったところ、2022/12/04が落ちました。
これは再現性がなく一度しか確認できていません。
一度消去して再度作っても落ちませんし、次回起動時に「_a_b_c_」の表示、選択、編集、実行、全て問題ありませんでした。
key0x2key
がしました
矢印キーの、例えば「右」を指定して「Keys.Right」が割り当てられても、
実際には「テンキーの右キー」が出力されているようです。
マクロが上手く動作しないのでAutoHotkeyで確認したところ、
「Right」であるべきログの出力が「NumpadRight」でした。
環境はWindows 10 64bitです。
ご確認のほどよろしくお願いいたします。
key0x2key
がしました
割り当て設定(キーボード/マウス)と割り当て設定(コントローラー)の両方で、「長く押したら」「長押し時」に割り当てたマクロが意図通りに終了しないように感じます。
また、何度も長押しすると2重3重にマクロが立ち上がるようです。
以下、テストマクロになります。
[
{"Name":"Console.Write","Arguments":["\"S\""]},
{"Name":"@While","Arguments":["true"]},
{"Name":"Console.Write","Arguments":["\"c\""]},
{"Name":"Wait","Arguments":["1000"]},
{"Name":"@EndWhile"},
]
key0x2key
がしました
以前はそんなことありませんでしたが、高DPIの環境(4kモニタで150%で使用)でメインウインドウから右クリックメニューの再起動を実施するとメインウインドウの表示位置が変わって大きさが150%大きく表示されます。
KeyToKey自体を終了させてから再度起動した場合は変化ありませんでした。
key0x2key
がしました
バージョン230219以降、短押し/長押し の両方を割付けているボタンを短く押した際
短押しに割付けたマクロ>長押しに割付けたマクロ と連続して実行される様になりました。
現在はバージョン221226に戻して正常作動しています。
OSは Windows10 Pro 64bit です
key0x2key
がしました
なお【150%表示】環境です。
1.メインウィンドウの縦の長さを縮めていくと、縦スペースにまだ余裕がある段階で縦スクロールバーが表示されます。
https://i.imgur.com/ZGJQbJx.png
2.アクションマクロの編集領域で、一番右までスクロールしてもアクションの右端が見えない事がありました。
ウィンドウの横サイズを充分に拡大すれば問題無く見えますが、中途半端な拡大の場合はスクロールバーが無くなり且つ右端が見えないこともあります。
https://i.imgur.com/EOX5CJx.png
[
{"Name":"@If","Arguments":["ToNum(String.Substring($対象文, $前位置+Length($前置文), $後位置-$前位置-Length($前置文)), $数値ローカル)"]},
{"Name":"Global.Assign","Arguments":["$数値","$数値ローカル"]},
{"Name":"@EndIf"},
]
key0x2key
がしました
2023/4/4以前のバージョンでは問題は起きていません。
key0x2key
がしました
待機時間を指定した範囲でランダムに設定することはできますか?
左クリック
"待機5~10分"
左クリック
のようなアクションを作りたいです。
プログラムに関する知識が無く、過去ログを見てもわかりませんでした。申し訳ないです。
key0x2key
がしました
23/07/07 更新分からアクションマクロにて「マクロが停止したとき」に設定したマクロが実行されなくなりました。
「トリガーを押したとき」の項目では「トリガーを離したときに実行中のマクロを終了させる」のみチェックしております。
ご確認お願い致します。
key0x2key
がしました
不具合報告いたします。
トリガーにキーを割り当てます。
例えばNum1をトリガーとし キーボードのAを割り当てます。
Num1を押したままショートカットよりメインプロファイルの有効無効の切り替えで
無効にするとキーボードのAは押されなくなるのですがステータスが実行中のまま保持されてしまいます。
そのあとNum1を離してからメインプロファイルを有効にするのですが、ステータスが実行中で保持されたままのせいなのか
Num1を押してもキーボードのAが押されません。
その後Num1を離せばステータスが消えるので、その後はNum1を押せばキーボードのAは押されます。
これがマクロを割り当てた場合だとメインプロファイルを無効にした時点でステータスが消えるので
同様の現象は起こりません。
ご確認お願い致します。
key0x2key
がしました
再起動を繰り返すと徐々にからウインドウサイズが小さくなりますがサイズを固定することは可能でしょうか。
key0x2key
がしました
マクロで「音声ファイルを再生」というアクションを実行すると何回かは一応鳴らすことができるのですが、5回目あたりでKeyToKeyが落ちます。
今は「システムサウンドの再生」だと落ちないので、妥協してそっちを使っています。
key0x2key
がしました
質問コメントが壊れてしまったようで924以降のコメントが閲覧できません。幾つかブラウザを試しても同じ結果でした。
key0x2key
がしました
割り当て設定(キーボード/マウス)
割り当て設定(コントローラー)
において、「XXXが押されている時」に「YYY」へキーやマクロを割り当てると、
XXXを押しながらYYYを押したとき、正しく、割り当て通りに動作するのですが、
XXXを押さずにYYYを押したときは、必ず例外が投げられるようです。
XXXがキーボードのキーでもゲームパッドのボタンでも、
YYYがキーボードのキーでもゲームパッドのボタンでも、
どの組み合わせでも例外が投げられているようです。
コンソールに例外が表示される以外に大きな実害は感じていません。
System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
場所 KeyToKey.Models.KeyToKeyCoreEngine.ControllerListener_ControllerStatusChanged(Object sender, ControllerStatusChangedEventArgs e) 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Models\KeyToKeyCoreEngine.cs:行 996
key0x2key
がしました
1.
プロファイル読み込み直後(手元の環境では4ms経過~70ms?経過)に Wait() を実行すると、Wait(1)のように短い Wait()であっても、70msほどのウェイトがかかるようです。
これは、WaitConfig.Wait.HighPrecision = true; の元でも起きてしまうようでした。
スタートアップマクロの冒頭ぐらいにしか影響が出ないので、現状のままでも問題なさそうと思いました。
2.
画像認識で SAD に設定すると、Match() メソッドの戻り値が常に True になってしまうようです。
設定中の画像認識テストでは上手く動いていて、マクロから呼ぶと挙動がおかしいように見えました。
Vector target=(map[up].screen+map[down].screen)/2;
var b=new Bounds(target.x-4,target.y-4, 8, 8);
_globals.Match("link1_1",b,out var result);
このオーバーロードで確認しました。
result.X 、result.Y 、result.Score には正しい値が入っていたので、実用上は問題ありません。
key0x2key
がしました
メニューの作製/設定でメニューを作成したのですが
20個登録したあたりでカーソルと選択している項目が
ずれてきてしまいます。左上あたり。
それと割り当て設定でメニューを登録したのですが
その他設定→メニュー表示位置→特定の座標
表示座標を選択する→で座標を登録するのですが
キャンセルと完了が逆になってます。
キャンセルを押すと座標が登録できるようになってます。
宜しくお願い致します。
key0x2key
がしました
純正ではないXboxコントローラーをXInputで使用するにあたり、Bボタンを押下すると以下のエラーが発生いたします。
場所 KeyToKey.Models.KeyToKeyCoreEngine.ControllerListener_ControllerStatusChanged(Object sender, ControllerStatusChangedEventArgs e) 場所 C:\Users\root\Source\Repos\KeyToKey\KeyToKey\Models\KeyToKeyCoreEngine.cs:行 996
System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。
keytokeyのスクリプトでは何も行っていなく、「XInput 0」を認識し動作する状態です。
Bボタンだけ発生します。上位には影響はなくBボタンは機能します。
が、今後Bボタンにマクロを割り当てて、本来のエラーとはき違えて報告してしまうことが考えられます。
またコンソールにログを出力して状態をみたいときに邪魔になってしまうなどあります。
versionは、KeyToKey.230805です。
今後改修されることがございますでしょうか。以上です。
key0x2key
がしました
2024/05/15更新版にて、
アクションマクロ(非推奨ですが)の
Xinput.リセットに軽微な不具合を見つけましたので報告致します。
Xinputの(マッピング、キー入力など)デバイス番号は0~3となっていますが、
Xinput.リセットは1~4となっていました。(説明文ではリセットも0~3となっています。)
key0x2key
がしました
本日最新版にアップデートしたところwindows defenderにて上記のマルウェア判定が行われました。
key0x2key
がしました
key0x2key
がしました
入力の押すで発生しました
キーに
Keys.ControlKey
Keys.LControlKey
の二つは正常に働くのですが
Keys.RControlKey
が働きません
key0x2key
がしました
アップデート後、以下の不具合が出るようになったので報告いたします。
[環境]
・240719ver→240930.2verにアップデートしたところ特定条件下で不具合が出るようになりました。
・240719ver,240930ver はそれぞれ再度ダウンロードした空っぽの状態で、最低限のマクロを作成し確認しています。
・2160 x 3840 のモニターを縦配列で2枚並べ、拡大縮小は(100%,150%)の並びで再現
[特定条件]
・異なる拡大率のモニターが存在している
・症状はサブディスプレイで発生し、メインディスプレイでは発生しない
・メインディスプレイを切り替えると症状が発生するモニターが入れ替わる
・全て同一の拡大率のディスプレイでは発生しない
[症状]
・「ステータス」表示中、ディスプレイを跨ぐときに「カーソル位置」の数値が飛ぶ (上記環境下で2160→3240)
・「マウスカーソルを移動」で、上記の飛んでしまう範囲の値を設定すると、別の位置に移動する
・画像認識でサブディスプレイ側を撮影すると、撮影した画像位置がズレて撮影される
・画像認識をサブディスプレイ上で範囲指定したのち、撮影してテストを実行をしようとすると、指定した範囲からズレた位置でテストが開始される
・「モニターのサイズに合わせる」で範囲を指定すると指定範囲からズレた範囲が指定される。(数値上は正しい)
[考察]
拡大率が異なるディスプレイが存在したときに、メインディスプレイの拡大率を参照してしまい、サブディスプレイの拡大率が無視された値を内部的に入力されているように伺える
ご確認宜しくお願いします
key0x2key
がしました
コンソールを常時表示させています。
ウインドウの位置とサイズを記憶にチェックを入れている状態で再起動を実施するごとにサイズが小さくなります。
位置は問題なく記憶できています。
key0x2key
がしました