Función ConsoleControl

Realiza operaciones de kernel especiales para aplicaciones de host de consola. Esto incluye la reorganización dinámica de relación jerárquica de la ventana de consola, lo que permite que la consola pase derechos de primer plano para iniciar aplicaciones del subsistema de consola y finalizar los procesos asociados.

Nota: Esta función no tiene ninguna biblioteca de importación asociada. Esta función está disponible como el recurso denominado ConsoleControl en User32.dll. Debe utilizar las funciones LoadLibrary y GetProcAddress para vincular dinámicamente a User32.dll.

Sintaxis


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
);

Parámetros

Comando [in]
Uno de los valores CONSOLECONTROL que indican qué función de control de consola se debe ejecutar.

ConsoleInformation [in]
Puntero a una de las estructuras CONSOLEENDTASK, CONSOLEWINDOWOWNER o CONSOLESETFOREGROUND que especifican datos adicionales para la función de control de consola solicitada.

ConsoleInformationLength [in]
Tamaño de la estructura a la que apunta el parámetro ConsoleInformation.

Valor devuelto

Si la función se ejecuta correctamente, se devolverá el valor STATUS_SUCCESS.

Si se produce un error en la función, el valor devuelto es un NTSTATUS que indica el motivo del error.

Comentarios

Esta función no está definida en un encabezado del SDK y el autor de la llamada debe declararla. Esta función se exporta desde user32.dll.

Cada comando espera una estructura diferente para el parámetro ConsoleInformation.

  • ConsoleNotifyConsoleApplication: espera un puntero a un CONSOLE_PROCESS_INFO
  • ConsoleSetCaretInfo: espera un puntero a un CONSOLE_CARET_INFO
  • ConsoleSetForeground: espera un puntero a un CONSOLESETFOREGROUND
  • ConsoleSetWindowOwner: espera un puntero a un CONSOLEWINDOWOWNER
  • ConsoleEndTask: espera un puntero a un CONSOLEENDTASK

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Encabezado Ninguno, consulte los comentarios.
Biblioteca Ninguno, consulte los comentarios.
Archivo DLL User32.dll