Системная информация. Информация о среде выполнения процесса, страница 5

GetEvironmentVariable                 «• Windows 98   + Windows 2000

Описание

Функция GetEvironmentVariable возвращает значение, связанное с переменной окружения процесса.

Синтаксис

DWORD GetEvironmentVariable(LPTCSTR IpszName, LPTSTR IpszValue DWORD dw Value)

Параметры

IpszName

LPTCSTR Указатель на строку, завершающуюся нулевым символом и содержащую имя переменной окружения.

IpszValue

LPTSTR Указатель на буфер, в который поступает значение переменной окружения.

dw Value

DWORD: Количество символов типа   TCHAR, сохраняемых в буфере IpszValue.

Возвращаемое значение

DWORD: Если переменная среды не найдена, возвращается 0; в противном случае возвращается число символов типа TCHAR, сохраняемых в буфере IpszValue. В это число не входит завершающий нулевой символ. Если функция не может быть выполнена вследствие недостаточного размера буфера, возвращается число символов типа TCHAR, которое фактически требуется для сохранения значения переменной. Для проверки указанного выше условия или сравнения с размером буфера значения, возвращаемого функцией GetEvironmentVariable стоит прибегнуть к функции GetLastError. Если возвращаемое значение больше, буфер перераспределяется в соответствии с необходимым размером, а функцию GetEvironmentVariable можно успешно вызвать еще раз.

Включаемый файл

winbase.h

См. также

GetEvironmentString, SetEvironmentVariable.

Пример

Когда пользователь выбирает в приведенном ниже примере пункт меню Test!, значение переменной TEST заменяется значением, передаваемым в командной строке.

См.    \local~sources\chap21\21-06. fact

GetLocalTime                            • Windows 98   * Windows 2000

Описание

Функция GetLocalTime осуществляет выборку местного времени из структуры типа SYSTEMTIME. Это время настраивается на летнее время применительно к конкретному временному поясу.

Синтаксис

VOID GetLocalTime(LPTSYSTEMTIME Ipsi)

Параметры

Ipsi

LPTSYSTEMTIME: Указатель на структуру SYSTEMTIME, которая будет заполнена датой и временем в формате местного времени. Определение структуры SYSTEMTIME приведено в описании функции GetSystemTinieдалее в этой главе.

Включаемый файл

winbase.h

См. также

GetSystemTime, SetSystemTime, SetLocalTime.

Пример

В следующем примере время переводится на один час вперед всякий раз, когда пользователь выбирает пункт меню Test! По завершении данного примера системное время восстанавливается. Примечание: этот пример приводит к утере компьютером времени, в течение которого он выполняет данный пример.

См.    \Jocal-sources\chap2I\21-07. txt

GetLoqicalDrives                         • Windows 98   • Windows 2000

Описание

Функция GetLogicalDrives возвращает битовую маску логических дисков, которые доступны в настоящий момент. При этом каждый бит маски представляет конкретный диск. Если бит установлен, значит, логический диск доступен, иначе бит будет сброшен.

Синтаксис

DWORD GetLogicalDrives(VOID)

Параметры

Параметры отсутствуют.

Возвращаемое значение

DWORD: Битовая маска логических дисков. Биты этой маски устанавливаются в случае доступности соответствующих дисков. Бит 0 соответствует диску А, бит 1 — диску В, бит 2 — диску С и т.д. Если функция не может быть выполнена, возвращается значение 0.

Включаемый файл

winbase.h

См. также

GetLogicalDriveStrings .

Пример

См. пример применения функции GetDiskFreeSpaceEx

GetLogicalDriveStrings                    • Windows 98   • Windows 2000

Описание

Функция GetLogicalDriveStrings заполняет буфер строками, которые определяют действительные логические диски в системе.

Синтаксис

DWORD GetLogicaIDriveStrings(DWORD nBufferLength, DWORD IpBuffer)

Параметры

nBufferLength

DWORD: Максимальный размер (в символах) буфера, на который указывает параметр IpBuffer. В этот размер не входит завершающий нулевой символ.

