在控制台中检测 Ctrl + S

2024-04-03

I'm developing a console application in which I need to detect several hotkeys such as Ctrl+N, Ctrl+O and Ctrl+S. Here's a part of the code that I use to recognize these hotkeys:

ConsoleKeyInfo input = Console.ReadKey(true);

if (input.Modifiers == ConsoleModifiers.Control)
{
    if (input.Key == ConsoleKey.N)
    {
        // ...
    }
    else if (input.Key == ConsoleKey.O)
    {
        // ...
    }
    else if (input.Key == ConsoleKey.S)
    {
        //...
    }
}

The code above works without any issues for Ctrl+N and Ctrl+O. But, I can't get it to work for Ctrl+S. After doing some quick testing, I found out that pressing Ctrl+S doesn't even do anything (meaning that the program is still waiting for the user to type something).

This issue only occurs with Ctrl+S. Using some simple if statements for any other modifier (Shift for example) and key (N, O, etc) works fine.

Why does this happen? Is there a special meaning to the Ctrl+S combination? Is it possible to make this work? If yes, how?


protected override  bool  ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (msg.Msg == 256)
    {
        //if the user pressed control + s
        if (keyData == (Keys.Control | Keys.S))
        {

        }
        //if the user pressed control + o 
        else if (keyData == (Keys.Control | Keys.O))
        {

        }
        //if the user pressed control + n 
        else if (keyData == (Keys.Control | Keys.N))
        {

        }
    }
    return base.ProcessCmdKey(ref msg, keyData);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在控制台中检测 Ctrl + S 的相关文章

  • 在C语言中使用“void”

    我很困惑为什么我们需要通过void转换为 C 函数 int f void return 0 versus int f return 0 什么是正确的做法以及为什么 In C int f 是一种老式的声明 它说f需要固定但未指定数量和类型的参
  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • 显示异常时的自定义错误消息:从客户端检测到潜在危险的 Request.Form 值

    我在我的 Web 应用程序中使用 ASP NET 的登录控件 当发生此异常时 我想在标签上显示一种有趣的错误类型System Web HttpRequestValidationException A potentially dangerou
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 如何识别 WPF 文本框中的 ValidationError 工具提示位置

    我添加了一个箭头来指示工具提示中的文本框 当文本框远离屏幕边缘时 这非常有效 但是当它靠近屏幕边缘时 工具提示位置发生变化 箭头显示在左侧 Here is the Image Correct as expected since TextBo
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • C# 中条件编译符号的编译时检查(参见示例)?

    在 C C 中你可以这样做 define IN USE 1 define NOT IN USE 1 define USING system 1 system 1 IN USE 进而 define MY SYSTEM IN USE if US
  • 通过 NHibernate 进行查询,无需 N+1 - 包含示例

    我有一个 N 1 问题 我不知道如何解决它 可以在这个问题的底部找到完全可重复的样本 因此 如果您愿意 请创建数据库 设置 NUnit 测试和所有附带的类 并尝试在本地消除 N 1 这是我遇到的真实问题的匿名版本 众所周知 这段代码对于帮助
  • 当模板类不包含可用的成员函数时,如何在编译时验证模板参数?

    我有以下模板struct template
  • System.Runtime.InteropServices.COMException(0x80040154):[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 C 项目中遇到异常 System Runtime InteropServices COMException 0x80040154 检
  • 在类的所有方法之前运行一个方法

    在 C 3 或 4 中可以做到这一点吗 也许有一些反思 class Magic RunBeforeAll public void BaseMethod runs BaseMethod before being executed public
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • WinRT 定时注销

    我正在开发一个 WinRT 应用程序 要求之一是应用程序应具有 定时注销 功能 这意味着在任何屏幕上 如果应用程序空闲了 10 分钟 应用程序应该注销并导航回主屏幕 显然 执行此操作的强力方法是在每个页面的每个网格上连接指针按下事件 并在触
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 实例化 Microsoft.Office.Interop.Excel.Application 对象时出现错误:800700c1

    实例化 Microsoft Office Interop Excel Application 以从 winforms 应用程序生成 Excel 时 出现以下错误 这之前是有效的 但突然间它停止工作了 尽管代码和 Excel 版本没有变化 我
  • 是否可以在 C# 中强制接口实现为虚拟?

    我今天遇到了一个问题 试图重写尚未声明为虚拟的接口方法的实现 在这种情况下 我无法更改接口或基本实现 而必须尝试其他方法 但我想知道是否有一种方法可以强制类使用虚拟方法实现接口 Example interface IBuilder

随机推荐

  • 通过 Protractor e2e 测试下载并使用文件

    如何编写下载文件并将其以表单形式发布的测试 it should support download and upload a file gt upload element By id UploadInput upload sendKeys C
  • 如何正确使用 AVPlayer 使其在播放视频前不显示白屏?

    每次 当我尝试使用播放兆字节视频时AVPlayer 它最初会显示一秒钟的白屏 然后开始播放视频 如果视频已经缓存 为什么会发生这种情况 有没有办法阻止这种情况发生 以便它直接进入视频而不显示白屏 我尝试使用AVPlayer s isRead
  • 环境变量名称如何反映 appsettings.json 的结构

    我正在使用 ASP NET Core 5 0 并且有一个 Web API 应用程序部署到内部云 其中很少有设置 例如 DB 是通过主机云上的环境变量进行控制的 在我的 Startup cs 中 我有以下代码 string projectDb
  • 如何在 Internet Explorer 中使用 Burp 拦截本地服务器 Web 请求

    我已经正确配置了Burp在代理位置拦截 127 0 0 1 9090 我的 Internet Explorer 代理设置如下 我还有一个名为 WebGoat 的网络服务器正在运行http localhost 8080 WebGoat htt
  • 手动将值插入 SQLite 数据库

    我是 Android 开发新手 刚刚开始学习用户界面开发的基础知识 在我的应用程序中 我有一个微调器 我想用数据库中的值填充微调器 因此 为了从数据库中获取值 数据库中必须有一些值 如何在不编写程序的情况下将值插入数据库 我可以用任何其他方
  • 如何使用 C 获取 Linux 中物理 CPU 的数量?

    我知道sysconf SC NPROCESSORS ONLN 会给我逻辑处理器的数量 但是我怎样才能获得物理处理器的数量呢 浩劫P 离线 cpu 不会显示在 proc cpuinfo 中 CPU 拓扑由 sys devices system
  • 如何在 HTML 视频元素的客户端坐标和图片坐标之间进行转换?

    假设我有一个视频元素 我想在其中处理鼠标事件 const v document querySelector video v onclick ev gt ev preventDefault console info x event offse
  • 如何使用java实现低通滤波器

    我正在尝试用 Java 实现低通滤波器 我的要求很简单 我必须消除超出特定频率 单维 的信号 看起来巴特沃斯滤波器可以满足我的需要 现在重要的是 CPU 时间应该尽可能低 过滤器必须处理近一百万个样本 而我们的用户不喜欢等待太久 是否有任何
  • Struts 2 和 Spring with EL - 打印变量有哪些不同类型[重复]

    这个问题在这里已经有答案了 显然我对 EL 特别是 Struts 2 还很陌生 我正在更新当前的代码 并且看到不同类型的条目 有什么不同
  • 特定的 PNG 压缩类型是否与 macOS Cocoa 应用程序不兼容?

    我们最近遇到了一些资产图像的问题 其中 Retina 2x版本正在非 Retina 设备上使用 存在资源的 Retina 和非 Retina 版本 我们已经将问题归结为压缩 因此我们现在可以避免它 但如果有人有其他见解 我很想听听他们的意见
  • 如何使用外部java库在命令行中编译和运行kotlin程序

    我是第一次尝试 kotlin 我能够在命令行上在 kotlin 中运行编译 hello world 程序 但无法编译我想要包含外部 java 库的程序 import com google gson Gson data class Perso
  • 使用 Rich Preview 元标记作为图像 html css

    当您通过文本 Facebook 消息或任何主流消息客户端发送链接时 您会注意到它会生成 丰富的预览 这基本上是您链接的网站弹出的图像 我了解如何设置此属性 例如
  • Gulp-sass 无法编译 scss 文件

    我正在使用 Gulp 将我的 sass 编译为 css 一个简单的任务编译style scss文件在 sass目录并将输出保存到项目的根目录中 style scss仅用于导入其他文件 sass目录 当我从命令行运行默认任务时 gulp 我收
  • 如何模糊除 2 个节点之外的所有内容。雪碧 (Swift)

    我想模糊我的游戏背景 self view scene paused true 但是按钮和暂停的标签 都是 SKSpriteNode 的 不应该是模糊的 它们都有不同的 Z index 值 按下按钮节点时场景暂停 再次按下按钮时场景恢复 我找
  • 通过 YouTube 数据 API 确定视频编解码器?

    是否可以通过 YouTube 数据 API 确定特定的 YouTube 视频是使用 H 264 还是 FLV 编码 如果是这样 怎么办 我可以开始文件下载并检查视频流的编码方式 当然 以编程方式 但我想使用 YouTube 数据 API 来
  • 正则表达式在字符串中查找数字

    我有一个字符串 可能包含也可能不包含 4 或 5 位数字 我正在寻找一个正则表达式 可以检测字符串是否确实有这样的数字 避免较长数字的万无一失的方法是 d d 4 5 d 我假设您不想在千位数字后面留有逗号 如果你这样做的话 d d 1 2
  • Symfony - 以生成的形式添加文本

    我想做一些非常简单的事情 但我不知道如何管理它 我有一个表格 form start form form widget form form end form 其中有几个文本字段 我想 插入 一些文本 例如 p my Text p 在两个文本字
  • lex :如何覆盖 YY_BUF_SIZE

    根据manual http westes github io flex manual The Default Memory Management html YY BUF SIZE is 16K我们需要重写它 但是 手册没有指定如何覆盖它 我
  • Tar:创建除一个之外的存档排除目录

    我有一些目录和一些文件 dir archive somedir1 dir archive somedir2 dir archive somedir3 dir archive mydir dir archive mydir excludedi
  • 在控制台中检测 Ctrl + S

    I m developing a console application in which I need to detect several hotkeys such as Ctrl N Ctrl O and Ctrl S Here s a