Функция ConsoleControl

Выполняет специальные операции ядра для консольных приложений. Это включает повторную обработку окна консоли, что позволяет консоли передавать права переднего плана на запущенные приложения подсистемы консоли и завершая присоединенные процессы.

Обратите внимание, что эта функция не связана с библиотекой импорта. Эта функция доступна в качестве ресурса с именем ConsoleControl в User32.dll. Для динамической связи с User32.dll необходимо использовать функции LoadLibrary и GetProcAddress .

Синтаксис


typedef enum _CONSOLECONTROL
{
    Reserved1,
    ConsoleNotifyConsoleApplication,
    Reserved2,
    ConsoleSetCaretInfo,
    Reserved3,
    ConsoleSetForeground,
    ConsoleSetWindowOwner,
    ConsoleEndTask,
} CONSOLECONTROL;

typedef struct _CONSOLEENDTASK
{
    HANDLE ProcessId;
    HWND hwnd;
    ULONG ConsoleEventCode;
    ULONG ConsoleFlags;
} CONSOLEENDTASK, *PCONSOLEENDTASK;

typedef struct _CONSOLEWINDOWOWNER
{
    HWND hwnd;
    ULONG ProcessId;
    ULONG ThreadId;
} CONSOLEWINDOWOWNER, *PCONSOLEWINDOWOWNER;

typedef struct _CONSOLESETFOREGROUND
{
    HANDLE hProcess;
    BOOL bForeground;
} CONSOLESETFOREGROUND, *PCONSOLESETFOREGROUND;

typedef struct _CONSOLE_PROCESS_INFO
{
    IN DWORD dwProcessID;
    IN DWORD dwFlags;
} CONSOLE_PROCESS_INFO, *PCONSOLE_PROCESS_INFO;

typedef struct _CONSOLE_CARET_INFO
{
    IN HWND hwnd;
    IN RECT rc;
} CONSOLE_CARET_INFO, *PCONSOLE_CARET_INFO;


NTSTATUS ConsoleControl(
  _In_ CONSOLECONTROL Command,
  _In_reads_bytes_(ConsoleInformationLength) PVOID ConsoleInformation,
  _In_ DWORD ConsoleInformationLength
);

Параметры

Команда [in]
Одно из значений CONSOLECONTROL , указывающее, какая функция управления консолью должна выполняться.

ConsoleInformation [in]
Указатель на одну из CONSOLEENDTASKCONSOLEWINDOWOWNERструктур или CONSOLESETFOREGROUND структур, указывающих дополнительные данные для запрошенной функции управления консолью.

ConsoleInformationLength [in]
Размер структуры, на которую указывает параметр ConsoleInformation .

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

Если функция выполнена успешно, возвращается STATUS_SUCCESSзначение.

Если функция завершается ошибкой NTSTATUS , возвращаемое значение является причиной сбоя.

Замечания

Эта функция не определена в заголовке пакета SDK и должна быть объявлена вызывающим оператором. Эта функция экспортируется из user32.dll.

Каждая команда ожидает другую структуру для ConsoleInformation параметра.

  • ConsoleNotifyConsoleApplication: ожидает указатель на объект CONSOLE_PROCESS_INFO
  • ConsoleSetCaretInfo: ожидает указатель на объект CONSOLE_CARET_INFO
  • ConsoleSetForeground: ожидает указатель на объект CONSOLESETFOREGROUND
  • ConsoleSetWindowOwner: ожидает указатель на объект CONSOLEWINDOWOWNER
  • ConsoleEndTask: ожидает указатель на объект CONSOLEENDTASK

Requirements

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Верхний колонтитул нет, см. примечания
Библиотека нет, см. примечания
DLL-библиотеки User32.dll