在程序中如何移动鼠标到另一个位置

调用Win32 API方法控制鼠标的移动:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

namespace 模拟鼠标
{
///

1<summary>   
2/// Form1 的摘要说明。   
3/// </summary>

public class Form1 : System.Windows.Forms.Form
{
///

1<summary>   
2/// 必需的设计器变量。   
3/// </summary>

private System.ComponentModel.Container components = null;

public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();

//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}

///

1<summary>   
2/// 清理所有正在使用的资源。   
3/// </summary>

protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows 窗体设计器生成的代码
///

1<summary>   
2/// 设计器支持所需的方法 - 不要使用代码编辑器修改   
3/// 此方法的内容。   
4/// </summary>

private void InitializeComponent()
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.BackColor = System.Drawing.SystemColors.ActiveCaption;
this.pictureBox1.Location = new System.Drawing.Point(88, 120);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
this.pictureBox1.KeyDown += new System.Windows.Forms.KeyEventHandler

(this.pictureBox1_KeyDown);
this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler

(this.pictureBox1_MouseDown);
//
// label1
//
this.label1.BackColor = System.Drawing.Color.DarkOliveGreen;
this.label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.label1.Location = new System.Drawing.Point(48, 208);
this.label1.Name = "label1";
this.label1.TabIndex = 1;
this.label1.Text = "label1";
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(292, 266);
this.Controls.Add(this.label1);
this.Controls.Add(this.pictureBox1);
this.Name = "Form1";
this.Text = "Form1";
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
this.Load += new System.EventHandler(this.Form1_Load);
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyUp);
this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseMove);
this.ResumeLayout(false);

}
#endregion

///

1<summary>   
2/// 应用程序的主入口点。   
3/// </summary>

[STAThread]
static void Main()
{
Application.Run(new Form1());
}

 1<summart>核心代码部分   
 2[System.Runtime.InteropServices.DllImport("user32")]   
 3private static extern int mouse_event(int dwFlags,int dx,int dy,int cButtons,int   
 4  
 5dwExtraInfo);   
 6const int MOUSEEVENTF_MOVE=0x0001;   
 7const int MOUSEEVENTF_LEFTDOWN=0X0002;   
 8const int MOUSEEVENTF_LEFTUP=0X0004;   
 9const int MOUSEEVENTF_RIGHTDOWN=0X0008;   
10const int MOUSEEVENTF_RIGHTUP=0X0010;   
11const int MOUSEEVENTF_MIDDLEDOWN=0X0020;   
12const int MOUSEEVENTF_MIDDLEUP=0X0040;   
13private System.Windows.Forms.PictureBox pictureBox1;   
14private System.Windows.Forms.Label label1;   
15const int MOUSEEVENTF_ABSOLUTE=0X8000;   
16  
17private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)   
18{   
19//mouse_event(MOUSEEVENTF_MOVE,-10,-10,0,0);   
20}   
21  
22private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)   
23{   
24if(e.KeyCode==Keys.Down)   
25mouse_event(MOUSEEVENTF_MOVE,0,20,0,0);   
26if(e.KeyCode==Keys.Up)   
27mouse_event(MOUSEEVENTF_MOVE,0,-20,0,0);   
28if(e.KeyCode==Keys.Left)   
29mouse_event(MOUSEEVENTF_MOVE,-20,0,0,0);   
30if(e.KeyCode==Keys.Right)   
31mouse_event(MOUSEEVENTF_MOVE,20,0,0,0);   
32}   
33  
34public void pictureBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)   
35{   
36/*if(e.KeyCode==Keys.Down)   
37mouse_event(MOUSEEVENTF_MOVE,0,20,0,0);   
38if(e.KeyCode==Keys.Up)   
39mouse_event(MOUSEEVENTF_MOVE,0,-20,0,0);   
40if(e.KeyCode==Keys.Left)   
41mouse_event(MOUSEEVENTF_MOVE,-20,0,0,0);   
42if(e.KeyCode==Keys.Right)   
43mouse_event(MOUSEEVENTF_MOVE,20,0,0,0);   
44*/   
45}   
46private void Form1_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)   
47{   
48  
49}   
50  
51private void pictureBox1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)   
52{   
53if(e.Button==MouseButtons.Right)   
54mouse_event(MOUSEEVENTF_MOVE,0,20,0,0);   
55else   
56mouse_event(MOUSEEVENTF_MOVE,0,-20,0,0);   
57}   
58  
59private void Form1_Load(object sender, System.EventArgs e)   
60{   
61  
62}   
63}   
64}   
65  
66  
67对应的Blog链接:   
68http://blog.csdn.net/chengking/archive/2005/10/07/496715.aspx</summart>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus