我正在编写一些受密码保护的软件。当用户启动程序时,他们输入一个密码(在输入密码时会被涂黑)。然后程序变为命令行界面。
问题是,您可以滚动浏览命令历史记录,包括以明文输入的密码。如何以编程方式清除控制台历史记录?
我尝试了this post中找到的解决方案。
在the same post上尝试Svish的回答之后,它根本行不通。我使用了Process.Start("doskey","/reinstall")
,它所做的就是打开命令提示符窗口。
Hans Olsson's回答也不起作用;我得到了一个AccessViolation
,对如何使用它没有很好的解释。尝试使用FreeConsole
也不起作用,因为在释放和重新分配后,我无法再使用Console.WriteLine
。我得到IOException: The method is not supported.
答案 0 :(得分:0)
将按键Alt + F7发送到控制台将根据this文档清除它。您可以使用visual studio内置的测试自动化软件自动发送这些击键:
using Microsoft.VisualStudio.TestTools.UITesting;
Keyboard.SendKeys("%{F7}")
答案 1 :(得分:0)
我最终改变了身份验证方法。它现在检索BIOS /主板的唯一序列号。序列号现在位于安全的服务器上,并由程序检索。如果找到序列,则执行将继续。如果没有,执行将停止。
如果公司中的人员需要访问该程序,他们将运行该程序,拒绝访问(使用序列号在"访问被拒绝"语句),给管理员序列数字,他们将它放在系统中。