К Т П           План занятия                                                              1                                           Страницы  | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 |

4. Создание консоли

Процесс может быть связан только с одной консолью. Новая консоль может создаваться одним из следующих двух способов.

Первый способ заключается в том, что при создании консольного процесса командой CreateProcess нужно установить флаг CREATE_NEW_CONSOLE. Отметим, что в этом случае, если консольный процесс создается из консольного приложения, а указанный флаг не установлен, то новый процесс присоединяется к консоли родительского процесса.

Второй способ заключается в использовании функции AllocConsole, которая имеет следующий прототип:
BOOL  AllocConsole(VOID);

Эта функция возвращает ненулевое значение, если консоль создана успешно, и false — в противном случае.

В обоих этих случаях заголовок окна консоли, его параметры, а также цвет фона и цвет текста задаются следующими полями структуры startupinfo:
- lpTitie — заголовок окна консоли;
- dwx, dwY — позиция левого угла окна консоли;
- dwxsize, dwYSize — размеры окна;
- dwxcountchars, dwYCountchars — размеры буфера экрана;
- dwFi 1 lAtt гibutes — цвет фона и цвет тексга;
- wshowWindow — способ отображения окна при запуске приложения.

Все эти параметры используются при запуске процесса только в случае, если в поле dwFiags этой же структуры установлены следующие управляющие флаги:
- STARTF_USEPOSITION — использовать ПОЛЯ dwX, dv/YJ
- STARTF_USESIZE — ИСПОЛЬЗОВатЬ ПОЛЯ dwXSize, dwYSizeJ
- STARTFJJSECOUNTCHARS — ИСПОЛЬЗОВатЬ ПОЛЯ dwXCountChars, dwYCountChars;
- STARTF_USEFILLATTRIBUTE — ИСПОЛЬЗОВатЬ ПОЛе dwFillAttributes;
- STARTF_USESHOWWINDOW — ИСПОЛЬЗОВатЬ ПОЛе wShowWindow.

В противном случае значения этих полей игнорируются.

 

 


Предыдущая        В начало страницы       Следующая
4