Windows 양식 응용 프로그램에서 sendKeys를 사용할 수 있지만 키를 콘솔 응용 프로그램의 프로세스로 보낼 수 있다는 것을 알고 있습니까?Visual Studio Console 응용 프로그램의 프로세스에 sendKeys를 사용할 수 있습니까?
1
A
답변
0
다른 옵션도있을 수 있지만이 대답에서는 입력란에 파일 스트림을 집중적으로 설명하고자합니다.
명령은 다음과 같이 보일 것입니다 :
c:\>MyConsole < c:\temp\streamin.txt
다음의 예는 'Q'는 '누르면'될 때까지 파일에서 입력을 받아 간단한 콘솔 응용 프로그램입니다.
프로그램 1
static void Main(string[] args)
{
var isBusy = true;
while (isBusy)
{
var k = Console.In.Read();
if (k > -1)
{
var c = Convert.ToChar(k);
// quit if 'q' was pressed.
if (c == 'q')
isBusy = false;
Console.WriteLine($"Key pressed: {c}");
}
Thread.Sleep(500);
}
Console.WriteLine();
Console.WriteLine("Done. Closing in 5 seconds.");
Thread.Sleep(5000);
}
입력이 파일에서오고 있기 때문에 Console.ReadKey이 하지가 사용할 수 있습니다. 메모장에서 파일을 열고 이 키와 파일 저장 를 추가하면
, 당신은 키를 읽 프로그램 일을 알 수 있습니다.
키를 파일에 추가하는 다른 프로그램을 만들 수도 있습니다.
프로그램은 2
static void Main(string[] args)
{
var f = new FileStream(@"c:\temp\streamin.txt", FileMode.Append);
var key = new ConsoleKeyInfo();
while (key.KeyChar != 'q')
{
key = Console.ReadKey(false);
f.Write(new[] { Convert.ToByte(key.KeyChar) }, 0, 1);
f.Flush();
}
f.Close();
f.Dispose();
Console.WriteLine();
Console.WriteLine("Done. Press any key to quit.");
Console.ReadKey(true);
Console.WriteLine();
}
이 바로 가능하다 무엇을 설명하기 위해, 아주 간단한 프로그램입니다. 프로그램 2는 'q'를 누를 때까지 프로그램 1이 파일에서 계속 읽는 동안 파일에 키를 계속 추가합니다.
Console.SetIn()
을 사용하여 명령 줄 대신 프로그램 1에서 입력 스트림을 설정할 수도 있습니다.