Fonction ConsoleControl

Effectue des opérations de noyau spéciales pour les applications hôtes de console. Cela inclut le reparentage de la fenêtre de console, ce qui permet à la console de transférer les droits de premier plan sur les applications du sous-système de console lancées et de terminer les processus attachés.

Remarque : cette fonction n’a aucune bibliothèque d’importation associée. Cette fonction est disponible en tant que ressource nommée ConsoleControl dans User32.dll. Vous devez utiliser les fonctions LoadLibrary et GetProcAddress pour établir un lien dynamique avec User32.dll.

Syntaxe


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

Paramètres

Command [entrée]
Une des valeurs CONSOLECONTROL indiquant la fonction de contrôle de console à exécuter.

ConsoleInformation [entrée]
Un pointeur vers l’une des structures CONSOLEENDTASK, CONSOLEWINDOWOWNER, ou CONSOLESETFOREGROUND spécifiant des données supplémentaires pour la fonction de contrôle de la console demandée.

ConsoleInformationLength [entrée]
La taille de la structure pointée par le paramètre ConsoleInformation.

Valeur renvoyée

Si la fonction aboutit, la valeur renvoyée est STATUS_SUCCESS.

Si la fonction échoue, la valeur renvoyée est NTSTATUS, indiquant la raison de l’échec.

Notes

Cette fonction n’est pas définie dans un en-tête du Kit de développement logiciel (SDK) et doit être déclarée par l’appelant. Cette fonction est exportée à partir de user32.dll.

Chaque commande attend un struct différent pour le paramètre ConsoleInformation.

  • ConsoleNotifyConsoleApplication : attend un pointeur vers un(e) CONSOLE_PROCESS_INFO
  • ConsoleSetCaretInfo : attend un pointeur vers un(e) CONSOLE_CARET_INFO
  • ConsoleSetForeground : attend un pointeur vers un(e) CONSOLESETFOREGROUND
  • ConsoleSetWindowOwner : attend un pointeur vers un(e) CONSOLEWINDOWOWNER
  • ConsoleEndTask : attend un pointeur vers un(e) CONSOLEENDTASK

Spécifications

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête aucun, consulter les remarques
Bibliothèque aucun, consulter les remarques
DLL User32.dll