169it科技资讯


当前位置:  编程技术>.net/c#/asp.net

C#实现获取鼠标句柄的方法

    来源: 互联网  发布时间:2014-11-04

本文实例讲述了C#实现获取鼠标句柄的方法,分享给大家供大家参考。具体实现方法如下:

一、调用user32.dll

(1)引用

using System.Runtime.InteropServices;

(2)调用方法

1、获取窗口标题

[DllImport( "user32.dll" )]
public static extern int GetWindowText( IntPtr hWnd, StringBuilder lpString,int nMaxCount );

注:hWnd 窗口句柄  lpString 窗口标题   nMaxCount 最大值

2、获取类名

[DllImport( "user32.dll" )]  
public static extern int GetClassName( IntPtr hWnd, StringBuilder lpString,int nMaxCount );

注:hWnd 句柄 lpString 类名 nMaxCount 最大值

3、根据坐标获取窗口句柄

[DllImport( "user32.dll" )]  
public static extern IntPtr WindowFromPoint(Point point);

注:point 坐标

二、显示数据

(1) 获取鼠标坐标

int x = Cursor.Position.X;
int y = Cursor.Position.Y;
this.textBox4.Text = string.Format( "({0},{1})" , x, y);

(2) 获取句柄

Point p = new Point(x,y);
IntPtr formHandle = WindowFromPoint(p);
this.textBox1.Text = formHandle.ToString();

(3) 得到窗口标题

GetWindowText(formHandle,title,title.Capacity);
this.textBox2.Text = title.ToString();

(4)得到窗体的类名

StringBuilder cllassName = new StringBuilder();
GetClassName(formHandle,cllassName,cllassName.Capacity);
this.textBox3.Text = cllassName.ToString();

(5)Load事件

this.timer1.Enabled = !this.timer1.Enabled;

注:动态显示信息

三、运行结果如下图所示:

 

四、完整实例代码点击此处本站下载。

希望本文所述对大家的C#程序设计有所帮助


    
相关技术文章:
    ▪C#事件处理和委托event delegate实例简述

     本文实例讲述了C#事件处理和委托event delegate,分享给大家供大家参考。具体方法如下: 以下仅仅是用最简单的方式表示事件,实际应用可能是不同窗体之间相互通知某些操作,达到触发。 首先声明一个degate的 EventHandler 参数可以没有 一个或多个 但是触发和使用一定要匹配。 创建一个该EvenHandler的实例a 在程序建立或你需要的时候产生一个事件触发申明: a += new EventHandler(d); public delegate void EventHandler(string s); 实际触发事件a("") 就可以调用实际操作。 完整实例如下: ......


    ▪C#获取程序文件相关信息的方法

     本文实例讲述了C#获取程序文件相关信息的方法,分享给大家供大家参考。 具体实现方法如下: using System.Reflection; using System.Runtime.CompilerServices; // // 有关程序集的常规信息是通过下列 // 属性集控制的。更改这些属性值可修改与程序集 // 关联的信息。 // [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // // 程序集的版本信息由下列 4 个值组成: // // ......


    ▪C#中的除法运算符与VB.NET中的除法运算符

     VB.NET中的除法运算符有两个:/(浮点除法)、\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分。   关于VB.NET中的除法运算符的介绍(摘自MSDN): /(浮点除法):将两个数相除并返回以浮点数表示的结果。 所得结果的数据类型取决于操作数的类型。 下表显示如何确定结果的数据类型。 ......


 
最新技术文章:
    ▪C#通过IComparable实现ListT.sort()排序

     本文实例讲述了C#通过IComparable实现ListT.sort()排序的方法,分享给大家供大家参考之用。具体方法如下: 通常来说,List<T>.sort()可以实现对T的排序,比如List<int>.sort()执行后集合会按照int从小到大排序。如果T是一个自定义的Object,可是我们想按照自己的方式来排序,那该怎么办呢,其实可以用过IComparable接口重写CompareTo方法来实现。流程如下: 一、第一步我们申明一个类Person但是要继承IComparable接口: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestIC......


    ▪C#实现对Json字符串处理实例

     本文实例讲述了C#实现对Json字符串处理方法,分享给大家供大家参考。具体分析如下: 一般对于web应用开发人员来说对Json字符串都会很熟悉,其实在很多请求我们返回的都是Json字符串。那对于C#代码如何处理Json字符串呢,.Net封装了一个类叫做JavaScriptSerializer[MSDN Library 链接:http://msdn.microsoft.com/en-us/library/ee191864(v=vs.110).aspx];这个类提供了一个方法。 下面这个是在快递100往抓取的一个圆通的快递信息。对于我们有用的信息是快递时间,快递状况。那我该如何来做。  ......


    ▪Winform实现抓取web页面内容的方法

     本文以一个非常简单的实例讲述了Winform实现抓取web页面内容的方法,代码简洁易懂,非常实用!分享给大家供大家参考。 具体实现代码如下: WebRequest request = WebRequest.Create("http://1.bjapp.sinaapp.com/play.php?a=" + PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8); string htmlinfo = sr.ReadToEnd(); resStream.Close(); sr.Close(); 感兴趣的朋友可以测试运行或改进本文实例。希望本文所述对大家C#程序设计的学习有所帮助。 ......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号