【发布时间】:2017-10-17 16:37:30
【问题描述】:
我需要在我的简单 C 控制台程序中与用户的鼠标输入进行交互。我做了一些研究,发现a related Microsoft's docs on their page here。首先,我复制了他们所有的示例代码并将其粘贴到我的编辑器中。编译后,它编译得很好,带有一个漂亮的小“.exe”,运行时,它会正确地告诉/打印所有“键事件”和“调整大小事件”,但没有鼠标事件!如何在 C 控制台程序中成功获取鼠标输入?我的MCVE 是微软网站上给定的sample-code here,因为我逐字使用了该示例代码!我使用的是 Windows 10 Pro (1703),以防万一。
编辑: - 这似乎不是我独有的问题。另一个 StackOverflow 用户 also reported the same problem here 在他的 Windows-10 系统上。 His provided MCVE 也在 Windows-7 上工作,但不在 Windows-10 上,就像我在 Microsoft 网站上引用的 MCVE 作为示例代码一样,可能在较旧的 Windows 版本上工作,但不在 Windows-10 上,其中 “快速编辑模式” 似乎在 “Console-Defaults” 中启用。
【问题讨论】:
-
您是否在 IDE 中运行它?
-
我已经使用 Windows 7 和 MSVC 2015 编译并运行了相同的代码示例,当从控制台或 GUI 文件查看器运行时,它会按预期打印出鼠标事件。我没有使用 IDE。
-
@stark 不。我在 IDE 之外独立运行编译后的“.exe”。在“原子”中键入(粘贴)代码。并使用命令“gcc inputwin.c -o mouse”在命令提示符下通过 GCC 编译源代码(inputwin.c 是我粘贴该示例的文件名,该命令生成名为“.exe”的鼠标)。然后,我从它所在的文件夹中的 Windows 资源管理器中运行该 mouse.exe。
-
@WeatherVane 我使用的是 Windows 10 专业版 (1703)。我的编译器是 GCC。在命令提示符处编译该示例。
-
@WeatherVane 阅读您的评论后,我继续安装包含 Micosoft Visual C++ 2017 的 Microsoft Visual Studio Community 2017 版本 15.3.3(安装版本:社区),并创建了“新项目(Windows 控制台应用程序) )'。逐字粘贴所有示例代码!运行“构建解决方案”,在其默认路径“C:\Users\FAQi\source\repos\ConsoleApplication1\Debug\ConsoleApplication1.exe”中生成具有默认项目名称(“ConsoleApplication1.exe”)的“.exe”。去了那里。跑那个。结果一样! “......正确地告诉/打印所有'键事件'和'调整大小事件',但没有鼠标事件!”
标签: c windows cmd windows-10 windows-console