Hi,
Как освободить родительскую консоль (cmd.exe) до завершения приложения?
При запуске консольного приложения из родительской консоли (command.com, cmd.exe) в Windows 98 можно освободить род. консоль до завершения приложения вызвав FreeConsole(). Т.е. программа запустилась, написала что-либо на родительской консоле, освободила ее (окно готово к приему команд) и продолжает выполняться.
В NT-системах (2000, XP) при запуске консольного приложения из родительсой консоли (CMD.EXE) освободить ее (окно CMD) невозможно пока приложение не завершится. Даже после вызова FreeConsole() окно CMD.EXE продолжает ожидать завершения приложения, не реагируя ни на что - вроде как зависла. Курсор появляется только когда программа завершится.
Как освободить родительскую консоль в NT до завершения приложения?
------------------------
Сергей
освободить parent console до завершения приложения
Модераторы: Duncon, Hawk, Romeo, Eugie
В ремарке написано что никто не может убить консоль пока она используется другими процессами - возможно твой случай.
Можно попробовать сделать следующее - получить окно консоли GetConsolWnd или что-то такое и убить ее как простое окно.
Можно попробовать сделать следующее - получить окно консоли GetConsolWnd или что-то такое и убить ее как простое окно.
В SAD - все в SAD.
Нет, ее не надо убивать - только освободить. Чтобы она снова готова была для приема команд.
Под W98 функция FreeConsole делает это. А в NT только сбрасыват указатели стандартного ввода/вывода, консоль же продолжает ожидать завершения программы.
Под W98 функция FreeConsole делает это. А в NT только сбрасыват указатели стандартного ввода/вывода, консоль же продолжает ожидать завершения программы.
Запустить консольное приложениеКак освободить родительскую консоль в NT до завершения приложения?
а) либо с помощью команды start:
start myapp.exe
б) либо вызовом CreateProcess с параметром dwCreationFlags = CREATE_NEW_CONSOLE.