通过鼠标获取当前窗口的句柄,问题有两个
第一:如何获取鼠标的位置,通过位置得知当前的窗口
第二:如何获取当前窗口的句柄

解决方案 »

  1.   

    to 第一:如何获取鼠标的位置,通过位置得知当前的窗口
    第二:如何获取当前窗口的句柄如果鼠标所在的窗体是有焦点的,比较简单,用GetActiveWindow即可。否则很难判断。
      

  2.   

    [DllImport("user32", EntryPoint="GetCursorPos")]
    public static extern int GetCursorPos (
            ref POINTAPI lpPoint
    );
    [StructLayout(LayoutKind.Sequential)]
    public struct POINTAPI  {
            public int x ;
            public int y ;
    }[DllImport("user32", EntryPoint="WindowFromPoint")]
    public static extern int WindowFromPoint (
            int xPoint,
            int yPoint
    );
      

  3.   

    Sample code as follows:[DllImport("user32.dll")]
    static extern IntPtr WindowFromPoint(POINT Point);[StructLayout( LayoutKind.Sequential )]
       public struct POINT {
          public int X;
          public int Y;      public POINT( int x, int y ) {
              this.X = x;
              this.Y = y;
          }      public static implicit operator System.Drawing.Point( POINT p ) {
              return new System.Drawing.Point( p.X,  p.Y );
          }      public static implicit operator POINT( System.Drawing.Point p ) {
              return new POINT( p.X, p.Y );
          }
       }//Get window
    Point ptCursor = Cursor.Position;
    POINT ptCurrent = new POINT( ptCursor.X, ptCursor.Y );
    IntPtr hWindows = WindowFromPoint( ptCurrent );