процедура:
procedure TRedirectThread.WriteData(Data: OEMString);
var
Written: Cardinal;
begin
if hWriteIn <> 0 then
WriteFile(hWriteIn, Data[1], Length(Data) * StringElementSize(Data), Written, nil);
end;
в которую я могу отправить, буковы и они будут исполняться по ентеру.
Но если я туда отправлю, например #3 (контрл+С, то консоль посчитает это не управляющей командой, а, почему-то текстовой командой, пытается её выполнить и возвращает:
" " не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
https://learn.microsoft.com/en-us/windows/console/generateconsolectrlevent
Что делаю не так? Создаю процесс, сохраняю его ИД. Потом отправляю контрлевент в него, и ничего не происходит
Вторым параметром ноль насколько я помню, а вообще в MSDN пример посмотри
см. signalcb: якобы оно посылает Ctrl+C процессу https://github.com/skalogryz/systools
Не работает нифига. И, как описано в инторнетах, работает глючно. То не даёт никакого эффекта, то убивает себя.
Обсуждают сегодня