[英]C# how can I do something if I press a key only one time
while true
{
if (checkBox1.Checked & KKEY == "CapsLock")
{
if (sim.InputDeviceState.IsKeyDown(VirtualKeyCode.CAPITAL))
{
(Send something)
Thread.Sleep(100);
}
}
}
我想知道如何在這段代碼中只發送一次。
我嘗試使用thread.sleep
延遲發送,因為當我按下鍵時它會發送多次,但我只想每次按鍵發送 1 次。
我試圖打破,但切斷了 if 並且它只發送一次密鑰,然后再也不發送它。
有什么辦法可以做我想做的事嗎? 謝謝!
編輯:我忘了說對不起。 按住鍵應該是單擊一次,當再次按下時我需要再次發送一些東西。
如果我正確理解了您的問題,那么類似這樣的解決方案應該可以工作:
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;
}
}
我對“sim”不太熟悉,但您可以根據需要修改代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.