Freigeben über


Konsolenzuordnungsrichtlinie

Hinweis

Für dieses Feature ist Windows 11 24H2 (Build 26100) oder höher erforderlich.

Die meisten Anwendungen unter Windows sind entweder vom IMAGE_SUBSYSTEM_WINDOWS_GUI oder IMAGE_SUBSYSTEM_WINDOWS_CUI Typ. Das erste ist eine typische grafische, fensterierte Anwendung, während letzteres häufig als Konsolen- oder Terminalanwendung bezeichnet wird. Beim Ausführen einer als IMAGE_SUBSYSTEM_WINDOWS_CUI gekennzeichneten Anwendung wird eine Konsole zugewiesen, es sei denn, sie wird in einer vorhandenen Konsolensitzung ausgeführt. Darüber hinaus wird das Ausführen einer solchen Anwendung innerhalb einer Shell wie CMD oder PowerShell blockiert, bis die Anwendung die Ausführung abgeschlossen hat. Keines von beiden gilt für IMAGE_SUBSYSTEM_WINDOWS_GUI Anwendungen. Es wird weder eine Konsole zugewiesen noch die Ausführung innerhalb einer Shell blockiert.

Was geschieht nun, wenn Sie eine Anwendung schreiben möchten, die wie eine grafische Anwendung aussieht, wenn sie über Explorer ausgeführt wird, aber Sie können auch die Debugausgabe in die Konsole schreiben, wenn Sie in einer vorhandenen Konsolensitzung ausgeführt werden? Um dies zu erreichen, erstellen Sie Ihre Anwendung als IMAGE_SUBSYSTEM_WINDOWS_CUI eine (z. B. mit /SUBSYSTEM:CONSOLE in MSVC), und fügen Sie das folgende Anwendungsmanifest hinzu:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <application>
    <windowsSettings>
      <consoleAllocationPolicy xmlns="http://schemas.microsoft.com/SMI/2024/WindowsSettings">detached</consoleAllocationPolicy>
    </windowsSettings>
  </application>
</assembly>

Der IMAGE_SUBSYSTEM_WINDOWS_CUI Typ informiert Shells darüber, dass sie blockieren müssen, bis die Ausführung der Anwendung abgeschlossen ist, wobei das Anwendungsmanifest darüber informiert, dass das Betriebssystem die Zuweisung einer Konsole überspringen soll.

Anforderungen

   
Mindest unterstützter Client Windows 11 24H2 (Build 26100) [nur Desktop-Apps]
Unterstützter Mindestserver Windows Server 2025 (Build 26100)

Siehe auch

AllocConsoleWithOptions