簡體   English   中英

C# 如果我只按一次鍵怎么辦

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM