MouseKeyboardActivityMonitor/KeyboardHookListener.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Windows.Forms;
using MouseKeyboardActivityMonitor.WinApi;
namespace MouseKeyboardActivityMonitor
{
/// <summary>
/// This class monitors all keyboard activities and provides appropriate events.
/// </summary>
public class KeyboardHookListener : BaseHookListener
{
/// <summary>
/// Initializes a new instance of <see cref="KeyboardHookListener"/>.
/// </summary>
/// <param name="hooker">Depending on this parameter the listener hooks either application or global keyboard events.</param>
/// <remarks>Hooks are not active after instantiation. You need to use either <see cref="BaseHookListener.Enabled"/> property or call <see cref="BaseHookListener.Start"/> method.</remarks>
public KeyboardHookListener(Hooker hooker)
: base(hooker)
{
}
/// <summary>
/// This method processes the data from the hook and initiates event firing.
/// </summary>
/// <param name="wParam">The first Windows Messages parameter.</param>
/// <param name="lParam">The second Windows Messages parameter.</param>
/// <returns>
/// True - The hook will be passed along to other applications.
/// <para>
/// False - The hook will not be given to other applications, effectively blocking input.
/// </para>
/// </returns>
protected override bool ProcessCallback(int wParam, IntPtr lParam)
{
KeyEventArgsExt e = KeyEventArgsExt.FromRawData(wParam, lParam, IsGlobal);
InvokeKeyDown(e);
InvokeKeyPress(wParam, lParam);
InvokeKeyUp(e);
return !e.Handled;
}
/// <summary>
/// Returns the correct hook id to be used for <see cref="HookNativeMethods.SetWindowsHookEx"/> call.
/// </summary>
/// <returns>WH_KEYBOARD (0x02) or WH_KEYBOARD_LL (0x13) constant.</returns>
protected override int GetHookId()
{
return IsGlobal ?
GlobalHooker.WH_KEYBOARD_LL :
AppHooker.WH_KEYBOARD;
}
/// <summary>
/// Occurs when a key is pressed.
/// </summary>
public event KeyEventHandler KeyDown;
private void InvokeKeyDown(KeyEventArgsExt e)
后面还有 64 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
