我如何编译一个程序,可以重复击键,而持有相同的键?



我一直在尝试一段时间,使一个简单的程序,可以发送一个密钥反复,而持有相同的密钥。我试着用一个"Windows窗体"的例子。但我得到了错误"类型或名称空间"键"找不到"尽管我已经包括了System.ComponentModel.DataAnnotations,据我所知,Key应该是其中的一部分。我从来没有做过一个程序在Windows窗体之前,但据我所知,它基本上包括一个GUI与你的代码?我使用windows窗体的唯一原因是因为我看到的例子使用了它,但如果它可以在一个普通的c#程序中完成,那也会很棒。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.ComponentModel.DataAnnotations;
namespace spamkey2
{
public partial class Form1 : Form
{
bool keyHold = false;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (keyHold)
{
//Do stuff
}
}
private void Key_up(object sender, KeyEventArgs e)
{
Key key = (Key)sender;
if (key == Key.A) //Specify your key here !
{
keyHold = false;
}
}
private void Key_down(object sender, KeyEventArgs e)
{
Key key = (Key)sender;
if (key == Key.A) //Specify your key here !
{
keyHold = true;
}
}
}
}

使用此代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.ComponentModel.DataAnnotations;
namespace spamkey2
{
public partial class Form1 : Form
{
bool keyHold = false;
public Form1()
{
InitializeComponent();
this.KeyDown += Key_down;
this.KeyUp += Key_up;
System.Timers.Timer timer = new System.Timers.Timer();
timer.Elapsed += Timer_Elapsed;
timer.Interval = 100;
timer.Start();
}
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (keyHold)
{
//Do stuff
Console.WriteLine("Key A is down");
}
}
private void Key_up(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.A) //Specify your key here !
{
keyHold = false;
}
}
private void Key_down(object sender, KeyEventArgs e)
{
if (e.KeyData == Keys.A) //Specify your key here !
{
keyHold = true;
}
}
}
}

最新更新