日期:2014-05-17 浏览次数:20803 次
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; using System.IO; namespace UltroMouse { public partial class FrmMain : Form { #region 私有常量 private readonly int m_ScreenWidth = 1024; private readonly int m_ScreenHeight = 768; #endregion 私有常量 #region 私有变量 /// <summary> /// 屏幕捕获点X坐标 /// </summary> private int m_CaptureX = 0; /// <summary> /// 屏幕捕获点Y坐标 /// </summary> private int m_CaptureY = 0; /// <summary> /// 锁定对象,用于加锁 /// </summary> private object m_LockObj = new object(); /// <summary> /// 开始记录坐标 /// </summary> private bool m_StartRecordPos = false; /// <summary> /// 时间cnt /// </summary> private UInt32 m_dwTimeCnt = 0;//100ms every Cnt. //add some variable here. private FileInfo f = new FileInfo("OperationLog.txt"); private StreamWriter sw=null; private StreamReader sr=null; private bool m_Recording = false; private bool m_RequestShowForm = false; private bool m_StopExcuteRecord = false; /// <summary> /// 钩子管理实例 /// </summary> private SKHook m_HookMain = new SKHook(); #endregion 私有变量 #region 私有方法 /// <summary> /// /// </summary> /// <param name="mousex"></param> /// <param name="mousey"></param> private void RecordCaptureXY(int code,int mousex, int mousey) { //label1.Text = "X=" + mousex.ToString(); //label2.Text = "Y=" + mousey.ToString(); //if record now, save the records to the log file. if(m_Recording&&Check_RecordMouse.Checked) sw.WriteLine("M,{0},{1},{2},{3}", m_dwTimeCnt * 100,code, mousex, mousey); } /// <summary> /// /// </summary> /// <param name="mousex"></param> /// <param name="mousey"></param> private void RecordKeyCode(KeyEventArgs e,WM_KEYBOARD keystatus) { //if record now, save the records to the log file. if (m_Recording && Check_RecordKeyboard.Checked) { sw.WriteLine("K,{0},{1},{2}", m_dwTimeCnt * 100, (int)keystatus,(int)e.KeyCode); } } #endregion 私有方法 #region 构造函数 /// <summary> /// 主窗口 /// </summary> public FrmMain() { InitializeComponent(); this.m_ScreenWidth = Screen.PrimaryScreen.Bounds.Width; this.m_ScreenHeight = Screen.PrimaryScreen.Bounds.Height; this.m_HookMain.OnKeyDown += new KeyEventHandler(HookMain_OnKeyDown); this.m_HookMain.OnKeyUp += new KeyEventHandler(HookMain_OnKeyUp); this.m_HookMain.OnMouseUpdate += new MouseUpdateEventHandler(HookMain_OnMouseUpdate); } #endregion 构造函数 #region 控件事件 /// <summary> /// 窗体加载 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void FrmMain_Load(obje