这个问题来自论坛提问,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,EventArgse) ... { Win32Hookhook = new Win32Hook(); hook.onMouseChange += new EventHandler(hook_onMouseChange); hook.SetHook(); } void hook_onMouseChange( object sender,EventArgse) ... { 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( HookTypeidHook, HOOKPROClpfn, int hmod, int dwThreadId); public enum HookType ... { WH_GETMESSAGE = 3 } public delegate int HOOKPROC( int nCode, int wParam, int lParam); public event System.EventHandleronMouseChange; 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 ; } } }