嘿,我有關鍵事件處理程序的一些問題。這是來源:C#檢測所有窗口中的關鍵事件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;
public const int MOUSEEVENTF_RIGHTDOWN = 0x08;
public const int MOUSEEVENTF_RIGHTUP = 0x10;
public void Form1_KeyPessed(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F2)
{
DrawSquare();
}
}
public void DrawSquare()
{
int line = Convert.ToInt16(textBox1.Text);
int time = Convert.ToInt16(textBox2.Text);
int x = MousePosition.X;
int y = MousePosition.Y;
Cursor.Position = new Point(x - line/2, y - line/2);
mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
Thread.Sleep(time);
Cursor.Position = new Point(x - line/2, y + line/2);
Thread.Sleep(time);
Cursor.Position = new Point(x - line/2, y + line/2);
Thread.Sleep(time);
Cursor.Position = new Point(x + line/2, y - line/2);
Thread.Sleep(time);
Cursor.Position = new Point(x - line/2, y - line/2);
mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
Thread.Sleep(time);
Cursor.Position = new Point(x, y);
}
}
}
現在它只繪製廣場,當我按F2在窗體中,但我希望它可以在所有窗口上工作。 我還需要什麼? (這是有點完美形狀的自動抽屜)
有關[mouse_event'文檔](http://msdn.microsoft.com/zh-cn/library/ms646260.aspx)的注意事項。它說:**這個功能已被取代。請使用['SendInput'](http://msdn.microsoft.com/zh-cn/library/ms646310.aspx)** – 2011-03-27 16:05:01
爲什麼要刪除我添加的標籤?更多標籤有助於對您的問題進行分類,以便其他人可以找到它。它還幫助回答問題的人找到它。他們通常會遵循他們熟悉的特定標籤。 – 2011-03-28 04:19:50