Как писать страницу вниз в буфер ввода консоли? -- .net поле с участием console-application пол Связанный проблема

How do I write 'PAGE DOWN' into the console input buffer?


1
vote

проблема

русский

Мне нужно программно отправить клавишу page down Нажмите в приложение консоли, и я потерян. Я пробовал Console.Setin Whith Treamreader через MemoryStream, затем написал 34 (Page Down в Consolekee enum) и ничего не случилось.

Английский оригинал

I need to programmatically send a Page Down key press to a console application and I'm lost. I tried Console.SetIn whith a StreamReader over a MemoryStream, then wrote 34 (Page Down in ConsoleKey enum) and nothing happenned.

</div
     

Список ответов

1
 
vote
vote
Лучший ответ
 
 <код> <url-mapping>7  
 
SendKeys.Send("{PGDN}"); 
</div
 
 
 
 
2
 
vote
<Р> Вы можете использовать функцию «WriteConsoleInput», которая является Windows API, чтобы написать на консоль непосредственно. С другой стороны, «SendKeys», «keybd_event» или «SendInput API» все должны работать, но потребует, что консоль находится на переднем плане. <Р> http://msdn.microsoft.com/ ан-нас / библиотека / ms687403 (VS.85) .aspx - WriteConsoleInput <Р> msdn.microsoft.com/en-us/library/ms646304 (VS.85) .aspx - keybd_event <Р> msdn.microsoft.com/en-us/library/ms646310 (VS.85) .aspx - SendInput <Р> Последние два эквивалентно использованию «SendKeys», который был получен из VB5s SendKeys API. К сожалению, последние два способа требует, чтобы целевое окно (Окно консоли или иным образом) быть активным окном, или иметь Thier входной очередь, прикрепленную к входу очереди активного окна. <Р> WriteConsoleInput будет наиболее подходящим способом, избегая необходимость иметь окно консоли видимыми или активные. Кроме того, запись в стандарте в / на окне консоли не то же самое, как отправка входа через API консоли или другого ввода-инъекции API (например, SendInput / keybd_event или VB / .NET SendKeys Упаковочный). <Р> не Консольные приложения Windows не так же, как 6.x Unix или DOS (или ранее) приложение «Консоль» в том, что она не является истинной трубой на основе реализации, во многих случаях отвода о с STDIN / STDOUT будет иметь не эффект, и вы можете обнаружить, что некоторые механизмы интеграции с консолью API вместо STDIN / STDOUT. Можно было бы сказать, почти STDIN мертв, особенно учитывая «объектные трубы», присутствующий в Windows PowerShell. <Р> В качестве альтернативы вы можете CreateProcess API (или System.Diagnostics.Process) и предоставить свои собственные STDIN / STDOUT / STDERR потоки и перепускной консоли Windows, для этих потоков, но опять-таки, если целевое приложение явно не работает через STDIN / STDOUT / STDERR так ли не может помочь.
 

You can use the "WriteConsoleInput" function, which is Windows API, to write to the console directly. Alternatively, "SendKeys", "keybd_event" or the "SendInput API" should all work, but will require that the console is in the foreground.

http://msdn.microsoft.com/en-us/library/ms687403(VS.85).aspx - WriteConsoleInput

msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx - keybd_event

msdn.microsoft.com/en-us/library/ms646310(VS.85).aspx - SendInput

The latter two are equivalent to using "SendKeys", which was derived from VB5s SendKeys API. Unfortunately the latter two methods require that the target Window (Console Window or otherwise) be the Active Window, or have thier Input Queue attached to the Input Queue of the Active Window.

WriteConsoleInput would be the most appropriate way, avoiding the need to have the COnsole Window visible or active. Also, writing to standard in/out on a Console window is not the same as sending Input via the Console API or other input-injection API (such as SendInput/keybd_event or the VB/.NET SendKeys Wrapper).

Windows Console Applications are not the same as a Unix or DOS 6.x (or earlier) "Console" application in that it is not a true pipes-based implementation, in many cases mucking about with STDIN/STDOUT will have no effect, and you may find that some frameworks integrate with the Console API instead of STDIN/STDOUT. One could almost say STDIN is dead, especially considering the "object pipes" present in Windows PowerShell.

Alternatively you can CreateProcess API (or System.Diagnostics.Process) and provide your own stdin/stdout/stderr streams and bypass the Windows Console for these streams, but again unless the target application explicitly works via STDIN/STDOUT/STDERR it may not help.

</div
 
 
0
 
vote

Можно ли использовать StreamWriter и System.Windows.Forms.Keys.PageDown?

 

Can you use StreamWriter and System.Windows.Forms.Keys.PageDown ?

</div
 
 

Связанный проблема

1  Разница между несколькими наследованиями и интерфейсами в C #  ( Difference between multiple inheritance and interfaces in c sharp ) 
делает C # действительно поддерживать многократное наследование. Люди говорят, что он поддерживает многократное наследование в виде интерфейсов? Но я не думаю...

