From c44be95ca0f222e9729f9c7e7396b174df43cbd6 Mon Sep 17 00:00:00 2001 From: paring Date: Sun, 28 May 2023 17:33:49 +0900 Subject: [PATCH] feat: integrate hook_is_running --- Runtime/SkyHookManager.cs | 8 +++----- Runtime/SkyHookNative.cs | 7 +++++++ plugins/skyhook.bundle | Bin 1162765 -> 1162733 bytes 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Runtime/SkyHookManager.cs b/Runtime/SkyHookManager.cs index f7f9da4..22d874c 100644 --- a/Runtime/SkyHookManager.cs +++ b/Runtime/SkyHookManager.cs @@ -31,7 +31,7 @@ namespace SkyHook /// /// Whether the hook is active now. /// - public bool isHookActive; + public bool isHookActive => SkyHookNative.HookIsRunning(); /// /// Your callback for each key updated events. @@ -90,13 +90,12 @@ namespace SkyHook _callback = HookCallback; var result = SkyHookNative.StartHook(_callback); - + if (result != null) { exception = new SkyHookException(result); } - isHookActive = true; started = true; _mre.WaitOne(); @@ -113,6 +112,7 @@ namespace SkyHook while (!started && exception == null) { + Thread.Yield(); } if (exception != null) @@ -134,8 +134,6 @@ namespace SkyHook { _mre.Set(); } - - isHookActive = false; } /// diff --git a/Runtime/SkyHookNative.cs b/Runtime/SkyHookNative.cs index 4032032..d283640 100644 --- a/Runtime/SkyHookNative.cs +++ b/Runtime/SkyHookNative.cs @@ -29,5 +29,12 @@ namespace SkyHook /// null if no error, or an error message. [DllImport(Lib, EntryPoint = "stop_hook", CallingConvention = CallingConvention.Cdecl)] public static extern string StopHook(); + + /// + /// The native version of method handled by . + /// + /// null if no error, or an error message. + [DllImport(Lib, EntryPoint = "hook_is_running", CallingConvention = CallingConvention.Cdecl)] + public static extern bool HookIsRunning(); } } diff --git a/plugins/skyhook.bundle b/plugins/skyhook.bundle index 32154ca9ea5e699524d6e393a9e3da462830b0f9..5f932af5deaf877896247e52b6136d7d910fa477 100755 GIT binary patch delta 199666 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�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