zoukankan      html  css  js  c++  java
  • .NET 的钩子组件……(封装起来使得你不用写代码即可完成钩子的设置)(转)

    开发中我们很多时候会遇到使用钩子的情况。

    用户按下了个按键,我怎么捕捉的到?好,如果焦点在自己的Form里的话,简单,重写ProcessDialogKey方法即可。。如果焦点在其他应用程序呢,Windows不会给我的Form发送按键消息,想捕捉这个按键就可以用钩子了。。。

    同样,捕获鼠标也是如此。。不仅是键盘鼠标消息,挂上WH_GETMESSAGE钩子之后我们可以获得其他更多的消息。

    前两天看到一个VB写的类,把它给改成C#的了,以组件(Component)形式使用,直接拖到设计器里就好,然后,给这个组件添加事件(KeyUp、KeyDown、MouseUp……)。那么当用户有这些动作的时候就会触发这些事件了,用起来是不是很方便……

    设计预览:(像Timer组件一样简简单单的拖进来即可)

    代码:

    1/*
      2 * Copyright (c) 2008 黑色珊瑚::Tsorgy.Utils, Reserved.
      3 * 
      4 * Filename:    @(#)Hook.cs
      5 * Create by:   TsOrgY
      6 * Email:       tsorgy@gmail.com
      7 * Date:        2008/12/20 16:30:09
      8 * 
      9 * Classname:   Hook
     10 * Description: 钩子组件.
     11 *              
     12 */

     13
     14using System;
     15using System.Runtime.InteropServices;
     16using System.Reflection;
     17using System.ComponentModel;
     18
     19namespace Tsorgy.Utils {
     20
     21    /// <summary>
     22    /// 钩子工具类.
     23    /// </summary>

     24    [DefaultEvent("KeyUp")]
     25    [DefaultProperty("Tag")]
     26    public class Hook : Component {
     27        * 属性 *
     60
     61        * 事件 *
    113
    114        * 公共方法 *
    142
    143        - 枚举 -
    171
    172        - API 相关 -
    242
    243        - 回调函数 -
    283
    284        - 全局变量 -
    289
    290        - 构造方法 -
    305
    306        - 私有方法 -
    388
    389        | 重写方法 |
    399    }

    400}

    401

  • 相关阅读:
    卷一第十、十一、十二、十三、十四、十五章为广域网技术,暂停学习,先学习好局域网
    卷一第九章:WLAN
    卷一第八章:以太网技术
    卷一第七章:局域网概述
    卷一第六章:网络设备基本调试
    卷一第五章:网络设备文件管理
    二层、三层交换机介绍及转发原理
    Codeforces Round #641 (Div. 1)
    机器学习
    机器学习
  • 原文地址:https://www.cnblogs.com/ziyan22/p/1360993.html
Copyright © 2011-2022 走看看