IpBuffer

DWORD: Указатель на буфер, который принимает набор строк, завершающихся нулевым символом, причем на каждый действительный логический диск в системе приходится по одной строке, а завершается этот набор строк еще одним нулевым символом. Содержимое буфера, где <null> означает завершающий нулевой символ, выглядит следующим образом: C:\<nulI>D:\<nullXnull>.

Возвращаемое значение

DWORD: Если выполнение рассматриваемой функции окажется успешным, возвращаемое значение представляет собой длину (в символах) строк, скопированных в буфер, за исключением завершающего нулевого символа. Если же буфер оказался недостаточно велик, возвращаемое значение представляет собой размер буфера, который требуется для хранения строк, обозначающих логические диски. Если функция не завершается успешно, возвращается 0.

Включаемый файл

winbase.h

См. также

GetLogicalDrives.

GetStartuplnfo                            • Windows 98   * Windows 2000

Описание

Функция GetStartuplnfo возвращает информацию, имеющую отношение к тому, каким образом процесс был установлен его родительским процессом.

Синтаксис

VOID GetStartupInfo(LPSTARTUPINFO Ipsi)

Параметры

Ipsi

LPSTARTUPINFO: Указатель на структуру STARTUPINFO, которая использовалась родительским процессом при создании вызывающего данную функцию процесса. Перед вызовом функции GetStartuplnfo член сЬ структуры STARTUPINFO должен быть инициализирован в соответствии с размером данной структуры. Определение структуры STARTUPINFO приводится ниже.

Включаемый файл

winbase.h

См. также

CreateProcess.

Пример

Когда пользователь выбирает в приведенном ниже примере пункт меню Test!, в окне сообщений выводятся некоторые данные запуска процесса.

См.    \local-sources\chap21 \21-08. txt

Определение структуры STARTUPINFO

typedef struct    STARTUPINFC {

DWORD cb;

LPTSTR         IpReserved;

LPTSTR         IpDesktop ;

LPTSTR         IpTitle ;

DWORD dwX;

DWORD dwY;

DWORDdwXSize;

DWORD dwYSize;

DWORD dwXCountChars ;

DWORD dwYCountChars ;

DWORD dwFillAttribute

DWORD dwFlags;

WORD wShowWindow;

WORD cbReserved2 ;

LPBYTE          lpReserved2 ;

HANDLE          hStdlnput;

HANDLE         hStdOutput ;

HANDLE          hStdError; }    STARTUPINFO,   *LPSTARTUPINFO;

Члены структуры STARTUPINFO

cb

DWORD: Размер структуры в байтах.

IpReserved

LPTSTR: Зарезервировано. Прежде чем данная структура будет передана функции GetStartupInfo, необходимо установить значение NULL данного члена.

lpDesktop

LPTSTR: В Windows 2000 это указатель на строку, завершающуюся нулевым символом и определяющую только наименование рабочего стола либо местоположения окна и рабочего стола для данного процесса. Обратная косая черта в данной строке указывает на то, что в нее включены наименования рабочего стола и местоположения окна. В противном случае эта строка интерпретируется в качестве просто наименования рабочего стола. Если установить для данного члена значение NULL, тогда новый процесс унаследует местоположение окна и рабочего стола своего родительского процесса.

IpJhle

LPTSTR: Заголовок, который отображается в строке заголовка при создании нового окна консоли. Если же установлено значение NULL, в качестве заголовка окна используется имя исполняемого файла. Для GUI-интерфейса или консольных процессов, которые не создают новые окна консоли, следует использовать значение NULL.

dwX

DWORD: Координата х верхнего левого угла окна, которая указывается в том случае, если создается новое окно. Этот член игнорируется, если не задается значение STARTF_USESIZE члена dwFlags.

dwY

DWORD: Координата у верхнего левого угла окна, которая указывается в случае создания нового окна. Этот член игнорируется, если не задается значение STARTFJJSESIZE члена dwFlags.

dwXSl«

