API 鼠标坐标获取

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

效率就是你了解的类库。每天学习一点点。

c#

private void Form1_MouseMove(object sender, MouseEventArgs e) {

this.Text = Cursor.Position.X.ToString() + ":" +

Cursor.Position.Y.ToString();

}

调用API

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace mouse

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public delegate int HookProc(int ncode, IntPtr wParam, IntPtr lParam);

static int hHook = 0;

public const int WH_MOUSE = 7;

//private System.Windows.Forms.Button button1;

//Declare MouseHookProcedure as HookProc type.

HookProc MouseHookProcedure;

//Declare wrapper managed POINT class.

[StructLayout(LayoutKind.Sequential)]

public class POINT

{

public int x;

public int y;

}

//Declare wrapper managed MouseHookStruct class.

[StructLayout(LayoutKind.Sequential)]

public class MouseHookStruct

{

public POINT pt;

public int hwnd;

public int wHitTestCode;

public int dwExtraInfo;

}

//Import for SetWindowsHookEx function.

//Use this function to install thread-specific hook.

[DllImport("user32.dll", CharSet = CharSet.Auto,

CallingConvention = CallingConvention.StdCall)]

public static extern int SetWindowsHookEx(int idHook, HookProc lpfn,

IntPtr hInstance, int threadId);

//Import for UnhookWindowsHookEx.

//Call this function to uninstall the hook.

[DllImport("user32.dll", CharSet = CharSet.Auto,

CallingConvention = CallingConvention.StdCall)]

public static extern bool UnhookWindowsHookEx(int idHook);

//Import for CallNextHookEx.

//Use this function to pass the hook information to next hook procedure in chain.

[DllImport("user32.dll", CharSet = CharSet.Auto,

CallingConvention = CallingConvention.StdCall)]

public static extern int CallNextHookEx(int idHook, int nCode, IntPtr wParam, IntPtr lParam);

private void button1_Click(object sender, EventArgs e)

{

if (hHook == 0)

{

// Create an instance of HookProc.

MouseHookProcedure = new

HookProc(Form1.MouseHookProc);

hHook = SetWindowsHookEx(WH_MOUSE,

MouseHookProcedure,

(IntPtr)0,

AppDomain.GetCurrentThreadId());

//If SetWindowsHookEx fails.

相关文档
最新文档