英語で読む

次の方法で共有


ConsoleControl 関数

コンソール ホスト アプリケーションに対して特別なカーネル操作を実行します。 これには、コンソール ウィンドウの親の再指定、起動されたコンソール サブシステム アプリケーションへの前景権限の受け渡し、アタッチされたプロセスの終了が含まれます。

注: この関数には、関連付けられたインポート ライブラリはありません。 この関数は、User32.dll の ConsoleControl という名前のリソースとして使用できます。 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
);

パラメーター

Command [in]
実行する必要があるコンソール制御関数を示す CONSOLECONTROL 値の 1 つ。

ConsoleInformation [in]
要求されたコンソール制御関数の追加データを指定する CONSOLEENDTASKCONSOLEWINDOWOWNER または CONSOLESETFOREGROUND 構造体の 1 つへのポインター。

ConsoleInformationLength [in]
ConsoleInformation パラメーターが指す構造体のサイズ。

戻り値

関数が成功した場合、戻り値は STATUS_SUCCESS です。

関数が失敗した場合、戻り値は失敗の理由を示す NTSTATUS です。

解説

この関数は SDK ヘッダーでは定義されていないため、呼び出し元が宣言する必要があります。 この関数は user32.dll からエクスポートされます。

各コマンドでは、ConsoleInformation パラメーターに異なる構造体が必要です。

  • ConsoleNotifyConsoleApplication: CONSOLE_PROCESS_INFO へのポインターを予期する
  • ConsoleSetCaretInfo: CONSOLE_CARET_INFO へのポインターを予期する
  • ConsoleSetForeground: CONSOLESETFOREGROUND へのポインターを予期する
  • ConsoleSetWindowOwner: CONSOLEWINDOWOWNER へのポインターを予期する
  • ConsoleEndTask: CONSOLEENDTASK へのポインターを予期する

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
Header なし、注釈を参照
ライブラリ なし、注釈を参照
[DLL] User32.dll