当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 一个共用的form1能被其它的各种formvar调用(formvar的名字可为forma,formb,formc...等等),现在要求:在form1里如何得知正在调用它的formvar是哪个,并且向formvar上的控件赋值?可以得到当前的formvar的名字字符串,但是没办法把这个名字作为一个form,向它上边的控件赋值。请大家指引迷津! ......
    摘要: 高分求医院管理系统源码.(最好是b/s结构),请各位大哥大姐帮忙,分不够可以加 ......


如何用程序控制鼠标,让鼠标自动移动用什么API如何用最好有例子。谢谢

如何用程序控制鼠标,让鼠标自动移动?用什么API?如何用?最好有例子。谢谢!

NO.1   作者: HungryBoy

 
  namespace   ClassLibrary.Hardware    
  {    
  //   原创   Using   C#   and   Win32API   (   最近我把所有的Win32API看了1遍   很是过瘾   )    
   
  public   class   Mouse    
  {    
   internal   const   byte   SM_MOUSEPRESENT   =   19;    
   internal   const   byte   SM_CMOUSEBUTTONS   =   43;    
   internal   const   byte   SM_MOUSEWHEELPRESENT   =   75;    
   
   internal   struct   POINTAPI    
   {    
      internal   int   x;    
      internal   int   y;    
   }    
   
   internal   struct   RECT    
   {    
      internal   int   left   ;    
      internal   int   top   ;    
      internal   int   right   ;    
      internal   int   bottom   ;    
   }    
   
   [System.Runtime.InteropServices.DllImport("user32.dll"   ,   EntryPoint="SwapMouseButton")]    
   internal   extern   static   int   SwapMouseButton   (   int   bSwap   );    
   
   [System.Runtime.InteropServices.DllImport("user32"   ,   EntryPoint="ClipCursor")]    
   internal   extern   static   int   ClipCursor(ref   RECT   lpRect);    
   
   [System.Runtime.InteropServices.DllImport(   "user32.dll"   ,   EntryPoint="GetCursorPos"   )]    
   internal   extern   static   int   GetCursorPos(   ref   POINTAPI   lpPoint   );    
   
   [System.Runtime.InteropServices.DllImport("user32.dll",   EntryPoint="ShowCursor")]    
   internal   extern   static   bool   ShowCursor   (   bool   bShow   )   ;    
   
   [System.Runtime.InteropServices.DllImport(   "user32.dll"   ,   EntryPoint   =   "EnableWindow"   )]    
   internal   extern   static   int   EnableWindow(   int   hwnd   ,   int   fEnable   );    
   
   [System.Runtime.InteropServices.DllImport("user32.dll"   ,   EntryPoint="GetWindowRect")]     
   internal   extern   static   int   GetWindowRect(   int   hwnd   ,   ref   RECT   lpRect   )   ;    
   
   [System.Runtime.InteropServices.DllImport("user32.dll"   ,   EntryPoint="SetCursorPos")]     
   internal   extern   static   int   SetCursorPos   (   int   x   ,   int   y   )   ;    
   
   [System.Runtime.InteropServices.DllImport("user32.dll"   ,   EntryPoint="GetSystemMetrics")]    
   internal   extern   static   int   GetSystemMetrics(   int   nIndex   );    
   
   [System.Runtime.InteropServices.DllImport("user32.dll"   ,   EntryPoint="SetDoubleClickTime")]    
   internal   extern   static   int   SetDoubleClickTime   (   int   wCount   );    
   
   [System.Runtime.InteropServices.DllImport("user32.dll"   ,   EntryPoint="GetDoubleClickTime")]    
   internal   extern   static   int   GetDoubleClickTime()   ;    
   
   [System.Runtime.InteropServices.DllImport("kernel32.DLL",   EntryPoint="Sleep")]    
   internal   extern   static   void   Sleep   (   int   dwMilliseconds   )   ;    
   
   //得到鼠标相对与全屏的坐标,不是相对与你的Form的,且与你的分辨率有关系    
   
   public   static   int   FullScreenPosition_X    
   {    
      get    
      {    
    POINTAPI   _POINTAPI   =   new   POINTAPI();    
   
    GetCursorPos   (   ref   _POINTAPI   );    
        
    return   _POINTAPI.x;    
      }    
   }    
       
   public   static   int   FullScreenPosition_Y    
   {    
      get    
      {    
    POINTAPI   _POINTAPI   =   new   POINTAPI();    
   
    GetCursorPos   (   ref   _POINTAPI   );    
        
    return   _POINTAPI.y;    
      }    
   }    
   
   //   隐藏   显示   鼠标    
   
   public   static   void   Hide()    
   {    
      ShowCursor(   false   )   ;    
   }    
       
   public   static   void   Show()    
   {    
      ShowCursor(   true   )   ;    
   }    
   
   //   将鼠标锁定在你的Form里   不过你得将你的Form先锁了,Form   Resize   就失效了    
   
   public   static   void   Lock(   System.Windows.Forms.Form   ObjectForm   )    
   {    
      RECT   _FormRect   =   new   RECT   ();    
       
      GetWindowRect(   ObjectForm.Handle.ToInt32()   ,   ref   _FormRect   );    
       
      ClipCursor(   ref   _FormRect   );    
   }    
       
   public   static   void   UnLock()    
   {    
      RECT   _ScreenRect   =   new   RECT   ();    
       
      _ScreenRect.top   =   0;    
      _ScreenRect.left   =   0;    
      _ScreenRect.bottom   =   System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Bottom;    
      _ScreenRect.right   =   System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Right;    
        
      ClipCursor(   ref   _ScreenRect   );    
   }    
   
   //   鼠标失效,不过失效的好像不只是鼠标,小心哦    
   
   public   static   void   Disable(   System.Windows.Forms.Form   ObjectForm   )    
   {    
      EnableWindow(   ObjectForm.Handle.ToInt32()   ,   0   )   ;    
   }    
   
   public   static   void   Enable(   System.Windows.Forms.Form   ObjectForm   )    
   {    
      EnableWindow(   ObjectForm.Handle.ToInt32()   ,   1   )   ;    
   }    
   
   //   鼠标自己移动   很想动画哦   参数是2个控件的handle    
   //   看这个方法前,先用凉水擦把脸。。。   反正我写的时候   头晕    
   
   public   static   void   Move   (   int   From_Handle_ToInt32   ,   int   To_Handle_ToInt32   )    
   {    
      RECT   rectFrom   =   new   RECT   ()   ;    
      RECT   rectTo   =   new   RECT   ()   ;    
        
      int   i   ;    
       
      GetWindowRect(   From_Handle_ToInt32   ,   ref   rectFrom   )   ;    
      GetWindowRect(   To_Handle_ToInt32   ,   ref   rectTo   )   ;    
   
      if   (   (   rectFrom.left   +   rectFrom.right   )   /   2   -   (   rectTo.left   +   rectTo.right   )   /   2   >   0   )    
      {    
    for   (   i   =   (   rectFrom.left   +   rectFrom.right   )   /   2   ;   i   >=   (   rectTo.left   +   rectTo.right   )   /   2   ;   i--   )    
    {    
       SetCursorPos   (   i   ,   (   rectFrom.top   +   rectFrom.bottom   )   /   2)   ;    
       Sleep   (   1   )   ;    
    }    
      }    
      else    
      {    
    for   (   i   =   (   rectFrom.left   +   rectFrom.right   )   /   2   ;   i   <=   (   rectTo.left   +   rectTo.right   )   /   2   ;   i++   )    
    {    
       SetCursorPos   (   i   ,   (   rectFrom.top   +   rectFrom.bottom   )   /   2)   ;    
       Sleep   (   1   )   ;    
    }    
      }    
   
      if   (   (   rectFrom.top   +   rectFrom.bottom   )   /   2   -   (   rectTo.top   +   rectTo.bottom   )   /   2   >   0   )    
      {    
    for   (   i   =   (   rectFrom.top   +   rectFrom.bottom   )   /   2   ;   i   >=   (   rectTo.top   +   rectTo.bottom   )   /   2   ;   i--   )    
    {    
       SetCursorPos   (   (   rectTo.left   +   rectTo.right   )   /   2   ,   i   )   ;    
       Sleep   (   1   )   ;    
    }    
      }    
      else    
      {    
    for   (   i   =   (   rectFrom.top   +   rectFrom.bottom   )   /   2   ;   i   <=   (   rectTo.top   +   rectTo.bottom   )   /   2   ;   i++   )    
    {    
       SetCursorPos   (   (   rectTo.left   +   rectTo.right   )   /   2   ,   i   )   ;    
       Sleep   (   1   )   ;    
    }    
      }    
   }    
       
   //   得到你的鼠标类型    
   
   public   static   string   Type    
   {    
      get    
      {    
    if   (   GetSystemMetrics(   SM_MOUSEPRESENT   )   ==   0   )    
    {    
       return   "本计算机尚未安装鼠标"   ;    
    }    
    else    
    {    
       if   (   GetSystemMetrics(   SM_MOUSEWHEELPRESENT   )   !=   0   )    
       {    
     return   GetSystemMetrics(   SM_CMOUSEBUTTONS   )   +   "键滚轮鼠标"   ;    
       }    
       else    
       {    
     return   GetSystemMetrics(   SM_CMOUSEBUTTONS   )   +   "键鼠标"   ;    
       }    
    }    
      }    
   }    
   
   //   设置鼠标双击时间    
       
   public   static   void   DoubleClickTime_Set(   int   MouseDoubleClickTime   )    
   {    
      SetDoubleClickTime(   MouseDoubleClickTime   );    
   }    
       
   public   static   string   DoubleClickTime_Get()    
   {    
      return   GetDoubleClickTime().ToString()   ;    
   }    
   
   //   设置鼠标默认主键   我是没有见过谁左手用鼠标    
   
   public   static   void   DefaultRightButton()    
   {    
      SwapMouseButton   (   1   )   ;    
   }    
       
   public   static   void   DefaultLeftButton()    
   {    
      SwapMouseButton   (   0   )   ;    
   }    
  }    
  }    
 


 ·xml如何转成html    »显示摘要«
    摘要: xml文件:test.xml,还有test.xsl文件 test.xml中没有这句话<?xml-stylesheet type="text/xsl" href="test.xsl"?> 我想在在服务器端将xml转换成html,就是在执行程序的时候,将test.xml和test.xsl合并起来,发送给客户端。 希望大家能明白我的意思。谢谢 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE