gpt4 book ai didi

c# - 是否有 native .NET 方法或等效于 user32.dll 的 GetKeyboardState?

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

回答:没有 native 管理的等效方法。但是,可以在 pinvoke.net 找到一个很好的托管代码 API 示例。 .

大家好

我有一个接受“跟踪模式”标志的应用程序。跟踪模式打开一个包含文本框的表单。文本框通过自定义 TraceListener 对象显示输出。如果命令行上有 -t,跟踪窗口将从它自己的低优先级线程中打开。这对于在出现问题时尝试诊断应用程序的顾问来说非常方便。

一些顾问要求在启动过程中按一些晦涩的组合键应该会打开跟踪模式,这样他们就不必每次都去命令行激活它。这是一个合理的要求。

我不想为此给他们一个按钮或菜单项,因为在创建主窗体之前,顾问会关心的许多关键信息都会在启动时显示给 Trace,因为各种组件已实例化,并且初始化。

我认为在 .NET 中检测当前键盘状态应该足够简单 - 但似乎无论我看什么,建议都是使用 [DllImport("user32.dll", EntryPoint = "GetKeyboardState", SetLastError = true)] 作为检测正在发生的事情的方法。

一切都很好 - 我对此很满意。但是,作为一般经验法则,在我尝试推出自己的功能之前,我会尝试确保使用 native .NET 托管代码来实现 Windows 功能。

是否有原生 .NET 方法或等效于 user32.dll 的 GetKeyboardState?

最佳答案

Control.ModiferKeysControl 的静态属性,如果有的话,修饰键当前被按下。我不知道有什么可以获取一般键盘状态,似乎大多数代码 P/Invoke 使用 GetKeyboardStateGetKeyState 来检查特定键。

关于c# - 是否有 native .NET 方法或等效于 user32.dll 的 GetKeyboardState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3176804/

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