gpt4 book ai didi

C# 按住键时写入文本

转载 作者:太空宇宙 更新时间:2023-11-03 14:22:19 25 4
gpt4 key购买 nike

我有一个 C# 控制台应用程序,其中包含一些代表按钮的文本,例如它看起来像这样 [ D ][ E ][ F ][ G ]

当用户按下按钮时,我希望突出显示按钮,这没有问题,因为我当前正在做的是使用 Console.BackgroundColor 设置重写按钮。

我想要做的是,当按键被按住时,它们的按键会不断突出显示,但是一旦再次抬起按键,突出显示就会被删除,如果可能的话,我还希望同时按下多个按键同时。这是我不知道该怎么做?

希望这是有道理的:)

有什么帮助吗?

谢谢

最佳答案

如果您愿意添加对 Windows.Forms 的引用,调用 Application.Run() 来运行消息队列,并调用外部 Windows DLL,您可以使用以下代码:http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx

该页面将向您展示如何 Hook 低级按键键盘事件。

要同时挂接按键键盘事件,您需要添加一个 WM_KEYUP 常量:

    private const int WM_KEYDOWN = 0x0100;
private const int WM_KEYUP = 0x0101;

然后修改HookCallback方法:

    private static IntPtr HookCallback(
int nCode, IntPtr wParam, IntPtr lParam)
{
if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
{
int vkCode = Marshal.ReadInt32(lParam);
Console.WriteLine("Down:" + (Keys)vkCode);
}
else if (nCode >= 0 && wParam == (IntPtr)WM_KEYUP)
{
int vkCode = Marshal.ReadInt32(lParam);
Console.WriteLine("Up:" + (Keys)vkCode);
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}

这将为您提供每次按键时的“向上”和“向下”消息。从那里您应该能够将它整合到您的应用程序中。

祝你好运!

关于C# 按住键时写入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5002583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com