В коде думаю понятно будет, что к чему и что мне нужно. Единственное, что я поясню это - класс Storage (Storage.cs).
Его я использую потому, что в моем коде 2 формы, одна основная, вторая для получения клавиши от пользователя (произвольная), именно её мне и надо сравнить, дабы определить нажата она или нет.
Надеюсь на вашу помощь :)
Code//form1
private void NewForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Storage.KeyData) //Когда клавиша отжата (Понимаю что e.KeyCode нельзя сравнить с e.KeyValue, как это обойти?)
//Чтобы когда чел ввел клавишу, на эту клавишу запускался таймер и через таймер повторялось нажатие клавиши
{
if (Storage.IsEnabled == false)
{
Storage.IsEnabled = true;
StatusOnOff.BackColor = Color.Green;
timer1.Start();
}
}
}
private void NewForm_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Storage.KeyData) //Когда клавиша отжата (Понимаю что e.KeyCode нельзя сравнить с e.KeyValue, как это обойти?)
//Чтобы когда чел ввел клавишу, на эту клавишу запускался таймер и через таймер повторялось нажатие клавиши
{
if (Storage.IsEnabled == true)
{
Storage.IsEnabled = false;
StatusOnOff.BackColor = Color.Red;
timer1.Stop();
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
int i= 0;
SendKeys.SendWait("{" + Storage.KeyStr + "}");
i--;
}
//form2
private void ChooseKeyForm_KeyDown(object sender, KeyEventArgs e)
{
Storage.KeyStr = e.KeyCode.ToString();
Storage.KeyData = e.KeyValue;
this.Dispose();
}
//storage.cs
internal class Storage {
public static string KeyStr { get; set; }
public static int KeyData { get; set; }
public static bool IsEnabled { get; set; }
}