169 похожих чатов

Коллеги, приветствую 🤝 Я запускаю консольное приложение командной строкой, типа: CreateProcess(nil, PChar(sParams),

nil, nil, False, 0, nil, PChar(sWorkDir), SI, PI);

Где:
SI.wShowWindow = SW_SHOW - консоль отображается в новом окне
sParams = app.exe -key 12345

А как сделать так, чтобы консоль продолжала висеть после завершения работы процесса, чтобы можно было посмотреть результаты работы воочию?

Добиться эффекта типа как батником запускал бы:

run.bat

app.exe -key 12345
pause

3 ответов

10 просмотров

Вот тебе аналог сишного system("pause") program Project1; {$APPTYPE CONSOLE} {$R *.res} uses Windows, System.SysUtils; function SystemPause(const Prompt: AnsiString): Boolean; const EventCount = 128; var hStdIn, hStdOut: THandle; I: Integer; lpNumberOfBytesWritten, lpNumberOfEventsRead: Cardinal; InputRecords: array [0..EventCount - 1] of TInputRecord; begin hStdIn := GetStdHandle(STD_INPUT_HANDLE); hStdOut := GetStdHandle(STD_OUTPUT_HANDLE); Result := (hStdIn <> 0) and (hStdOut <> 0); if not Result then Exit; WriteFile(hStdOut, Prompt[1], Length(Prompt), lpNumberOfBytesWritten, nil); while ReadConsoleInput(hStdIn, InputRecords[0], EventCount, lpNumberOfEventsRead) do for I := 0 to lpNumberOfEventsRead - 1 do begin Result := (InputRecords[I].EventType = KEY_EVENT) and (InputRecords[i].Event.KeyEvent.bKeyDown); if Result then Exit end; end; begin SystemPause('Press any key to continue...'); end.

Михаил- Автор вопроса
Александр (Rouse_) Багель
Вот тебе аналог сишного system("pause") program P...

А этот код заработает из gui приложения? У меня консоль из vcl запускается

Михаил
А этот код заработает из gui приложения? У меня к...

это надо в консоль добавить, если же в консоли этого кода нет, тогда чуть выше тебе набор компонент скинули который работает с консолью через пайп, вот через него и делай паузу

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Карта сайта