Посылка стороннему приложению комбинации Ctrl-C

Понимание происходящего и не более.

"вот так вот" это не аргумент, просто слова ничем не подкреплённые. Это

не поток

ввода. Это работает

не так

! Ещё раз спрошу - как поток ввода связан с окном консоли? Подробнее и глубже плиз. Ибо не разобравшись в механизмах детально получается магия, а я в магию не верю.

С оконным приложением всё понятно (многократно описано в инете). При создании оконного приложения оно регистрируется в системе как получатель оконных сообщений. Винда получив сигнал о поступлении ввода (нажали клавишу, шевельнули и тыкнули мышкой и др.) определяет ОКНО в пределах которого произошел ввод (активное окно или область иного окна) и помещает сообщение ввода в очередь сообщений данного окна. Затем приложение (окно) извлекает это сообщение из очереди и обрабатывает его. Всё. Нету тут потока ввода.

Теперь консольное приложение. У консольного приложения как бы нет своего окна, есть процесс, поэтому обработка ввода возлагается на окно консоли

Shell

(далее консоль), как я понимаю именно оно содержит цикл опроса очереди сообщений. Консоль обрабатывает сообщение ввода точно также как и любое оконное приложение и перенаправляет его в поток ввода процесса. Процесс каким-то неведомым мне образом определяет поступление новых данных в своём потоке ввода и обрабатывает их. Если процессу надо что-то отобразить, то он направляет данные в свой поток вывода. Консоль

слушает

поток вывода и при поступлении данных выводит их в своё окно. НО у процесса есть ещё и поток ошибок, который запросто можно перенаправить в файл.

Допустим, что всё написанное мной выше имеет место быть, тогда ВОПРОС: почему я не могу сымитировать ввод комбинации Ctrl-C и отправить его процессу при условии, что консоль отключена

Process1.StartInfo.UseShellExecute = False

? Чем эта посылка отличается от посылки комбинации консолью?

Ещё про потоки. Ребята, не путайте потоки ввода/вывода процесса с любыми другими потоками. В рамках одного процесса я могу создать сколько угодно потоков на запись/чтение в файл, порт, память, но это не будут потоки ввода/вывода процесса. То есть что ли

управляющими

потоками.

Hell666

, выдержка из MSDN ни о чём, если честно или она жёстко оторвана от контекста повествования.

Не по теме:

Жаль, что к дискуссии не присоединяются настоящие знатоки ((