您现在的位置是:主页 > news > 网站作弊/seo推广怎么学
网站作弊/seo推广怎么学
admin2025/5/2 8:32:15【news】
简介网站作弊,seo推广怎么学,功能网站,动漫做3d游戏下载网站有哪些旧版本有些问题,请下载新版本 最版版本一载地址 很多人问的问题是怎么模拟向QQ群发送信息的 其实标题就说了是模拟鼠标,按键。 具体哪些按键呢,可能有些人习惯鼠标操作不太清楚,其实也很简单。enter键 next键。配合鼠标使用就…
网站作弊,seo推广怎么学,功能网站,动漫做3d游戏下载网站有哪些旧版本有些问题,请下载新版本
最版版本一载地址 很多人问的问题是怎么模拟向QQ群发送信息的
其实标题就说了是模拟鼠标,按键。
具体哪些按键呢,可能有些人习惯鼠标操作不太清楚,其实也很简单。enter键 next键。配合鼠标使用就…
旧版本有些问题,请下载新版本
最版版本一载地址
很多人问的问题是怎么模拟向QQ群发送信息的
其实标题就说了是模拟鼠标,按键。
具体哪些按键呢,可能有些人习惯鼠标操作不太清楚,其实也很简单。enter键 next键。配合鼠标使用就可以了。
其实就是这么简单了。
核心代码:
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Drawing;
using Feng.Office;
using System.Text;
using Feng.Utils;
namespace Feng.Forms
{public class WindowInfo{public List<WindowInfo> WindowsList = new List<WindowInfo>();public void SetWindowCaption(int hwnd, string lpString){UnsafeNativeMethods.SetWindowText(hwnd, lpString);}public WindowInfo(){ } public string Title { get; set; }public string ProcessName { get; set; }public int ProcessID { get; set; }public string ProcessFile { get; set; }public IntPtr MainHandle { get; set; }public bool ProcessResponding { get; set; }public bool Visible { get;set; }public int Handler { get; set; }public string ClassName { get; set; }public int Left { get; set; }public int Top { get; set; }public int Width { get; set; }public int Height { get; set; }public Rectangle Rect{get{return new Rectangle(this.Left, this.Top, this.Width, this.Height);} }public bool IsWindows(){return UnsafeNativeMethods.IsWindow(this.Handler);}public List<WindowInfo> GetProcessMainWindowInfo(){System.Diagnostics.Process pro = null;List<WindowInfo> list = new List<WindowInfo>();foreach (Process pro_loopVariable in System.Diagnostics.Process.GetProcesses()){pro = pro_loopVariable;if (pro.ProcessName.ToLower() == "system" | pro.Id == 0){break; // TODO: might not be correct. Was : Exit For}if (!string.IsNullOrEmpty(pro.MainWindowTitle.Trim())){WindowInfo li = new WindowInfo();li.Title = (pro.MainWindowTitle);li.ProcessID = pro.Id;li.ProcessResponding = pro.Responding;li.MainHandle = (pro.MainWindowHandle);li.ProcessName = (pro.ProcessName);li.ProcessFile = (pro.MainModule.FileName);list.Add(li); }}return list;}public static List<WindowInfo> GetChildWindows(int handle){ int res = Feng.Utils.UnsafeNativeMethods.EnumChildWindows(handle, CallBackEnumWindows, 0);return listchild;}public void CloseWindow(){Feng.Utils.UnsafeNativeMethods.PostMessage(this.MainHandle, UnsafeNativeMethods.WM_QUIT, 0, 0);}public static List<WindowInfo> GetWindowInfo(int handle,string classname, int minwidth, int minheight,string appname){listchild.Clear();_classname = classname;_minwidth = minwidth;_minheight = minheight;_appname = appname;UnsafeNativeMethods.GetDesktopWindow();IntPtr _WindowsStation = UnsafeNativeMethods.GetProcessWindowStation();IntPtr _ThreadID = new IntPtr(UnsafeNativeMethods.GetCurrentThreadId());IntPtr _DeskTop = UnsafeNativeMethods.GetThreadDesktop(_ThreadID);IntPtr _HwinstaUser = UnsafeNativeMethods.OpenWindowStation("WinSta0", false, 33554432);if (_HwinstaUser == IntPtr.Zero){UnsafeNativeMethods.RpcRevertToSelf();}UnsafeNativeMethods.SetProcessWindowStation(_HwinstaUser);IntPtr _HdeskUser = UnsafeNativeMethods.OpenDesktop("Default", 0, false, 33554432);UnsafeNativeMethods.RpcRevertToSelf();if (_HdeskUser == IntPtr.Zero){UnsafeNativeMethods.SetProcessWindowStation(_WindowsStation);UnsafeNativeMethods.CloseWindowStation(_HwinstaUser);}UnsafeNativeMethods.SetThreadDesktop(_HdeskUser);int res = Feng.Utils.UnsafeNativeMethods.EnumChildWindows(handle, EnumWindowInfoCallBackByClassName, 0);IntPtr _GuiThreadId = _ThreadID;_GuiThreadId = IntPtr.Zero;UnsafeNativeMethods.SetThreadDesktop(_DeskTop);UnsafeNativeMethods.SetProcessWindowStation(_WindowsStation);UnsafeNativeMethods.CloseDesktop(_HdeskUser);UnsafeNativeMethods.CloseWindowStation(_HwinstaUser);return listchild;}public static List<WindowInfo> GetWindowInfo(int handle,string classname,string title,int minwidth,int minheight,string appname){listchild.Clear();_classname = classname;_minwidth = minwidth;_minheight = minheight;_appname = appname;_title = title;UnsafeNativeMethods.GetDesktopWindow();IntPtr _WindowsStation = UnsafeNativeMethods.GetProcessWindowStation();IntPtr _ThreadID = new IntPtr(UnsafeNativeMethods.GetCurrentThreadId());IntPtr _DeskTop = UnsafeNativeMethods.GetThreadDesktop(_ThreadID);IntPtr _HwinstaUser = UnsafeNativeMethods.OpenWindowStation("WinSta0", false, 33554432);if (_HwinstaUser == IntPtr.Zero){UnsafeNativeMethods.RpcRevertToSelf();}UnsafeNativeMethods.SetProcessWindowStation(_HwinstaUser);IntPtr _HdeskUser = UnsafeNativeMethods.OpenDesktop("Default", 0, false, 33554432);UnsafeNativeMethods.RpcRevertToSelf();if (_HdeskUser == IntPtr.Zero){UnsafeNativeMethods.SetProcessWindowStation(_WindowsStation);UnsafeNativeMethods.CloseWindowStation(_HwinstaUser);}UnsafeNativeMethods.SetThreadDesktop(_HdeskUser);int res = Feng.Utils.UnsafeNativeMethods.EnumChildWindows(handle, EnumWindowInfoCallBackByClassNameAndTitle, 0);IntPtr _GuiThreadId = _ThreadID;_GuiThreadId = IntPtr.Zero;UnsafeNativeMethods.SetThreadDesktop(_DeskTop);UnsafeNativeMethods.SetProcessWindowStation(_WindowsStation);UnsafeNativeMethods.CloseDesktop(_HdeskUser);UnsafeNativeMethods.CloseWindowStation(_HwinstaUser);return listchild;}private static string _classname = string.Empty;private static int _minwidth; private static int _minheight;private static string _appname = string.Empty;private static string _title = string.Empty;public static WindowInfo CreateWindowInfo(string titletemp, System.Diagnostics.Process pro, int hwnd, string classname, Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT wp){WindowInfo li = new WindowInfo();li.Title = titletemp;li.ProcessID = pro.Id;li.ProcessResponding = pro.Responding;li.Handler = hwnd;li.MainHandle = (pro.MainWindowHandle);li.ProcessName = (pro.ProcessName);li.ClassName = classname;li.Width = wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;li.Height = wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;li.Left = wp.rcNormalPosition.Left;li.Top = wp.rcNormalPosition.Top;try{li.ProcessFile = (pro.MainModule.FileName);}catch (Exception){}return li;}public string GetTitle(){StringBuilder title = new StringBuilder(255);Feng.Utils.UnsafeNativeMethods.GetWindowText(this.Handler, title, 255);return title.ToString();}private static bool EnumWindowInfoCallBackByClassName(int hwnd, int lParam){StringBuilder title = new StringBuilder(255);int ThreadIDR = 0;int ProcessIDR = 0;int titleall = 0;string titletemp = null;Feng.Utils.UnsafeNativeMethods.enumshow lstyle = 0;titleall = Feng.Utils.UnsafeNativeMethods.GetWindowText(hwnd, title, 255);string classname = string.Empty;StringBuilder sbclassname = new StringBuilder(256);int res = Feng.Utils.UnsafeNativeMethods.GetClassName(hwnd, sbclassname, 128);classname = sbclassname.ToString().Trim('\0');if (classname == _classname){titletemp = title.ToString();Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT wp = default(Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT);if (Feng.Utils.UnsafeNativeMethods.GetWindowPlacement(hwnd, ref wp)){int width=wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;int height=wp.rcNormalPosition .Bottom -wp.rcNormalPosition.Top;if ((width > _minwidth)&& (height > _minheight)){ThreadIDR = Feng.Utils.UnsafeNativeMethods.GetWindowThreadProcessId(hwnd, ref ProcessIDR);lstyle = (Feng.Utils.UnsafeNativeMethods.enumshow)Feng.Utils.UnsafeNativeMethods.GetWindowLong(hwnd, Feng.Utils.UnsafeNativeMethods.enumshow.GWL_STYLE);Process pro = Process.GetProcessById(ProcessIDR);if (pro.ProcessName == _appname || string.IsNullOrEmpty(_appname)){WindowInfo li = CreateWindowInfo(titletemp, pro, hwnd, classname, wp);listchild.Add(li);}}}}return true;}private static bool EnumWindowInfoCallBackByClassNameAndTitle(int hwnd, int lParam){StringBuilder title = new StringBuilder(255);int ThreadIDR = 0;int ProcessIDR = 0;int titleall = 0;string titletemp = null;Feng.Utils.UnsafeNativeMethods.enumshow lstyle = 0;titleall = Feng.Utils.UnsafeNativeMethods.GetWindowText(hwnd, title, 255);string classname = string.Empty;StringBuilder sbclassname = new StringBuilder(256);int res = Feng.Utils.UnsafeNativeMethods.GetClassName(hwnd, sbclassname, 128);classname = sbclassname.ToString().Trim('\0');if (classname == _classname && title.ToString() == _title){titletemp = title.ToString();Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT wp = default(Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT);if (Feng.Utils.UnsafeNativeMethods.GetWindowPlacement(hwnd, ref wp)){int width = wp.rcNormalPosition.Right - wp.rcNormalPosition.Left;int height = wp.rcNormalPosition.Bottom - wp.rcNormalPosition.Top;if ((width > _minwidth)&& (height > _minheight)){ThreadIDR = Feng.Utils.UnsafeNativeMethods.GetWindowThreadProcessId(hwnd, ref ProcessIDR);lstyle = (Feng.Utils.UnsafeNativeMethods.enumshow)Feng.Utils.UnsafeNativeMethods.GetWindowLong(hwnd, Feng.Utils.UnsafeNativeMethods.enumshow.GWL_STYLE);Process pro = Process.GetProcessById(ProcessIDR);if (pro.ProcessName == _appname || string.IsNullOrEmpty(_appname)){WindowInfo li = CreateWindowInfo(titletemp, pro, hwnd, classname, wp);listchild.Add(li);}}}}return true;}public static Feng.Utils.UnsafeNativeMethods.CallBack CallBackEnumWindows = new UnsafeNativeMethods.CallBack(EnumWindowInfoCallBack);private static List<WindowInfo> listchild = new List<WindowInfo>();public static bool EnumWindowInfoCallBack(int hwnd, int lParam){StringBuilder title = new StringBuilder(255);int ThreadIDR = 0;int ProcessIDR = 0; string titletemp = null;Feng.Utils.UnsafeNativeMethods.enumshow lstyle = 0;Feng.Utils.UnsafeNativeMethods.GetWindowText(hwnd, title, 255);string classname = string.Empty;StringBuilder sbclassname = new StringBuilder(256);int res = Feng.Utils.UnsafeNativeMethods.GetClassName(hwnd, sbclassname, 128);classname = sbclassname.ToString();titletemp = title.ToString();Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT wp = default(Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT);if (Feng.Utils.UnsafeNativeMethods.GetWindowPlacement(hwnd, ref wp) == true){if ((wp.rcNormalPosition.Right - wp.rcNormalPosition.Left > 4)){ThreadIDR = Feng.Utils.UnsafeNativeMethods.GetWindowThreadProcessId(hwnd, ref ProcessIDR);lstyle = (Feng.Utils.UnsafeNativeMethods.enumshow)Feng.Utils.UnsafeNativeMethods.GetWindowLong(hwnd, Feng.Utils.UnsafeNativeMethods.enumshow.GWL_STYLE);Process pro = Process.GetProcessById(ProcessIDR);WindowInfo li = CreateWindowInfo(titletemp, pro, hwnd, classname, wp);listchild.Add(li);}}return true;}/// <summary>/// 开启窗体 使用后用 System.Windows.Forms.Application.Run(_Form);来启动窗体/// </summary>/// <param name="s">日志</param>public static void ServiceForm(){try{UnsafeNativeMethods.GetDesktopWindow();IntPtr _WindowsStation = UnsafeNativeMethods.GetProcessWindowStation();IntPtr _ThreadID = new IntPtr(UnsafeNativeMethods.GetCurrentThreadId());IntPtr _DeskTop = UnsafeNativeMethods.GetThreadDesktop(_ThreadID);IntPtr _HwinstaUser = UnsafeNativeMethods.OpenWindowStation("WinSta0", false, 33554432);if (_HwinstaUser == IntPtr.Zero){UnsafeNativeMethods.RpcRevertToSelf();return;}UnsafeNativeMethods.SetProcessWindowStation(_HwinstaUser);IntPtr _HdeskUser = UnsafeNativeMethods.OpenDesktop("Default", 0, false, 33554432);UnsafeNativeMethods.RpcRevertToSelf();if (_HdeskUser == IntPtr.Zero){UnsafeNativeMethods.SetProcessWindowStation(_WindowsStation);UnsafeNativeMethods.CloseWindowStation(_HwinstaUser);return;}UnsafeNativeMethods.SetThreadDesktop(_HdeskUser);IntPtr _GuiThreadId = _ThreadID;_GuiThreadId = IntPtr.Zero;UnsafeNativeMethods.SetThreadDesktop(_DeskTop);UnsafeNativeMethods.SetProcessWindowStation(_WindowsStation);UnsafeNativeMethods.CloseDesktop(_HdeskUser);UnsafeNativeMethods.CloseWindowStation(_HwinstaUser);}catch (Exception ex){ }}public static List<WindowInfo> GetActiveAllWindows(int desktopHandle){int lnghand = 0;StringBuilder title = new StringBuilder(255);int ThreadIDR = 0;int ProcessIDR = 0;int titleall = 0;string titletemp = null;Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT wp = default(Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT);Feng.Utils.UnsafeNativeMethods.enumshow lstyle = 0;List<WindowInfo> list = new List<WindowInfo>();desktopHandle = Feng.Utils.UnsafeNativeMethods.GetDesktopWindow();lnghand = Feng.Utils.UnsafeNativeMethods.GetWindow(desktopHandle, UnsafeNativeMethods.GW_CHILD);wp.Length = Marshal.SizeOf(wp);List<int> listptr = new List<int>();while (lnghand != 0){lnghand = Feng.Utils.UnsafeNativeMethods.GetWindow(lnghand, UnsafeNativeMethods.GW_HWNDNEXT);titleall = Feng.Utils.UnsafeNativeMethods.GetWindowText(lnghand, title, 255);string classname = string.Empty;StringBuilder sbclassname = new StringBuilder(256);int res = Feng.Utils.UnsafeNativeMethods.GetClassName(lnghand, sbclassname, 128);classname = sbclassname.ToString();titletemp = title.ToString();if (listptr.Contains(lnghand)){continue;}listptr.Add(lnghand);if (Feng.Utils.UnsafeNativeMethods.GetWindowPlacement(lnghand, ref wp) == true){if ((wp.rcNormalPosition.Right - wp.rcNormalPosition.Left > 4)){ThreadIDR = Feng.Utils.UnsafeNativeMethods.GetWindowThreadProcessId(lnghand, ref ProcessIDR);lstyle = (Feng.Utils.UnsafeNativeMethods.enumshow)Feng.Utils.UnsafeNativeMethods.GetWindowLong(lnghand, Feng.Utils.UnsafeNativeMethods.enumshow.GWL_STYLE);Process pro = Process.GetProcessById(ProcessIDR);WindowInfo li = CreateWindowInfo(titletemp, pro, lnghand, classname, wp);list.Add(li); } }}return list;}public static string ClearNullstr(string str){str = str.Trim('\0');return str;}public bool SetWindowPlacementmenu(int lhandle, Feng.Utils.UnsafeNativeMethods.enumplacement nCmdShow){Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT windowplacement = default(Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT);windowplacement.Length = Marshal.SizeOf(windowplacement);if (Feng.Utils.UnsafeNativeMethods.GetWindowPlacement(lhandle, ref windowplacement) == false){return false;}else{var _with6 = windowplacement;_with6.showCmd = (int)nCmdShow;}if (Feng.Utils.UnsafeNativeMethods.SetWindowPlacement(lhandle, ref windowplacement) == false){return false;}else{return true;} }public bool SetWindowPosmenu(int lhandle, Feng.Utils.UnsafeNativeMethods.enumwindpose PostSet){Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT WINDOWPLACEMENT = default(Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT);WINDOWPLACEMENT.Length = Marshal.SizeOf(WINDOWPLACEMENT);if (Feng.Utils.UnsafeNativeMethods.GetWindowPlacement(lhandle, ref WINDOWPLACEMENT) == false){return false;}else{}if (Feng.Utils.UnsafeNativeMethods.SetWindowPos(lhandle, (int)PostSet, WINDOWPLACEMENT.rcNormalPosition.Left, WINDOWPLACEMENT.rcNormalPosition.Top, WINDOWPLACEMENT.rcNormalPosition.Right - WINDOWPLACEMENT.rcNormalPosition.Left, WINDOWPLACEMENT.rcNormalPosition.Bottom - WINDOWPLACEMENT.rcNormalPosition.Top, WINDOWPLACEMENT.flags) == false){return false;}else{return true;} }public bool SendMessageToCloseWindow(int ProcID){Process pro = null;pro = System.Diagnostics.Process.GetProcessById(ProcID);if (pro.CloseMainWindow() == true){return true;}else{return false;} }public bool KillProcess(int ProcID){Process pro = null;Process.EnterDebugMode();pro = System.Diagnostics.Process.GetProcessById(ProcID);pro.Kill();Process.LeaveDebugMode();return false;}public override string ToString(){return string.Format("Title={0},ProcessName={1},ProcessID={2},Handler={3},ClassName={4},Rect={5},ProcessFile={6}",this.Title, this.ProcessName, this.ProcessID, this.Handler, this.ClassName, this.Rect, this.ProcessFile);}public bool SetPositionAndTopmostShow(Point pt){if (SetWindowPosmenu(this.Handler, UnsafeNativeMethods.enumwindpose.HWND_TOP)){if (SetPosition(pt)){return true;}}return false;}public bool SetPosition(Point pt){Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT windowplacement = default(Feng.Utils.UnsafeNativeMethods.WINDOWPLACEMENT);windowplacement.Length = Marshal.SizeOf(windowplacement);if (!Feng.Utils.UnsafeNativeMethods.GetWindowPlacement(this.Handler, ref windowplacement)){return false;}windowplacement.rcNormalPosition.Left = pt.X;windowplacement.rcNormalPosition.Top = pt.Y;if (Feng.Utils.UnsafeNativeMethods.SetWindowPlacement(this.Handler, ref windowplacement)){return true;} return false;}public bool Focus(){return UnsafeNativeMethods.SetForegroundWindow(this.Handler) > 0;}}
}
核心代码就是使用一些系统API。上面 【SetForegroundWindow】【GetWindowPlacement】这些大家经常用应该知道。
上述代码并没有在这个鼠标键盘拟模上用到。上述代码的主要作用是可以指定对哪些窗口进行模拟鼠标键盘操作。比如每天做的一些重复的动作。
由于想操作某个软件并获取相应的资料的目的不同,适合二次开发。(比如上面的模拟向QQ发信息,有时候打开别的界面会把QQ界面拦住,所以使用这个可以把窗口置前并激活)
下面是鼠标键盘的代码。主要就是用了Sendkeys类。太简单了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;
using Feng.Office;namespace Feng.Utils
{public abstract class SysEvents{public abstract string Title { get; } public virtual void Excute(){}public abstract void Write(Feng.IO.BufferWriter bw);public abstract bool Read(string title, Feng.IO.BufferReader read);}// 以下是 SendKeys 的一些特殊键代码表。 //键 代码 //BACKSPACE {BACKSPACE}、{BS} 或 {BKSP} //BREAK {BREAK} //CAPS LOCK {CAPSLOCK} //DEL 或 DELETE {DELETE} 或 {DEL} //DOWN ARROW(下箭头键) {DOWN} //END {END} //ENTER {ENTER} 或 ~ //ESC {ESC} //HELP {HELP} //HOME {HOME} //INS 或 INSERT {INSERT} 或 {INS} //LEFT ARROW(左箭头键) {LEFT} //NUM LOCK {NUMLOCK} //PAGE DOWN {PGDN} //PAGE UP {PGUP} //PRINT SCREEN {PRTSC}(保留,以备将来使用) //RIGHT ARROW(右箭头键) {RIGHT} //SCROLL LOCK {SCROLLLOCK} //TAB {TAB} //UP ARROW(上箭头键) {UP} //F1 {F1} //F2 {F2} //F3 {F3} //F4 {F4} //F5 {F5} //F6 {F6} //F7 {F7} //F8 {F8} //F9 {F9} //F10 {F10} //F11 {F11} //F12 {F12} //F13 {F13} //F14 {F14} //F15 {F15} //F16 {F16} //数字键盘加号 {ADD} //数字键盘减号 {SUBTRACT} //数字键盘乘号 {MULTIPLY} //数字键盘除号 {DIVIDE} public class KeySysEvents : SysEvents{public string Text { get; set; }public override string Title{get{return "KEY";}}public override void Excute(){SendKeys.Send(Text);SendKeys.Flush();}public override string ToString(){return string.Format("发送键:{0}", Text);}public override void Write(IO.BufferWriter bw){ bw.Write(Text);}public override bool Read(string title, IO.BufferReader read){if (title == this.Title){this.Text = read.ReadString();return true;}return false;}}public class VersonSysEvents : SysEvents{int i = 0;public override string Title{get{return "VERSON";}}public override void Excute(){i++;SendKeys.Send("小熊鼠标键盘辅助工具V1.0.1.1 自动发送" + i.ToString());SendKeys.Flush();}public override string ToString(){return string.Format("版本信息 {0}", "");}public override void Write(IO.BufferWriter bw){}public override bool Read(string title, IO.BufferReader read){ return false;}}public class SpaceEvents : SysEvents{public int Interval { get; set; }public override string Title{get{return "SPACE";}}public override void Excute(){for (int i = 0; i < Interval * 10; i++){Application.DoEvents();System.Threading.Thread.Sleep(100 * Interval);}SendKeys.Flush();}public override string ToString(){return string.Format("间隔:{0}秒", Interval);}public override void Write(IO.BufferWriter bw){bw.Write(Interval);}public override bool Read(string title, IO.BufferReader read){if (title == this.Title){this.Interval = read.ReadInt32();return true;}return false;}}public class RandomEvents : SysEvents{public int RandomType { get; set; }public int lastvalue = 0;public DateTime lastdatetime = DateTime.Now;public override string Title{get{return "RANDOM";}}public string Text {get {switch (RandomType){case 1:return lastvalue++.ToString();case 2:return new Random(DateTime.Now.Millisecond).Next(0, 100).ToString();case 3:return DateTime.Now.ToString("HH:mm:ss");case 4:return Guid.NewGuid().ToString().Substring (0,3);default:return lastvalue++.ToString(); }}}public override void Excute(){SendKeys.Send(Text);SendKeys.Flush(); }public override string ToString(){return string.Format("随机:{0}", RandomType);}public override void Write(IO.BufferWriter bw){bw.Write(RandomType);}public override bool Read(string title, IO.BufferReader read){if (title == this.Title){this.RandomType = read.ReadInt32();return true;}return false;}}public class MouseClickSysEvents : SysEvents{public Point Point { get; set; }public Size OffSize { get; set; }public override string Title{get{return "Click";}}public override void Excute(){UnsafeNativeMethods.MouseMove(Point.X, Point.Y);System.Threading.Thread.Sleep(300);UnsafeNativeMethods.MouseClick(Point.X, Point.Y);System.Threading.Thread.Sleep(300);}public override string ToString(){return string.Format("单击:{0},OX={1},OY={2}", Point, OffSize.Width, OffSize.Height);}public override void Write(IO.BufferWriter bw){ bw.Write(Point.X);bw.Write(Point.Y);bw.Write(OffSize.Width);bw.Write(OffSize.Height);}public override bool Read(string title, IO.BufferReader read){if (title == this.Title){ int x = read.ReadInt32();int y = read.ReadInt32();Point = new Point(x, y);int width = read.ReadInt32();int height = read.ReadInt32();OffSize = new Size(width, height);return true;}return false;}}public class MouseDoubleClickSysEvents : SysEvents{public Point Point { get; set; }public Size OffSize { get; set; }public override string Title{get{return "DoubleClick";}}public override void Excute(){UnsafeNativeMethods.MouseMove(Point.X, Point.Y);System.Threading.Thread.Sleep(300);UnsafeNativeMethods.MouseClick(Point.X, Point.Y);System.Threading.Thread.Sleep(10);UnsafeNativeMethods.MouseClick(Point.X, Point.Y);System.Threading.Thread.Sleep(10);}public override string ToString(){return string.Format("双击:{0},OX={1},OY={2}", Point, OffSize.Width, OffSize.Height);}public override void Write(IO.BufferWriter bw){ bw.Write(Point.X);bw.Write(Point.Y);bw.Write(OffSize.Width);bw.Write(OffSize.Height);}public override bool Read(string title, IO.BufferReader read){if (title == this.Title){int x = read.ReadInt32();int y = read.ReadInt32();Point = new Point(x, y);int width = read.ReadInt32();int height = read.ReadInt32();OffSize = new Size(width, height);return true;}return false;}}public class MouseWheelUpSysEvents : SysEvents{public Point Point { get; set; }public override string Title{get{return "MouseWheelUp";}}public override void Excute(){UnsafeNativeMethods.MouseWheelUP(Point.X, Point.Y); System.Threading.Thread.Sleep(300);}public override string ToString(){return string.Format("{0}", "向上滚动鼠标");}public override void Write(IO.BufferWriter bw){ bw.Write(Point.X);bw.Write(Point.Y);}public override bool Read(string title, IO.BufferReader read){if (title == this.Title){int x = read.ReadInt32();int y = read.ReadInt32();Point = new Point(x, y); return true;}return false;}}public class MouseWheelDownSysEvents : SysEvents{public Point Point { get; set; }public override string Title{get{return "MouseWheelDOWN";}}public override void Excute(){UnsafeNativeMethods.MouseWheelDOWN(Point.X, Point.Y);System.Threading.Thread.Sleep(300);}public override string ToString(){return string.Format("{0}", "向下滚动鼠标");}public override void Write(IO.BufferWriter bw){ bw.Write(Point.X);bw.Write(Point.Y);}public override bool Read(string title, IO.BufferReader read){if (title == this.Title){int x = read.ReadInt32();int y = read.ReadInt32();Point = new Point(x, y);return true;}return false;}}
}
使用方法如下:
timer1_Tick
为timer的事件
void timer1_Tick(object sender, EventArgs e){if (lck)return; try{if (icount >= this.txtEventCount.Value){this.chk开始动作.Checked = false;return;}icount++;lck = true;if (System.Windows.Forms.Control.ModifierKeys == Keys.Control){System.Threading.Thread.Sleep(3000);return; }foreach (SysEvents p in listevents){p.Excute();System.Threading.Thread.Sleep(300);}System.Threading.Thread.Sleep(300);SendKeys.Flush();}catch (Exception ex){Feng.Utils.ExceptionHelper.ShowError(ex);}finally{lck = false;}}