Funzione SetConsoleMode

Imposta la modalità di input di un buffer di input della console o la modalità di output di un buffer dello schermo della console.

Sintassi

BOOL WINAPI SetConsoleMode(
  _In_ HANDLE hConsoleHandle,
  _In_ DWORD  dwMode
);

Parametri

hConsoleHandle [in]
Handle per un buffer di input della console o per un buffer dello schermo della console. L'handle deve avere il diritto di accesso GENERIC_READ . Per altre informazioni, vedere Sicurezza dei buffer della console e diritti di accesso.

dwMode [in]
Modalità di input o output da impostare.

Se il parametro hConsoleHandle è un handle di input, la modalità può essere costituita da uno o più dei valori seguenti. Quando viene creata una console, tutte le modalità di input tranne ENABLE_WINDOW_INPUT e ENABLE_VIRTUAL_TERMINAL_INPUT sono abilitate per impostazione predefinita.

valore Significato
ENABLE_ECHO_INPUT 0x0004 I caratteri letti dalla funzione ReadFile o ReadConsole vengono scritti nel buffer dello schermo attivo durante la digitazione nella console. Questa modalità può essere utilizzata solo se è abilitata anche la modalità ENABLE_LINE_INPUT.
ENABLE_INSERT_MODE 0x0020 Quando è abilitata, il testo immesso in una finestra della console verrà inserito nella posizione corrente del cursore e tutto il testo successivo a tale posizione non verrà sovrascritto. Quando è disabilitata, tutto il testo seguente verrà sovrascritto.
ENABLE_LINE_INPUT 0x0002 La funzione ReadFile o ReadConsole restituisce un valore solo quando viene letto un carattere di ritorno a capo. Se questa modalità è disabilitata, le funzioni restituiscono un valore quando sono disponibili uno o più caratteri.
ENABLE_MOUSE_INPUT 0x0010 Se il puntatore del mouse si trova all'interno dei bordi della finestra della console e la finestra ha lo stato attivo della tastiera, gli eventi del mouse generati dal movimento del mouse e dalle pressioni dei tasti vengono inseriti nel buffer di input. Questi eventi vengono scartati da ReadFile o ReadConsole, anche quando questa modalità è abilitata. La funzione ReadConsoleInput può essere usata per leggere MOU edizione Standard_EVENT record di input dal buffer di input.
ENABLE_PROCESSED_INPUT 0x0001 CTRL+C viene elaborato dal sistema e non viene inserito nel buffer di input. Se il buffer di input viene letto da ReadFile o ReadConsole, altre chiavi di controllo vengono elaborate dal sistema e non vengono restituite nel buffer ReadFile o ReadConsole. Se è abilitata anche la modalità ENABLE_LINE_INPUT, i caratteri backspace, ritorno a capo e avanzamento riga vengono gestiti dal sistema.
ENABLE_QUICK_EDIT_MODE 0x0040 Questo flag consente all'utente di usare il mouse per selezionare e modificare il testo. Per abilitare questa modalità, usare ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS. Per disabilitare questa modalità, usare ENABLE_EXTENDED_FLAGS senza questo flag.
ENABLE_WINDOW_INPUT 0x0008 Le interazioni utente che modificano le dimensioni del buffer dello schermo della console vengono segnalate nel buffer di input della console. Le informazioni su questi eventi possono essere lette dal buffer di input dalle applicazioni che usano la funzione ReadConsoleInput, ma non da quelle che usano ReadFile o ReadConsole.
ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200 L'impostazione di questo flag indica al motore di elaborazione del terminale virtuale di convertire l'input utente ricevuto dalla finestra della console in sequenze di terminale virtuale della console che possono essere recuperate da un'applicazione di supporto tramite le funzioni ReadFile o ReadConsole.

In genere è previsto l'uso congiunto di questo flag con ENABLE_VIRTUAL_TERMINAL_PROCESSING nell'handle di output per la connessione a un'applicazione che comunica esclusivamente tramite sequenze del terminale virtuale.

Se il parametro hConsoleHandle è un handle del buffer dello schermo, la modalità può essere costituita da uno o più dei valori seguenti. Per impostazione predefinita, entrambe le modalità sono abilitate al momento della creazione di un buffer dello schermo.

valore Significato
ENABLE_PROCESSED_OUTPUT 0x0001 I caratteri scritti dalla funzione WriteFile o WriteConsole o ripetuti dalla funzione ReadFile o ReadConsole vengono analizzati per individuare sequenze di controllo ASCII e viene eseguita l'azione corretta. Vengono elaborati i caratteri backspace, tabulazione, segnale acustico di avviso, ritorno a capo e avanzamento riga. Deve essere abilitata quando si usano sequenze di controllo o quando è impostata ENABLE_VIRTUAL_TERMINAL_PROCESSING .
ENABLE_WRAP_AT_EOL_OUTPUT 0x0002 Durante la scrittura con WriteFile o WriteConsole o la ripetizione con ReadFile o ReadConsole, il cursore si sposta all'inizio della riga successiva quando raggiunge la fine della riga corrente. In questo modo, le righe visualizzate nella finestra della console scorrono automaticamente verso l'alto quando il cursore supera l'ultima riga nella finestra. Inoltre, il contenuto del buffer dello schermo della console scorre verso l'alto (../ignorando la riga superiore) quando il cursore supera l'ultima riga nel buffer dello schermo della console. Se questa modalità è disabilitata, l'ultimo carattere della riga viene sovrascritto con i caratteri successivi.
ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 Quando si scrive con WriteFile o WriteConsole, i caratteri vengono analizzati per individuare VT100 e sequenze di caratteri di controllo simili che controllano lo spostamento del cursore, la modalità colore/carattere e altre operazioni che possono essere eseguite anche tramite le API della console esistenti. Per altre informazioni, vedere Sequenze del terminale virtuale della console.
Assicurarsi che ENABLE_PROCESedizione StandardD_OUTPUT sia impostato quando si usa questo flag.
DISABLE_NEWLINE_AUTO_RETURN 0x0008 Quando si scrive con WriteFile o WriteConsole, viene aggiunto uno stato supplementare al wrapping di fine riga che può ritardare le operazioni di spostamento del cursore e scorrimento del buffer.

