diff --git a/Wox.Infrastructure/GloablHotkey.cs b/Wox.Infrastructure/GlobalHotkey.cs
similarity index 98%
rename from Wox.Infrastructure/GloablHotkey.cs
rename to Wox.Infrastructure/GlobalHotkey.cs
index 22602d27d..be7cde76a 100644
--- a/Wox.Infrastructure/GloablHotkey.cs
+++ b/Wox.Infrastructure/GlobalHotkey.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -29,93 +29,6 @@ namespace Wox.Infrastructure
WM_SYSKEYDOWN = 260
}
- ///
- /// Listens keyboard globally.
- /// Uses WH_KEYBOARD_LL.
- ///
- public class GloablHotkey : IDisposable
- {
- private InterceptKeys.LowLevelKeyboardProc hookedLowLevelKeyboardProc;
- private IntPtr hookId = IntPtr.Zero;
- public delegate bool KeyboardCallback(KeyEvent keyEvent, int vkCode, SpecialKeyState state);
- public event KeyboardCallback hookedKeyboardCallback;
-
- //Modifier key constants
- private const int VK_SHIFT = 0x10;
- private const int VK_CONTROL = 0x11;
- private const int VK_ALT = 0x12;
- private const int VK_WIN = 91;
-
- public GloablHotkey()
- {
- // We have to store the LowLevelKeyboardProc, so that it is not garbage collected runtime
- hookedLowLevelKeyboardProc = LowLevelKeyboardProc;
- // Set the hook
- hookId = InterceptKeys.SetHook(hookedLowLevelKeyboardProc);
- }
-
- public SpecialKeyState CheckModifiers()
- {
- SpecialKeyState state = new SpecialKeyState();
- if ((InterceptKeys.GetKeyState(VK_SHIFT) & 0x8000) != 0)
- {
- //SHIFT is pressed
- state.ShiftPressed = true;
- }
- if ((InterceptKeys.GetKeyState(VK_CONTROL) & 0x8000) != 0)
- {
- //CONTROL is pressed
- state.CtrlPressed = true;
- }
- if ((InterceptKeys.GetKeyState(VK_ALT) & 0x8000) != 0)
- {
- //ALT is pressed
- state.AltPressed = true;
- }
- if ((InterceptKeys.GetKeyState(VK_WIN) & 0x8000) != 0)
- {
- //ALT is pressed
- state.WinPressed = true;
- }
-
- return state;
- }
-
- [MethodImpl(MethodImplOptions.NoInlining)]
- private IntPtr LowLevelKeyboardProc(int nCode, UIntPtr wParam, IntPtr lParam)
- {
- bool continues = true;
-
- if (nCode >= 0)
- {
- if (wParam.ToUInt32() == (int)KeyEvent.WM_KEYDOWN ||
- wParam.ToUInt32() == (int)KeyEvent.WM_KEYUP ||
- wParam.ToUInt32() == (int)KeyEvent.WM_SYSKEYDOWN ||
- wParam.ToUInt32() == (int)KeyEvent.WM_SYSKEYUP)
- {
- if (hookedKeyboardCallback != null)
- continues = hookedKeyboardCallback((KeyEvent)wParam.ToUInt32(), Marshal.ReadInt32(lParam), CheckModifiers());
- }
- }
-
- if (continues)
- {
- return InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam);
- }
- return (IntPtr)1;
- }
-
- ~GloablHotkey()
- {
- Dispose();
- }
-
- public void Dispose()
- {
- InterceptKeys.UnhookWindowsHookEx(hookId);
- }
- }
-
public static class InterceptKeys
{
public delegate IntPtr LowLevelKeyboardProc(int nCode, UIntPtr wParam, IntPtr lParam);
@@ -189,4 +102,91 @@ namespace Wox.Infrastructure
public Int16 wParamL;
public Int16 wParamH;
}
+
+ ///
+ /// Listens keyboard globally.
+ /// Uses WH_KEYBOARD_LL.
+ ///
+ public class GlobalHotkey : IDisposable
+ {
+ private InterceptKeys.LowLevelKeyboardProc hookedLowLevelKeyboardProc;
+ private IntPtr hookId = IntPtr.Zero;
+ public delegate bool KeyboardCallback(KeyEvent keyEvent, int vkCode, SpecialKeyState state);
+ public event KeyboardCallback hookedKeyboardCallback;
+
+ //Modifier key constants
+ private const int VK_SHIFT = 0x10;
+ private const int VK_CONTROL = 0x11;
+ private const int VK_ALT = 0x12;
+ private const int VK_WIN = 91;
+
+ public GlobalHotkey()
+ {
+ // We have to store the LowLevelKeyboardProc, so that it is not garbage collected runtime
+ hookedLowLevelKeyboardProc = LowLevelKeyboardProc;
+ // Set the hook
+ hookId = InterceptKeys.SetHook(hookedLowLevelKeyboardProc);
+ }
+
+ public SpecialKeyState CheckModifiers()
+ {
+ SpecialKeyState state = new SpecialKeyState();
+ if ((InterceptKeys.GetKeyState(VK_SHIFT) & 0x8000) != 0)
+ {
+ //SHIFT is pressed
+ state.ShiftPressed = true;
+ }
+ if ((InterceptKeys.GetKeyState(VK_CONTROL) & 0x8000) != 0)
+ {
+ //CONTROL is pressed
+ state.CtrlPressed = true;
+ }
+ if ((InterceptKeys.GetKeyState(VK_ALT) & 0x8000) != 0)
+ {
+ //ALT is pressed
+ state.AltPressed = true;
+ }
+ if ((InterceptKeys.GetKeyState(VK_WIN) & 0x8000) != 0)
+ {
+ //ALT is pressed
+ state.WinPressed = true;
+ }
+
+ return state;
+ }
+
+ [MethodImpl(MethodImplOptions.NoInlining)]
+ private IntPtr LowLevelKeyboardProc(int nCode, UIntPtr wParam, IntPtr lParam)
+ {
+ bool continues = true;
+
+ if (nCode >= 0)
+ {
+ if (wParam.ToUInt32() == (int)KeyEvent.WM_KEYDOWN ||
+ wParam.ToUInt32() == (int)KeyEvent.WM_KEYUP ||
+ wParam.ToUInt32() == (int)KeyEvent.WM_SYSKEYDOWN ||
+ wParam.ToUInt32() == (int)KeyEvent.WM_SYSKEYUP)
+ {
+ if (hookedKeyboardCallback != null)
+ continues = hookedKeyboardCallback((KeyEvent)wParam.ToUInt32(), Marshal.ReadInt32(lParam), CheckModifiers());
+ }
+ }
+
+ if (continues)
+ {
+ return InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam);
+ }
+ return (IntPtr)1;
+ }
+
+ ~GlobalHotkey()
+ {
+ Dispose();
+ }
+
+ public void Dispose()
+ {
+ InterceptKeys.UnhookWindowsHookEx(hookId);
+ }
+ }
}
\ No newline at end of file
diff --git a/Wox.Infrastructure/Wox.Infrastructure.csproj b/Wox.Infrastructure/Wox.Infrastructure.csproj
index 19392cf06..06326b2f7 100644
--- a/Wox.Infrastructure/Wox.Infrastructure.csproj
+++ b/Wox.Infrastructure/Wox.Infrastructure.csproj
@@ -51,7 +51,7 @@
-
+
diff --git a/Wox/HotkeyControl.xaml.cs b/Wox/HotkeyControl.xaml.cs
index 1d64f0fc7..b957f9548 100644
--- a/Wox/HotkeyControl.xaml.cs
+++ b/Wox/HotkeyControl.xaml.cs
@@ -41,7 +41,7 @@ namespace Wox
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
string text = string.Empty;
- SpecialKeyState specialKeyState = new GloablHotkey().CheckModifiers();
+ SpecialKeyState specialKeyState = new GlobalHotkey().CheckModifiers();
if (specialKeyState.AltPressed)
{
text += "Alt";
diff --git a/Wox/MainWindow.xaml.cs b/Wox/MainWindow.xaml.cs
index d0dbc9048..e42591a8e 100644
--- a/Wox/MainWindow.xaml.cs
+++ b/Wox/MainWindow.xaml.cs
@@ -35,7 +35,7 @@ namespace Wox
public static bool initialized = false;
private static readonly List waitShowResultList = new List();
- private readonly GloablHotkey globalHotkey = new GloablHotkey();
+ private readonly GlobalHotkey globalHotkey = new GlobalHotkey();
private readonly KeyboardSimulator keyboardSimulator = new KeyboardSimulator(new InputSimulator());
private readonly Storyboard progressBarStoryboard = new Storyboard();
private bool WinRStroked;
@@ -104,7 +104,7 @@ namespace Wox
}
catch (Exception)
{
- MessageBox.Show("Registe hotkey: " + hotkeyStr + " failed.");
+ MessageBox.Show("Register hotkey: " + hotkeyStr + " failed.");
}
}
@@ -349,7 +349,7 @@ namespace Wox
{
bool hideWindow = result.Action(new ActionContext()
{
- SpecialKeyState = new GloablHotkey().CheckModifiers()
+ SpecialKeyState = new GlobalHotkey().CheckModifiers()
});
if (hideWindow)
{