清除控制台命令历史记录C#



我正在编写一些受密码保护的软件。当用户启动程序时,他们会输入一个密码(键入该密码时,该密码被涂成黑色)。然后程序更改为命令行接口。

问题是,您可以滚动命令历史记录,包括明文中的输入密码。我如何以编程方式清除控制台历史记录?

我尝试了这篇文章中找到的解决方案。

在同一帖子上尝试了Svish的答案后,它根本不起作用。我使用了Process.Start("doskey","/reinstall"),而它所做的只是打开命令提示符窗口。

汉斯·奥尔森(Hans Olsson)的回答也不起作用。我得到了AccessViolation,并且对如何使用它没有很好的解释。尝试使用FreeConsole也无法使用,因为释放和重新定位后,我再也无法使用Console.WriteLine。我得到IOException: The method is not supported.

将按键Alt F7发送到控制台将根据本文档清除它。您可以使用内置在Visual Studio中的测试自动化软件来自动发送这些击键:

using Microsoft.VisualStudio.TestTools.UITesting;
    Keyboard.SendKeys("%{F7}")

我最终更改了身份验证方法。现在,它检索了BIOS/主板的独特序列号。序列号现在在安全服务器上,并由程序检索。如果找到了串行,则执行将继续。如果没有,执行将停止。

如果公司中的人们需要访问该程序,他们将运行该程序,获得访问权限(在"访问拒绝"语句中使用序列号),给管理员序列号,他们将放置它在系统中。

最新更新