using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Diagnostics; using System.Windows.Forms; using System.Runtime.InteropServices; /******************** * 测试说明: * 1.打开Live Meeting * 2.共享一个文件(程序外完成) * 3.关闭共享 * 4.重复2,3步 400次压力测试 * 特别说明: * 1.由于Live Meeting第一次共享时 菜单栏会右移10像素 * 所以在循环之前先做一次操作 * 2.由于命中率不是100%, 有未命中的情况 * 所以循环使用500次 *********************/ namespace _400times { /***************************** * 模拟键盘操作 * *************************** * System.Windows.Forms.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} 若要指定与SHIFT CTRL和ALT键的任意组合一起使用的键 请在这些键代码之前加上以下一个或多个代码: 键 代码 SHIFT + CTRL ^ ALT % 如果输入Alt+Tab键组合的话,我们可以 SendKeys.Send("%{TAB}"); ***************************/ /*************************** * 模拟鼠标操作 * ************************* * enum MouseEventFlag : uint { Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, MiddleDown = 0x0020, MiddleUp = 0x0040, XDown = 0x0080, XUp = 0x0100, Wheel = 0x0800, VirtualDesk = 0x4000, Absolute = 0x8000 } * *************************/ class Program { //鼠标操作所对应的数值 enum MouseEventFlag : uint { //鼠标移动 Move = 0x0001, //左键按下 LeftDown = 0x0002, //左键弹起 LeftUp = 0x0004, //右键按下 RightDown = 0x0008, //右键弹起 RightUp = 0x0010, //中键按下 MiddleDown = 0x0020, //中键弹起 MiddleUp = 0x0040, XDown = 0x0080, XUp = 0x0100, Wheel = 0x0800, VirtualDesk = 0x4000, Absolute = 0x8000 } //引用COM组件的两个方法 [DllImport("user32.dll")] static extern bool SetCursorPos(int X, int Y); [DllImport("user32.dll")] static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo); static void Main(string[] args) { //运行应用程序 System.Diagnostics.Process.Start("应用程序"); //进程休眠 等待应用程序启动 Thread.Sleep(10000); //设置鼠标位置 SetCursorPos(50, 30); //点击鼠标左键 mouseClick(); Thread.Sleep(2000); SetCursorPos(50, 90); //双击鼠标左键 mouseClick(); mouseClick(); Thread.Sleep(5000); SetCursorPos(300, 12); mouseClick(); Thread.Sleep(10000); for (int i = 0; i < 500; i++) { Thread.Sleep(3000); SetCursorPos(50, 30); mouseClick(); Thread.Sleep(2000); SetCursorPos(50, 90); mouseClick(); mouseClick(); Thread.Sleep(5000); SetCursorPos(280, 12); mouseClick(); Thread.Sleep(10000); } } private static void mouseClick() { mouse_event(MouseEventFlag.LeftDown, 0, 0, 0, UIntPtr.Zero); mouse_event(MouseEventFlag.LeftUp, 0, 0, 0, UIntPtr.Zero); } } }