0

現在、Steelseries GameSense SDKを使用して、キーボードとマウス用の独自のエフェクトなどを作成しています。

クリックやプレスでマウスとキーボードを点灯させるには、globalmousekeyhookライブラリを使用します。

残念ながら、マウスとキーボードのイベントはトリガーされません。

また、マウスの動作が遅くなり、キーボード入力が遅くなります。

ラグと遅延は、約 30 分だけ残ります。

ウィンドウがラグを検出するため、ウィンドウがフックを削除すると思われます。

このサンプルプログラムも試してみましたが、すべて正常に動作します。

コードは次のとおりです。

private static readonly IKeyboardMouseEvents GlobalHook = Hook.GlobalEvents();
static InputManager()
{
    Logger.Log("Starting...", Logger.Type.Info);
    GlobalHook.KeyDown += KeyEvent;
    GlobalHook.MouseDownExt += MouseEvent;
    Logger.Log("Ready!", Logger.Type.Info);
}

イベント関数は次のとおりです。

private static void KeyEvent(object sender, KeyEventArgs eventArgs)
{
    Logger.Log(eventArgs.KeyCode.ToString());
}
private static void MouseEvent(object sender, MouseEventArgs eventArgs)
{
    Logger.Log(eventArgs.Button.ToString());
}

クラス全体 (およびプロジェクト) は、ここにあります

コンストラクターは、プログラムで実行される唯一のものです。

ラグに関して私が見つけたのは、イベント関数が高速でなければならないということです。Logger.Log()関数が高速であり、使用時にラグも発生するため、私の場合は問題になりませんConsole.WriteLine()

前述のとおり、サンプル プログラムは正常に動作します。サンプルコードをコピーしてみましたが、違いはありませんでした。私のプログラムとサンプル プログラムの唯一の実際の違いは、サンプルでは .Net Core を使用していますが、私は .Net Framework (4.8) を使用していることです。それが理由でしょうか?それが理由である場合、.Net Framework でライブラリを使用する方法はありますか? どんな助けも楽しみにしています。

4

1 に答える 1