In genere, quando si imposta ENABLE_WRAP_AT_EOL_OUTPUT e il testo raggiunge la fine della riga, il cursore si sposta immediatamente nella riga successiva e il contenuto del buffer scorre verso l'alto di una riga. A differenza di questo flag impostato, il cursore non passa alla riga successiva e l'operazione di scorrimento non viene eseguita. Il carattere scritto verrà stampato nella posizione finale sulla riga e il cursore rimarrà al di sopra di questo carattere come se ENABLE_WRAP_AT_EOL_OUTPUT fosse disattivato, ma il successivo carattere stampabile verrà stampato come se ENABLE_WRAP_AT_EOL_OUTPUT fosse attivo. Non si verificherà alcuna sovrascrittura. In particolare, il cursore avanza rapidamente fino alla riga successiva, viene eseguito uno scorrimento, se necessario, il carattere viene stampato e il cursore avanza di una posizione.

In genere è previsto l'uso congiunto di questo flag con l'impostazione ENABLE_VIRTUAL_TERMINAL_PROCESSING per emulare meglio un emulatore di terminale quando la scrittura del carattere finale sullo schermo (../nell'angolo in basso a destra) senza attivare uno scorrimento immediato è il comportamento desiderato.
ENABLE_LVB_GRID_WORLDWIDE 0x0010 Le API per la scrittura di attributi di tipo carattere, tra cui WriteConsoleOutput e WriteConsoleOutputAttribute, consentono di usare flag dagli attributi di tipo carattere per modificare il colore in primo piano o di sfondo del testo. Inoltre, è stato specificato un intervallo di flag DBCS con il prefisso COMMON_LVB. In passato, questi flag funzionavano solo nelle tabelle codici DBCS per il cinese, il giapponese e il coreano.

Con l'eccezione dei flag di byte iniziali e finali, i flag rimanenti che descrivono il disegno di linee e l'inversione video (../inversione dei colori di primo piano e sfondo) possono essere utili per altre lingue per enfatizzare porzioni di output.

L'impostazione di questo flag della modalità della console consentirà di usare questi attributi in qualsiasi tabella codici in qualsiasi lingua.

È disattivato per impostazione predefinita per garantire la compatibilità con le applicazioni che hanno sempre utilizzato la console ignorando questi flag nei computer non CJK per archiviare bit in questi campi per scopi specifici o per errore.

Si noti che l'uso della modalità ENABLE_VIRTUAL_TERMINAL_PROCESSING può determinare l'impostazione dei flag di griglia LVB e inversione video mentre questo flag è ancora disattivato se l'applicazione collegata richiede la sottolineatura o l'inversione video tramite sequenze del terminale virtuale della console.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Osservazioni:

Una console è costituita da un buffer di input e da uno o più buffer dello schermo. La modalità di un buffer della console determina il comportamento della console durante le operazioni di input o output (I/O). Un set di costanti flag viene usato con gli handle di input e un altro set viene usato con gli handle del buffer dello schermo (output). L'impostazione delle modalità di output di un buffer dello schermo non influisce sulle modalità di output degli altri buffer dello schermo.

Le modalità ENABLE_LINE_INPUT e ENABLE_ECHO_INPUT influiscono solo sui processi che usano ReadFile o ReadConsole per leggere dal buffer di input della console. Analogamente, la modalità ENABLE_PROCESedizione StandardD_INPUT influisce principalmente sugli utenti ReadFile e ReadConsole, con la differenza che determina anche se l'input CTRL+C viene segnalato nel buffer di input (da leggere dalla funzione ReadConsoleInput) o viene passato a una funzione definita dall'applicazione.

Le modalità ENABLE_WINDOW_INPUT e ENABLE_MOUedizione Standard_INPUT determinano se le interazioni dell'utente che coinvolgono il ridimensionamento delle finestre e le azioni del mouse vengono segnalate nel buffer di input o eliminate. Questi eventi possono essere letti dalla funzione ReadConsoleInput ma vengono sempre filtrati dalle funzioni ReadFile e ReadConsole.

Le modalità ENABLE_PROCESedizione StandardD_OUTPUT e ENABLE_WRAP_AT_EOL_OUTPUT influiscono solo sui processi che usano ReadFile o ReadConsole e WriteFile o WriteConsole.

Per determinare la modalità corrente di un buffer di input della console o di un buffer dello schermo, usare la funzione GetConsoleMode.

Esempi

Un esempio è disponibile in Lettura di eventi del buffer di input.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Intestazione ConsoleApi.h (tramite WinCon.h, con Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedi anche

Funzioni della console

Modalità della console

GetConsoleMode

HandlerRoutine

ReadConsole

ReadConsoleInput

ReadFile

WriteConsole

WriteFile