日期:2014-05-17  浏览次数:20884 次

C# 全局钩子 方法二

//网上都说,我的朋友也说C#不能实现全局钩子获得listView之类的消息,只能实现全局的键盘和鼠标钩子,下面代码是在做得到其它程序的listView控件中的列表写的,不过没实现,项目只做了一半放下了,改其它方法实现了,本代码只供参考学习,如果哪位高手朋友做出来了,请把代码发一下,本人会非常感谢,再感谢的!!

using System;
using System.Collections.Generic;

using System.Text;
using System.Runtime.InteropServices;
using System.Reflection;
using System.Diagnostics;
 

namespace AnShieldClassLibrary
{
   
        //public struct tagCWPSTRUCT
        //{
        //    public  IntPtr lParam;// 消息参数 
        //    public  IntPtr wParam;// 消息参数 
        //    public  int message;// 消息值,由非负整数来表示
        //    public  IntPtr hwnd;// 消息的目的地句柄
        //}
    

       [StructLayout(LayoutKind.Sequential)]
       public struct tagCWPSTRUCT
       {
           public IntPtr lParam;// 消息参数 
           public IntPtr wParam;// 消息参数 
           public int message;// 消息值,由非负整数来表示
           public IntPtr hwnd;// 消息的目的地句柄

           //public IntPtr lparam;
           //public IntPtr wparam;
           //public int message;
           //public IntPtr hwnd;
           //以前的
           //public int message;
           //public int paramL;
           //public int paramH;
           //public int Time;
           //public int hwnd;
       }
       //消息结构体
       [StructLayout(LayoutKind.Sequential)]
       public struct LVITEM
       {
           public int mask;
           public int iItem;
           public int iSubItem;
           public int state;
           public int stateMask;
           public string pszText; // string
           public int cchTextMax;
           public int iImage;
           public IntPtr lParam;
           public int iIndent;
           public int iGroupId;
           public int cColumns;
           public IntPtr puColumns;
&n