您的位置:首页 > 编程语言

最简单最原始的模拟鼠标键盘的测试代码

2009-09-11 17:49 447 查看
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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