Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El comportamiento de las funciones de consola de alto nivel se ve afectado por los modos de entrada y salida de la consola. Todos los siguientes modos de entrada de consola están habilitados para el búfer de entrada de una consola cuando se crea una consola:
- Modo de entrada de línea
- Modo de entrada procesado
- Modo de entrada de eco
Los dos modos de salida de la consola siguientes están habilitados para un búfer de pantalla de consola cuando se crea:
- Modo de salida procesado
- Ajuste en modo de salida EOL
Los tres modos de entrada, junto con el modo de salida procesado, están diseñados para trabajar juntos. Es mejor habilitar o deshabilitar todos estos modos como grupo. Cuando todos están habilitados, se dice que la aplicación está en modo "cocinado", lo que significa que la mayor parte del procesamiento se controla para la aplicación. Cuando todos están deshabilitados, la aplicación está en modo "sin procesar", lo que significa que la entrada no está filtrada y cualquier procesamiento queda a la aplicación.
Una aplicación puede usar la función GetConsoleMode para determinar el modo actual del búfer de entrada o el búfer de pantalla de una consola. Puede habilitar o deshabilitar cualquiera de estos modos mediante los siguientes valores en la función SetConsoleMode . Tenga en cuenta que establecer el modo de salida de un búfer de pantalla no afecta al modo de salida de otros búferes de pantalla.
Si el parámetro hConsoleHandle es un identificador de entrada, el modo puede ser uno o varios de los valores siguientes. Cuando se crea una consola, todos los modos de entrada excepto ENABLE_WINDOW_INPUT y ENABLE_VIRTUAL_TERMINAL_INPUT están habilitados de forma predeterminada.
| Importancia | Significado |
|---|---|
| ENABLE_ECHO_INPUT 0x0004 | Los caracteres leídos por la función ReadFile o ReadConsole se escriben en el búfer de pantalla activo a medida que se escriben en la consola. Este modo solo se puede usar si el modo ENABLE_LINE_INPUT también está habilitado. |
| ENABLE_INSERT_MODE 0x0020 | Cuando se habilita, el texto escrito en una ventana de consola se insertará en la ubicación actual del cursor y no se sobrescribirá todo el texto que sigue a esa ubicación. Cuando está deshabilitado, se sobrescribirá todo el texto siguiente. |
| ENABLE_LINE_INPUT 0x0002 | La función ReadFile o ReadConsole solo devuelve cuando se lee un carácter de retorno de carro. Si este modo está deshabilitado, las funciones devuelven cuando hay uno o varios caracteres disponibles. |
| ENABLE_MOUSE_INPUT 0x0010 | Si el puntero del mouse está dentro de los bordes de la ventana de la consola y la ventana tiene el foco del teclado, los eventos del mouse generados por el movimiento del mouse y las pulsaciones de botón se colocan en el búfer de entrada. ReadFile o ReadConsole descartan estos eventos, incluso cuando este modo está habilitado. La función ReadConsoleInput se puede usar para leer MOUSE_EVENT registros de entrada del búfer de entrada. |
| ENABLE_PROCESSED_INPUT 0x0001 | El sistema procesa CTRL+C y no se coloca en el búfer de entrada. Si readFile o ReadConsole lee el búfer de entrada, el sistema procesa otras claves de control y no se devuelven en el búfer ReadFile o ReadConsole . Si el modo de ENABLE_LINE_INPUT también está habilitado, el sistema controla los caracteres de retorno de carro, retorno de carro y avance de línea. |
| ENABLE_QUICK_EDIT_MODE 0x0040 | Esta marca permite al usuario usar el mouse para seleccionar y editar texto. Para habilitar este modo, use ENABLE_QUICK_EDIT_MODE | ENABLE_EXTENDED_FLAGS. Para deshabilitar este modo, use ENABLE_EXTENDED_FLAGS sin esta marca. |
| ENABLE_WINDOW_INPUT 0x0008 | Las interacciones del usuario que cambian el tamaño del búfer de pantalla de la consola se notifican en el búfer de entrada de la consola. Las aplicaciones pueden leer información sobre estos eventos desde el búfer de entrada mediante la función ReadConsoleInput , pero no mediante los que usan ReadFile oReadConsole. |
| ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200 | Al establecer esta marca, se dirige al motor de procesamiento de terminal virtual para convertir la entrada de usuario recibida por la ventana de la consola en Secuencias de terminal virtual de consola que se pueden recuperar mediante una aplicación auxiliar a través de las funciones ReadFile o ReadConsole . El uso típico de esta marca está pensado junto con ENABLE_VIRTUAL_TERMINAL_PROCESSING en el identificador de salida para conectarse a una aplicación que se comunica exclusivamente a través de secuencias de terminal virtual. |
Si el parámetro hConsoleHandle es un identificador de búfer de pantalla, el modo puede ser uno o varios de los valores siguientes. Cuando se crea un búfer de pantalla, ambos modos de salida están habilitados de forma predeterminada.
| Importancia | Significado |
|---|---|
| ENABLE_PROCESSED_OUTPUT 0x0001 | Los caracteres escritos por la función WriteFile o WriteConsole o eco de la función ReadFile oReadConsole se analizan para las secuencias de control ASCII y se realiza la acción correcta. Se procesan los caracteres de retroceso, tabulación, campana, retorno de carro y avance de línea. Debe habilitarse al usar secuencias de control o cuando se establece ENABLE_VIRTUAL_TERMINAL_PROCESSING . |
| ENABLE_WRAP_AT_EOL_OUTPUT 0x0002 | Al escribir con WriteFile o WriteConsole o eco con ReadFile o ReadConsole, el cursor se mueve al principio de la fila siguiente cuando llega al final de la fila actual. Esto hace que las filas mostradas en la ventana de consola se desplacen automáticamente cuando el cursor avanza más allá de la última fila de la ventana. También hace que el contenido del búfer de pantalla de la consola se desplace hacia arriba (.. /descarte la fila superior del búfer de pantalla de la consola) cuando el cursor avanza más allá de la última fila del búfer de pantalla de la consola. Si este modo está deshabilitado, el último carácter de la fila se sobrescribe con los caracteres subsiguientes. |
| ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004 | Al escribir con WriteFile o WriteConsole, los caracteres se analizan para VT100 y secuencias de caracteres de control similares que controlan el movimiento del cursor, el modo de color/fuente y otras operaciones que también se pueden realizar a través de las API de consola existentes. Para obtener más información, consulte Secuencias de terminal virtual de consola. Asegúrese de que ENABLE_PROCESSED_OUTPUT se establece al usar esta marca. |
| DISABLE_NEWLINE_AUTO_RETURN 0x0008 | Al escribir con WriteFile o WriteConsole, esto agrega un estado adicional al ajuste de un extremo de línea que puede retrasar las operaciones de desplazamiento del cursor y búfer. Normalmente, cuando se establece ENABLE_WRAP_AT_EOL_OUTPUT y el texto llega al final de la línea, el cursor se moverá inmediatamente a la línea siguiente y el contenido del búfer se desplazará hacia arriba por una línea. A diferencia de este conjunto de marcas, el cursor no se mueve a la línea siguiente y no se realiza la operación de desplazamiento. El carácter escrito se imprimirá en la posición final de la línea y el cursor permanecerá encima de este carácter como si ENABLE_WRAP_AT_EOL_OUTPUT estuviera desactivado, pero el siguiente carácter imprimible se imprimirá como si ENABLE_WRAP_AT_EOL_OUTPUT estuviera activado. No se producirá ninguna sobrescritura. En concreto, el cursor avanza rápidamente hacia abajo hasta la siguiente línea, se realiza un desplazamiento si es necesario, se imprime el carácter y el cursor avanza una posición más. El uso típico de esta marca está pensado junto con la configuración ENABLE_VIRTUAL_TERMINAL_PROCESSING para emular mejor un emulador de terminal donde escribir el carácter final en la pantalla (.). /en la esquina inferior derecha) sin desencadenar un desplazamiento inmediato es el comportamiento deseado. |
| ENABLE_LVB_GRID_WORLDWIDE 0x0010 | Las API para escribir atributos de caracteres, incluidos WriteConsoleOutput y WriteConsoleOutputAttribute permiten el uso de marcas de atributos de caracteres para ajustar el color del primer plano y el fondo del texto. Además, se especificó un intervalo de marcas DBCS con el prefijo COMMON_LVB. Históricamente, estas marcas solo funcionaban en páginas de códigos DBCS para idiomas chinos, japoneses y coreanos. Con excepción de las marcas de bytes iniciales y de bytes finales, las marcas restantes que describen el dibujo de líneas y el vídeo inverso (.. /swap foreground and background colors) puede ser útil para que otros lenguajes resalte partes de la salida. Establecer esta marca de modo de consola permitirá que estos atributos se usen en cada página de códigos de cada idioma. Está desactivado de forma predeterminada para mantener la compatibilidad con aplicaciones conocidas que históricamente han aprovechado la consola ignorando estas marcas en máquinas que no son CJK para almacenar bits en estos campos con sus propios fines o por accidente. Tenga en cuenta que el uso del modo ENABLE_VIRTUAL_TERMINAL_PROCESSING puede dar lugar a que se establezcan marcas de cuadrícula de LVB y vídeo inverso mientras esta marca sigue desactivada si la aplicación adjunta solicita la inserción o el vídeo inverso a través de secuencias de terminal virtual de consola. |