zoukankan      html  css  js  c++  java
  • c#中通过设置钩子监视鼠标移动

    这个问题来自论坛提问,C#的大致代码如下

    using  System;
    using  System.Windows.Forms;
    using  System.Runtime.InteropServices;
    namespace  WindowsApplication1
    {
        
    public   partial   class  Form1 : Form
        
    {
            
    public  Form1()
            
    {
                InitializeComponent();
            }

             
            
    private   void  Form1_Load( object  sender, EventArgs e)
            
    {
                Win32Hook hook 
    =   new  Win32Hook();
                hook.onMouseChange 
    +=   new  EventHandler(hook_onMouseChange);
                hook.SetHook();
            }


            
    void  hook_onMouseChange( object  sender, EventArgs e)
            
    {
                
    this .Text  =  Cursor.Position.ToString();
            }

        }

        
    public   class  Win32Hook
        
    {

            [DllImport(
    " kernel32 " )]
            
    public   static   extern   int  GetCurrentThreadId();

            [DllImport(
    " user32 " ,CharSet  =  CharSet.Auto, CallingConvention  =  CallingConvention.StdCall)]
            
    public   static   extern   int  SetWindowsHookEx(
                HookType idHook,
                HOOKPROC lpfn,
                
    int  hmod,
                
    int  dwThreadId);

            
    public   enum  HookType
            
    {
                WH_GETMESSAGE 
    =   3
            }


            
    public   delegate   int  HOOKPROC( int  nCode,  int  wParam,  int  lParam);

            
    public   event  System.EventHandler onMouseChange;

            
    public   void  SetHook()
            
    {
                SetWindowsHookEx(HookType.WH_GETMESSAGE,
                    
    new  HOOKPROC( this .MyKeyboardProc),
                    
    0 ,
                    GetCurrentThreadId());
            }


            
    public   int  MyKeyboardProc( int  nCode,  int  wParam,  int  lParam)
            
    {
                
    if  (onMouseChange  !=   null )
                
    {
                    onMouseChange(
    null null );
                }

                
    return   0 ;
            }

        }

    }
  • 相关阅读:
    JSON格式
    多行写入
    文件对象write() and read()
    一个虚拟摄像头Filter(Virtual Cam Capture Filter)
    五十种最好的开源爬虫
    web scraper 里的 Element click 模拟点击「加载更多」
    介绍一款好用又易学的爬虫工具:web scraper
    安装宝塔面板后 ,centos系统 挂载硬盘 或者 数据盘和系统盘合并
    帝国CMS恢复搜索功能 增加搜索数据源设置教程
    安装帝国CMS步骤 和恢复数据
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204956.html
Copyright © 2011-2022 走看看