現在、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 でライブラリを使用する方法はありますか? どんな助けも楽しみにしています。