5  Объект к сопоставлению объекта  ( Object to object mapping utility ) 
Мне нравится чисто разделить публику и домен объекты (Итак, nhibernate не поможет здесь) друг от друга, которые заставляют меня писать много кода, чтобы ото...

105  Почему C # реализует методы как не виртуальные по умолчанию?  ( Why c sharp implements methods as non virtual by default ) 
В отличие от Java, почему C # методы лечения как не виртуальные функции по умолчанию? Скорее всего, это проблема производительности, а не на других возможных ...

0  NU1701, NU1202 Восстановление пакета Восстановление на свежей установке Windows / VS  ( Nu1701 nu1202 package restore errors on fresh windows vs setup ) 
Работа в команде, у нас есть решение в Git, который разрабатывается на 3 разных DEV. Я временно ушел на разное место с моим ноутбуком, где у меня свежая Win 1...

2  Высевание многих для многих кода EF первые отношения  ( Seeding many to many ef code first relationship ) 
Есть несколько других сообщений по этой теме, которую я видел, но я не смог получить правильный ответ еще (моя собственная вина, я уверен), но я хочу сеять ба...

1  MS Access + IIS + Femsonation = «Неуказанная ошибка»?  ( Ms access iis impersonation unspecified error ) 
У меня есть приложение ASP .NET (2.0), которое подключается к базе данных доступа по доли сети с использованием подражания и базовой аутентификации в IIS. Все...

1  Как получить доступ к конкретной группе в CollectionSourceSource.View.Groups  ( How to access a specific group within collectionviewsource view groups ) 
У меня есть .NET Имя Свойство. Я хотел бы знать, есть ли способ выбрать определенную подгруппу на достаточно высоком уровне без необходимости оценивать н...

6  Привязка данных и выдающееся исключение в установке  ( Data binding and throwing exception in setter ) 
Давайте скажем, у меня есть простой класс <код> public class Person { public string Name { get; set; } private int _age; public int Age { get {...

3  Установка NET Framework 4 удаленно в качестве администратора  ( Installing net framework 4 remotely as an administrator ) 
Я пытаюсь установить .NET Framework 4.0 удаленно используя следующие команды 1 <код> command => 'Powershell.exe -Verb RunAs -FilePath C:TempdotNetFx40_Ful...

5  Сделать структуру сущности быть нечувствительными к регистру  ( Make entity framework be case insensitive ) 
Возможно ли установить корпус строки структуры объекта нечувствителен по умолчанию? Если я использую <код> string.StartsWith("stringToCompare", StringComp...

1  WCF Callback Doblocks даже с «iSineynchronInationContext = False»  ( Wcf callback deadlocks even with usesynchronizationcontext false ) 
Я застрял с проблемой, которую я не могу понять. Проблема связана с синхронизацией между потоками на стороне клиента, но я не могу найти корневую причину эт...

0  Streaminsight и долгосрочные запросы  ( Streaminsight and long running queries ) 
У меня есть приложение, построенное на вершине Streaminsight 1.2, который имеет несколько постоянных запросов, выполняющих некоторые расчеты в операторах опре...

0  Как загрузить каталог на FTP, используя ftplib?  ( How to upload directory to ftp using ftplib ) 
У меня проблемы с загрузкой Все файлы на FTP: я использую ftplib . У меня есть функция для загрузки: <код> Proj executable not found. Please set PROJ_DIR v...

1  Как предотвратить проверку сканирования несколько раз?  ( How to prevent scan from running multiple times ) 
Например <код> var subject = new Subject<int>(); var test = subject.Scan(0, (x, y) => { Console.WriteLine("scan"); return x + 1; }); test.Subscribe(...

1  Получение строки сразу после вставки возвращается нет результата  ( Getting row right after insert returns no result ) 
Я бегут тесты подразделения, и когда я пытаюсь вставить данные в базу данных и получить его сразу после того, как я ничего не получаю (я пробовал с <код> Data...

Связанный проблема

1  Разница между несколькими наследованиями и интерфейсами в C # 
5  Объект к сопоставлению объекта 
105  Почему C # реализует методы как не виртуальные по умолчанию? 
0  NU1701, NU1202 Восстановление пакета Восстановление на свежей установке Windows / VS 
2  Высевание многих для многих кода EF первые отношения 
1  MS Access + IIS + Femsonation = «Неуказанная ошибка»? 
1  Как получить доступ к конкретной группе в CollectionSourceSource.View.Groups 
6  Привязка данных и выдающееся исключение в установке 
3  Установка NET Framework 4 удаленно в качестве администратора 
5  Сделать структуру сущности быть нечувствительными к регистру 
1  WCF Callback Doblocks даже с «iSineynchronInationContext = False» 
0  Streaminsight и долгосрочные запросы 
0  Как загрузить каталог на FTP, используя ftplib? 
1  Как предотвратить проверку сканирования несколько раз? 
1  Получение строки сразу после вставки возвращается нет результата