У меня есть глобальные горячие клавиши, и я пытаюсь добавить задержку, и я использовал lastPressedTime.AddSeconds(.5)
, но безуспешно.
Я не использую события форм, к которым привык.
private void Menu_Load(object sender, EventArgs e)
{
textBox1.ReadOnly = true;
IntPtr thisWindow = this.Handle;
RegisterHotKey(thisWindow, 1, (uint)fsModifiers.Control, (uint)Keys.Q);
RegisterHotKey(thisWindow, 2, (uint)fsModifiers.Control, (uint)Keys.W);
RegisterHotKey(thisWindow, 3, (uint)fsModifiers.Control, (uint)Keys.E);
}
public enum fsModifiers
{
NoModifier=0x000,
Alt = 0x0001,
Control = 0x0002,
Shift = 0x0004,
Window = 0x0008,
}
private void Menu_FormClosed(object sender, FormClosedEventArgs e)
{
UnregisterHotKey(thisWindow, 1);
}
protected override void WndProc(ref Message keyPressed)
{
IntPtr i = keyPressed.WParam;
DateTime lastPressedTime = DateTime.MinValue;
if (DateTime.Now > lastPressedTime.AddSeconds(.5)&& i == (IntPtr)1 && keyPressed.Msg == 0x0312)
{
if (this.WindowState == FormWindowState.Minimized)
{
ShowWindow(this.Handle, SW_RESTORE);
TopMost = true;
}
else
{
this.WindowState = FormWindowState.Minimized;
TopMost = false;
}
}
Спасибо