Прочитать на английском

Поделиться через


Функция 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