update to latest version

This commit is contained in:
Merith 2025-02-28 11:27:06 -08:00
parent b69a6ae4a1
commit ddd2ea9eb5
41 changed files with 7918 additions and 7943 deletions

View file

@ -1,55 +1,55 @@
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace ControlApp;
internal class LockKeyboard
{
private delegate nint LowLevelKeyboardProc(int nCode, nint wParam, nint lParam);
private const int WH_KEYBOARD_LL = 13;
private static LowLevelKeyboardProc _proc = HookCallback;
private static nint _hookID = IntPtr.Zero;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, nint hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool UnhookWindowsHookEx(nint hhk);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint CallNextHookEx(nint hhk, int nCode, nint wParam, nint lParam);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint GetModuleHandle(string lpModuleName);
private static nint SetHook(LowLevelKeyboardProc proc)
{
using Process curProcess = Process.GetCurrentProcess();
using ProcessModule curModule = curProcess.MainModule;
return SetWindowsHookEx(13, proc, GetModuleHandle(curModule.ModuleName), 0u);
}
private static nint HookCallback(int nCode, nint wParam, nint lParam)
{
if (nCode >= 0)
{
return 1;
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
public void Lock()
{
_hookID = SetHook(_proc);
}
public void Unlock()
{
UnhookWindowsHookEx(_hookID);
}
}
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace ControlApp;
internal class LockKeyboard
{
private delegate nint LowLevelKeyboardProc(int nCode, nint wParam, nint lParam);
private const int WH_KEYBOARD_LL = 13;
private static LowLevelKeyboardProc _proc = HookCallback;
private static nint _hookID = IntPtr.Zero;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, nint hMod, uint dwThreadId);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool UnhookWindowsHookEx(nint hhk);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint CallNextHookEx(nint hhk, int nCode, nint wParam, nint lParam);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern nint GetModuleHandle(string lpModuleName);
private static nint SetHook(LowLevelKeyboardProc proc)
{
using Process curProcess = Process.GetCurrentProcess();
using ProcessModule curModule = curProcess.MainModule;
return SetWindowsHookEx(13, proc, GetModuleHandle(curModule.ModuleName), 0u);
}
private static nint HookCallback(int nCode, nint wParam, nint lParam)
{
if (nCode >= 0)
{
return 1;
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
public void Lock()
{
_hookID = SetHook(_proc);
}
public void Unlock()
{
UnhookWindowsHookEx(_hookID);
}
}