DWORD: Ширина окна, которая указывается в случае создания нового окна. Этот член игнорируется, если не задается значение STARTFJJSESIZE члена dwFlags.

dwYSize

DWORD: Высота окна, которая указывается в случае создания нового окна. Этот член игнорируется, если не задается значение STARTF_USESIZE члена dwFlags.

DwXCountChars

DWORD: Размер буфера, который определяет ширину экрана в символьных столбцах и указывается в случае создания нового окна. Этот член игнорируется, если не задается значение STARTF_USECOUNTCHARS члена dwFlags.

DwYCountChars

DWORD: Размер буфера, который определяет высоту экрана в строках символов и указывается в случае создания нового окна. Этот член игнорируется, если не задается значение STARTF_USECOUNTCHARS члена dwFlags.

dwFillAttribute

DWORD: Первоначальные цвета текста и фона, которые указываются в случае создания в консольном приложении нового окна. Эти значения игнорируются в GUI-приложении либо если не задается значение STARTFJJSEFILLATTRIBUTE члена dwFlags. Для данного члена можно определить любое сочетание следующих значений: FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED, FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN, BACKGROUND RED и BACKGROUND_INTENSITY.

dwFlags

DWORD: Определяет, будут ли определенные члены структуры STARTUP-INFO использоваться при создании процессом окна. При этом можно указать любые сочетания значений, перечисленных в табл. 21.4.

wShowWindow

WORD: Принимает значение, которое устанавливается по умолчанию при первом вызове функции ShowWindow. При этом параметр nCmdShow функции ShowWindow игнорируется. Этот член игнорируется, если не задается значение STARTJJSESHOWWINDOW члена dwfJags. Действительные значения функции ShowWindow рассматриваются в главе 4.

cbReserved2

WORD: Зарезервировано. Значение этого члена должно быть равно 0.

lpReserved2

LBYTE: Зарезервировано. Значение этого члена должно быть равно NULL.

liStdlnput

HANDLE: Дескриптор стандартного входного потока процесса, если не указано значение START_USESTDHANDLES члена dwFlags.

hStdOutput

HANDLE: Дескриптор стандартного выходного потока процесса, если не указано значение START_USESTDHANDLES члена dwFlags.

hStdError

HANDLE: Дескриптор стандартного потока ошибок процесса, если не указано значение STARTJJSESTDHANDLES члена dwFlags.

Таблица 21.4 Значения члена dwFlags структуры STARTUPINFO

Значение

Что означает

START_FORCEOFFEEDBACK

Во время запуска процесса отображение курсора обратной связи принудительно подавляется

START_FORCEONFEEDBACK

Курсор переходит в режим обратной связи в течение двух секунд после вызова функции CreateProcess. Если в течение этих двух секунд процесс осуществляет первый вызов GUI, система предоставляет процессу еще пять секунд. Если же в течение этих пяти секунд процесс отображает окно, система предоставляет процессу пять дополнительных секунд на завершение отрисовки окна. После первого вызова функции GetMessage система выключает отображение курсора независимо от того, выполняет процесс рисование или нет

START JUJNFULLSCREEN

Процесс выполняется в полноэкранном, а не в оконном режиме. Этот признак действителен только для консольных приложений, выполняемых на компьютерах с процессором  х86

START_USECOUNTCHARS

Если этот признак установлен, используются члены dwXCountChars и dwYCountChars

START_USEFILLSATTRIBUTE

Если этот признак установлен, используется член dwFillAttribute

START_USEPOSITION

Если этот признак установлен, используются члены dwX и dwY

START_USESHOWWINDOW

Если этот признак установлен, используется член  wShowWindow

START_USESIZE

Если этот признак установлен, используются члены  dwXSize и dwYSize

STARTJJSESTDHANDLES

Устанавливает стандартный входной поток, выходной поток, а также поток ошибок процесса в соответствии с дескрипторами, определенными в членах  hStdlnput, hStdOutput и hStdError структуры  STARTUPINFO. Для того чтобы этот режим работал правильно, должно быть установлено значение  TRUE параметра blnheritHandles функции CreateProcess