实现效果
记得在界面添加计时器
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
dtTime.Format = DateTimePickerFormat.Custom;
dtTime.CustomFormat = " yyyy-MM-dd HH:mm:ss";
nudnum.DecimalPlaces= 0;
nudnum.Increment = 100;
TimePick();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (DateTime.Now >= Convert.ToDateTime(dtTime.Text))
{
lblTime.Text =(cbEnable.Checked?"启用自定义时间间隔 "+nudnum.Value.ToString() +"ms ":"时间间隔 ")+ DateTime.Now.ToString();
KeyValuePair<Keys, string> select = (KeyValuePair<Keys, string>)cmbKey.SelectedItem;
//SendKeys.Send(select.Key.ToString());
//var ctrlAndAlt = new List<VirtualKeyCode>() { VirtualKeyCode.LCONTROL, VirtualKeyCode.LMENU };
InputSimulator inputSimulator = new InputSimulator();
VirtualKeyCode vkc = (VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), select.Key.ToString());
inputSimulator.Keyboard.KeyDown(vkc);
//simulator.Keyboard.ModifiedKeyStroke(VirtualKeyCode.CONTROL, VirtualKeyCode.VK_C);
}
}
#region timepick
private void TimePick() {
Dictionary<int, string> listPick = new Dictionary<int, string>();
listPick.Add(1, "1S");
listPick.Add(2, "2S");
listPick.Add(3, "3S");
listPick.Add(4, "4S");
listPick.Add(5, "5S");
foreach (var item in listPick)
{
cmbPick.Items.Add(item);
cmbPick.DisplayMember = "value";
cmbPick.ValueMember = "key";
cmbPick.SelectedIndex=0;
}
Dictionary<Keys, string> listKey = new Dictionary<Keys, string>();
listKey.Add(Keys.F1, Keys.F1.ToString());
listKey.Add(Keys.F2, Keys.F2.ToString());
listKey.Add(Keys.F3, Keys.F3.ToString());
listKey.Add(Keys.F4, Keys.F4.ToString());
listKey.Add(Keys.F5, Keys.F5.ToString());
listKey.Add(Keys.F6, Keys.F6.ToString());
listKey.Add(Keys.F7, Keys.F7.ToString());
listKey.Add(Keys.F8, Keys.F8.ToString());
listKey.Add(Keys.F9, Keys.F9.ToString());
listKey.Add(Keys.F10, Keys.F10.ToString());
listKey.Add(Keys.F11, Keys.F11.ToString());
listKey.Add(Keys.F12, Keys.F12.ToString());
foreach (var item in listKey)
{
cmbKey.Items.Add(item);
cmbKey.DisplayMember = "value";
cmbKey.ValueMember = "key";
cmbKey.SelectedIndex = 0;
}
}
#endregion
private void btnStart_Click(object sender, EventArgs e)
{
BindTimer();
timer1.Start();
}
private void btnCancel_Click(object sender, EventArgs e)
{
timer1.Stop();
}
private void cbEnable_Click(object sender, EventArgs e)
{
BindTimer();
}
private void BindTimer()
{
KeyValuePair<int, string> select = (KeyValuePair<int, string>)cmbPick.SelectedItem;
if (cbEnable.Checked)
{
if (nudnum.Value == 0)
{
MessageBox.Show("启用自定义,请调整间隔时间");
}
else
{
timer1.Interval = Convert.ToInt32(nudnum.Value);
}
}
else
{
timer1.Interval = select.Key * 1000;
}
}
private void cmbPick_TextChanged(object sender, EventArgs e)
{
BindTimer();
}
private void nudnum_ValueChanged(object sender, EventArgs e)
{
BindTimer();
}
}
运行效果图
模拟按键按下,需要安装NuGet:InputSimulator.1.0.4.0