C# 如果我只按一次键怎么办
我想知道如何在这个代码中只发送一次 我尝试使用C# 如果我只按一次键怎么办,c#,C#,我想知道如何在这个代码中只发送一次 我尝试使用线程延迟发送。sleep是因为当我按下该键时,它会发送多次,但我只想在每次按键时发送一次 我试图打破,但这切断了if,它只发送了一次钥匙,然后再也不发送了 有没有办法做我想做的事?谢谢 编辑:对不起,我忘了放电话了。 按住该键只需单击一次,当再次按下时,我需要再次发送内容。如果我正确理解了您的问题,类似这样的解决方案应该有效: while true { if (checkBox1.Checked & KKEY == "CapsLo
线程延迟发送。sleep
是因为当我按下该键时,它会发送多次,但我只想在每次按键时发送一次
我试图打破,但这切断了if,它只发送了一次钥匙,然后再也不发送了
有没有办法做我想做的事?谢谢
编辑:对不起,我忘了放电话了。
按住该键只需单击一次,当再次按下时,我需要再次发送内容。如果我正确理解了您的问题,类似这样的解决方案应该有效:
while true
{
if (checkBox1.Checked & KKEY == "CapsLock")
{
if (sim.InputDeviceState.IsKeyDown(VirtualKeyCode.CAPITAL))
{
(Send something)
Thread.Sleep(100);
}
}
}
我对“sim”不太熟悉,但您可以根据需要修改代码。定义“每次点击1次”中的“点击”的确切含义。如果在按键释放前只需点击一次键,则检测在此期间是否发生了按键操作。是,对不起。按住键应该是一次点击,当再次按下时,我需要再次发送一些东西。我很抱歉,我忘了把时间。我试过了,但程序仍然在做同样的事情。
bool keyPressed = false;
if (checkBox1.Checked & KKEY == "CapsLock")
{
if (sim.InputDeviceState.IsKeyDown(VirtualKeyCode.CAPITAL) && !keyPressed)
{
keyPressed = true;
(Send something)
}
if (sim.InputDeviceState.IsKeyUp(VirtualKeyCode.CAPITAL))
{
keyPressed = false;
}
}