【问题标题】:Windows, How yo protect a command window from keystrokes or mouseclicks?Windows,如何保护命令窗口免受击键或鼠标点击?
【发布时间】:2013-06-07 17:21:58
【问题描述】:

我偶尔会在执行大规模构建等操作时让一个命令窗口(在 Windows、XP 或 7 上)启动并运行数小时。我只是注意到我不小心点击了一个窗口和在其中运行的程序它并标记一段随机的文本。猜猜命令提示符需要鼠标单击来复制文本,但我没有提供它。

所以,我要找的东西并不容易找到。我想不到要搜索的任何内容都不会得到与计算的其他方面无关的答案:保护器、盾牌等。

那么,它有这样的程序吗?我设想有一些东西环绕在所讨论的窗口周围并且是透明的(即我可以阅读它),但它会拦截针对“内部”窗口的任何击键或鼠标点击。

【问题讨论】:

  • 您要保护自己制作的程序还是第三方程序?
  • 只点击窗口是没有问题的,右击会标记文本。正常使用时会不会右键?
  • 人们会猜测这不太可能。反正我做到了 我的部分问题是我的手指比设计魔术鼠标的人短。因此,我的食指往往会放在中指应该在的位置。

标签: windows-7 windows-xp command-prompt


【解决方案1】:

您可以尝试将控制台应用程序的输出重定向到一个文件(这很简单,无需任何编程即可从命令行执行)。

或者,您可以编写一个具有只读文本框的小型前端(C# 会非常简单)。当这个前端启动时,它会启动你的命令行程序并重定向它的输出,以显示在文本框中。

这两种解决方案都易于实现 - 文件更简单,但您无法在控制台程序运行时读取输出,只能在之后读取。使用 UI 前端,您可以在控制台程序生成输出时更新和滚动文本框。 UI 选项还允许您隐藏真正的控制台窗口,并且只显示您的 UI 前端窗口。

如果您的控制台程序也需要输入,则要复杂得多,但根据您的描述,情况并非如此。我不知道有什么现成的实用程序可以做到这一点,但即使你必须自己做,在 C# 或 VB.Net 中也可能不到 200 行(不是很复杂)代码。

【讨论】:

  • 重定向有问题。有问题的程序已经在 MinGW/MSYS、Windows 解决方案上的 Linux 编译器和 Linux 环境模拟器中运行,并且它正在运行的脚本(以及这些脚本运行的脚本......)已经有一些重定向到 /dev/ null 和其他地方。此外,还有要解决的 stdout/stderr 2>&1 问题。您让 C# 程序包装 Window 的想法听起来很棒。并非我所要做的就是学习 c#.... 我有这张看起来像透明信封的图片包裹在“控制台”窗口周围。
  • @WesMiller 这不是我的想法,但我知道它会有什么用处。你的想法在 C# 中也是可行的,但它会做更多的工作,因为你必须跟踪控制台窗口的位置以及它是否被最小化等。这就是为什么我建议重定向你的顶级输出流控制台窗口(我假设那是 MinGW)。您应该能够轻松地重定向。该窗口执行的任何重定向与您无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 2015-06-10
  • 2020-05-12
  • 2016-10-28
  • 2019-05-22
  • 2011-05-14
  • 1970-01-01
相关资源
最近更新 更多