1f190833

Для переадресации устройства вывода воспользуемся


Для переадресации устройства вывода воспользуемся параметром lpStartupInfo, который имеет следующую структуру (см. таблицу 1).

Таблица 1. Параметры функции CreateProcess
Параметр Описание
cb: DWORD; Размер данной структуры
lpReserved: Pointer; Зарезервировано
lpDesktop: Pointer; Для NT - указатель на строку, которая содержит название дисплея, на который выводится информация приложения (здесь не используется)
lpTitle: Pointer; Для консольных приложений - строка, которая отображается на панели задач
dwX: DWORD; X-координата приложения (нам она не нужна - 0)
dwY: DWORD; Y-координата приложения (нам она не нужна - 0)
dwXSize: DWORD; Ширина окна приложения (нам она не нужна - 0)
dwYSize: DWORD; Высота окна приложения (нам она не нужна - 0)
dwXCountChars: DWORD; Для консольных приложений задает ширину в "текстовых единицах" (для нас - 0)
dwYCountChars: DWORD; Для консольных приложений задает высоту в "текстовых единицах" (для нас - 0)
dwFillAttribute: DWORD; Задает сочетание цвета фона и цвета символа (это не для нас - опять 0)
dwFlags: DWORD; См. таблицу 2
wShowWindow: Word; Одна из констант SW_ - режим отображения приложения (это не для нас)
cbReserved2: Word; Зарезервировано
lpReserved2: PByte; Зарезервировано
hStdInput: THandle; Дескриптор стандартного ввода
hStdOutput: THandle; Дескриптор стандартного вывода
HStdError: THandle; Дескриптор стандартного устройства вывода ошибки
Таблица 2. Описание флагов запускаемого процесса
Значение Описание
STARTF_USESHOWWINDOW Если не задан, wShowWindow игнорируется
STARTF_USEPOSITION Если не задан,, dwX, dwY игнорируются
STARTF_USESIZE Если не задан dwXSize, dwYSize игнорируются
STARTF_USECOUNTCHARS Если не задан, dwXCountChars, dwYCountChars игнорируются
STARTF_USEFILLATTRIBUTE Если не задан, dwFillAttribute игнорируется
STARTF_FORCEONFEEDBACK Очень много написано, все равно не использую
STARTF_FORCEOFFFEEDBACK Очень много написано, все равно не использую
STARTF_USESTDHANDLES Если не задан, hStdInput, hStdOutput, hStdError не используются
Как же все это будет выглядеть в программе? Для начала приведу функцию, которая возвращает в параметре Result:TStringList значения переменных окружения:


Начало  Назад  Вперед