清除控制台命令历史C#

时间:2017-11-30 01:21:45

标签: c# windows security console command

我正在编写一些受密码保护的软件。当用户启动程序时,他们输入一个密码(在输入密码时会被涂黑)。然后程序变为命令行界面。

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

我尝试了this post中找到的解决方案。

the same post上尝试Svish的回答之后,它根本行不通。我使用了Process.Start("doskey","/reinstall"),它所做的就是打开命令提示符窗口。

Hans Olsson's回答也不起作用;我得到了一个AccessViolation,对如何使用它没有很好的解释。尝试使用FreeConsole也不起作用,因为在释放和重新分配后,我无法再使用Console.WriteLine。我得到IOException: The method is not supported.

2 个答案:

答案 0 :(得分:0)

将按键Alt + F7发送到控制台将根据this文档清除它。您可以使用visual studio内置的测试自动化软件自动发送这些击键:

using Microsoft.VisualStudio.TestTools.UITesting;

    Keyboard.SendKeys("%{F7}")

答案 1 :(得分:0)

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

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