شركة التطبيقات المتكاملة لتصميم النظم البرمجية الخاصة ش.ش.و.

Integrated Applications Programming Company

Skip Navigation LinksHome » Code Library » Mouse

Public general use code classes and xml files that we've compiled and used over the years:

Windows mouse movements and properties control support class.

   1:  //#if WFA
   2:  using System;
   3:  using System.Drawing;
   4:  using System.Threading;
   5:  using System.Windows.Forms;
   6:   
   7:  namespace Ia.Cl.Model
   8:  {
   9:      /// <summary publish="true">
  10:      /// Windows mouse movements and properties control support class.
  11:      /// </summary>
  12:      /// <remarks> 
  13:      /// Copyright � 2001-2015 Jasem Y. Al-Shamlan (info@ia.com.kw), Integrated Applications - Kuwait. All Rights Reserved.
  14:      ///
  15:      /// This library is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
  16:      /// the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
  17:      ///
  18:      /// This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
  19:      /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  20:      /// 
  21:      /// You should have received a copy of the GNU General Public License along with this library. If not, see http://www.gnu.org/licenses.
  22:      /// 
  23:      /// Copyright notice: This notice may not be removed or altered from any source distribution.
  24:      /// </remarks>
  25:      public class Mouse
  26:      {
  27:          ////////////////////////////////////////////////////////////////////////////
  28:   
  29:          /// <summary>
  30:          ///
  31:          /// </summary>
  32:          public Mouse() { }
  33:   
  34:          ////////////////////////////////////////////////////////////////////////////
  35:   
  36:          /// <summary>
  37:          ///
  38:          /// </summary>
  39:          public static Point Position()
  40:          {
  41:              return Cursor.Position;
  42:          }
  43:   
  44:          ////////////////////////////////////////////////////////////////////////////
  45:   
  46:          /// <summary>
  47:          ///
  48:          /// </summary>
  49:          public static void Position(out int x, out int y)
  50:          {
  51:              x = Cursor.Position.X;
  52:              y = Cursor.Position.Y;
  53:          }
  54:   
  55:          ////////////////////////////////////////////////////////////////////////////
  56:   
  57:          /// <summary>
  58:          ///
  59:          /// </summary>
  60:          public static void Position(int x, int y)
  61:          {
  62:              Cursor.Position = new Point(x, y);
  63:          }
  64:   
  65:          ////////////////////////////////////////////////////////////////////////////
  66:   
  67:          /// <summary>
  68:          ///
  69:          /// </summary>
  70:          public static void Move(Point p)
  71:          {
  72:              Move(p.X, p.Y);
  73:          }
  74:   
  75:          ////////////////////////////////////////////////////////////////////////////
  76:   
  77:          /// <summary>
  78:          ///
  79:          /// </summary>
  80:          public static void Move(int x, int y)
  81:          {
  82:              int x_orig, y_orig;
  83:              int x_path, y_path;
  84:              int step;
  85:   
  86:              x_orig = Cursor.Position.X;
  87:              y_orig = Cursor.Position.Y;
  88:   
  89:              step = (int)Math.Sqrt(Math.Pow(x - x_orig, 2) + Math.Pow(y - y_orig, 2));
  90:   
  91:              step /= 10;
  92:   
  93:              for (int i = 1; i <= step; i++)
  94:              {
  95:                  x_path = x_orig + i * (x - x_orig) / step;
  96:                  y_path = y_orig + i * (y - y_orig) / step;
  97:   
  98:                  Cursor.Position = new Point(x_path, y_path);
  99:                  Thread.Sleep(30);
 100:              }
 101:   
 102:              Cursor.Position = new Point(x, y);
 103:          }
 104:   
 105:          ////////////////////////////////////////////////////////////////////////////
 106:   
 107:          /// <summary>
 108:          ///
 109:          /// </summary>
 110:          public static void Wait(int millisecond)
 111:          {
 112:              Thread.Sleep(millisecond);
 113:          }
 114:   
 115:          ////////////////////////////////////////////////////////////////////////////
 116:   
 117:          /// <summary>
 118:          ///
 119:          /// </summary>
 120:          public static void ClickLeftSingle()
 121:          {
 122:              Ia.Cl.Model.Winapi.SendLeftClick();
 123:          }
 124:   
 125:          ////////////////////////////////////////////////////////////////////////////
 126:   
 127:          /// <summary>
 128:          ///
 129:          /// </summary>
 130:          public static void ClickLeftDouble()
 131:          {
 132:              Ia.Cl.Model.Winapi.SendLeftClick();
 133:              Thread.Sleep(100);
 134:              Ia.Cl.Model.Winapi.SendLeftClick();
 135:          }
 136:   
 137:          ////////////////////////////////////////////////////////////////////////////
 138:   
 139:          /// <summary>
 140:          ///
 141:          /// </summary>
 142:          public static void ClickLeftDragMouse(int x, int y)
 143:          {
 144:              Ia.Cl.Model.Winapi.SendLeftDownClick();
 145:              Move(x, y);
 146:              Ia.Cl.Model.Winapi.SendLeftUpClick();
 147:          }
 148:   
 149:          ////////////////////////////////////////////////////////////////////////////
 150:   
 151:          /// <summary>
 152:          ///
 153:          /// </summary>
 154:          public static void ClickRightSingle()
 155:          {
 156:              Ia.Cl.Model.Winapi.SendRightClick();
 157:          }
 158:   
 159:          ////////////////////////////////////////////////////////////////////////////
 160:   
 161:          /// <summary>
 162:          ///
 163:          /// </summary>
 164:          public static void ClickRightDouble()
 165:          {
 166:              Ia.Cl.Model.Winapi.SendRightClick();
 167:              Thread.Sleep(100);
 168:              Ia.Cl.Model.Winapi.SendRightClick();
 169:          }
 170:   
 171:          ////////////////////////////////////////////////////////////////////////////
 172:   
 173:          /// <summary>
 174:          ///
 175:          /// </summary>
 176:          public static void Key(string n)
 177:          {
 178:              // print string
 179:              // SendKeys.Send(n);
 180:              SendKeys.SendWait(n);
 181:          }
 182:   
 183:          ////////////////////////////////////////////////////////////////////////////
 184:          ////////////////////////////////////////////////////////////////////////////
 185:      }
 186:  }
 187:  //#endif