2017-11-30 5 views
1

암호로 보호 된 일부 소프트웨어를 작성하고 있습니다. 사용자가 프로그램을 시작하면 암호를 입력합니다 (암호를 입력 할 때 검은 색으로 표시됨). 그런 다음 프로그램이 명령 행 인터페이스로 변경됩니다.콘솔 명령 기록 삭제 C#

문제는 입력 된 암호를 일반 텍스트로 포함하여 명령 기록을 스크롤 할 수 있다는 것입니다. 프로그래밍 방식으로 콘솔 기록을 지우려면 어떻게해야합니까?

this post에있는 해결책을 시도했습니다.

Svish의 대답을 the same post에서 시도한 후 간단히 작동하지 않았습니다. 나는 Process.Start("doskey","/reinstall")을 사용했으며 명령 프롬프트 창을 열었습니다.

Hans Olsson's 답변도 작동하지 않았습니다. AccessViolation이 있는데 사용 방법에 대한 설명이 없습니다. FreeConsole을 사용하려고하면 해제 및 재 할당 한 후에 더 이상 Console.WriteLine을 사용할 수 없으므로 작동하지 않습니다. 나는 IOException: The method is not supported.

+1

슬프게도, 그다지 잘 작동하지 않았습니다. 그것을 정확히 사용하는 방법에 대한 좋은 설명을 찾을 수 없었습니다. – noodles

+1

어떤 대답이 잘되지 않습니까? 그들 모두 해봤습니까? 특히 Svish의 대답은? 진정으로 효과가 없다면 게시물을 편집하여 특히 그 답변이 왜 효과가 없는지 설명해 주시겠습니까? 실제로 복제본이 아닌 경우 다시 열 수 있습니다. – Rob

+0

중복되지 않았 음을 증명하기 위해 편집 됨. – noodles

답변

0

키 스트로크 Alt + F7을 본체로 보내면 this 문서에 따라 콘솔이 지워집니다. Visual Studio에 내장 된 테스트 자동화 소프트웨어를 사용하여 이러한 키 입력을 자동화 할 수 있습니다.

using Microsoft.VisualStudio.TestTools.UITesting; 

    Keyboard.SendKeys("%{F7}") 
+0

어디에서'Microsoft.VisualStudio.TestTools.UITesting' 가져 오기를 구합니까? 나는 참조 목록에서 그것을 보지 못합니다 - 또한 테스트 수입이기 때문에 최종 생산에는 안전할까요? – noodles

+0

가져 오기를 찾았습니다. – noodles

+0

가져 오기가 작동하지 않는 것 같습니다. 참조 후에도 'Keyboard.SendKeys'가 메소드로 표시되지 않습니다. 현재 컨텍스트에는 존재하지 않습니다. – noodles

0

결국 인증 방법이 변경되었습니다. 이제 BIOS/마더 보드의 고유 일련 번호를 검색합니다. 일련 번호는 이제 보안 서버에 있으며 프로그램에서 검색합니다. 시리얼이 발견되면 실행이 계속됩니다. 그렇지 않으면 실행이 중지됩니다.

회사에있는 사람들이 프로그램에 액세스해야하는 경우 프로그램을 실행하고 액세스 거부 (액세스 거부) 문구의 일련 번호로 액세스 권한을 거부하고 관리자에게 일련 번호를 제공하면 그것을 시스템에 넣으십시오.