46 votos

Qué hace exactamente si hago clic en la ventana de cmd?

Supongamos que ejecutar cmd.exe y ping localhost. Después de que me ping localhost de nuevo, pero yo haga clic en la ventana y el ping se detiene hasta que pulse enter.

¿Qué sucede exactamente cuando hago clic en la ventana? Hace suspender el proceso o algo más? Os adjunto una captura de pantalla para aclarar esta cuestión.

Nota: en realidad, no tengo clic arrastre con el ratón que se crea un cuadro blanco en la ventana como se puede ver en la captura de pantalla.

Edit: aclaración: Lo que yo realmente deseo saber es si con arrastrar a la ventana, se detiene el cmd proceso o no?

Edit: aún más aclaración: sé que estoy usando la Edición Rápida y presionando la tecla enter copia el contenido que he seleccionado. Lo que no sé es lo que sucede en el fondo.

enter image description here

51voto

OGP Puntos 101

Una vez que haga clic en la ventana del Símbolo del sistema, el host de la consola ya no permitirá la salida a escribirse. La aplicación sigue funcionando, pero no se ha escrito nada en la pantalla.

Por supuesto, siempre hay un único hilo, esto es básicamente lo mismo que tener su proceso de congelado. Como el único subproceso intenta escribir algunas de salida antes de hacer más trabajo.

Si me quedo ping -t localhost y haga clic en la ventana del símbolo del sistema, entonces puede inspeccionar la pila de llamadas de la principal ping.exe hilo con Process Explorer.

enter image description here

Podemos ver que ping.exe tratado de escribir algunas de salida. Se llama write() en el C runtime library. La función que, en algún momento, las llamadas GetConsoleMode. Como parece, que la función comprueba si el usuario está actualmente en la marca de bloqueo y modo de ejecución, si es necesario.

El Análisis Adicional

Podemos prueba más de este comportamiento examinando el comportamiento de ping con Wireshark

Cuando se ejecuta ping -t superuser.com podemos ver la siguiente salida en Wireshark:
enter image description here

Ahora, vamos a marcar una casilla en el símbolo del sistema.
enter image description here
De repente, no más pings se registran en Wireshark. ping ya no envía ningún paquete.

Pero ya sabíamos que...

A la derecha, vamos a ver si la salida es en realidad el problema aquí! Vamos a dirigir la salida a la NUL dispositivo:

enter image description here

Ahora, ya no hay salida. Ahora podemos marcar el texto en el cuadro de todo el día, los paquetes se registrará en Wireshark.

enter image description here

27voto

user29281 Puntos 50

Al seleccionar un texto en el cmd.exe ventana, el proceso seguirá en el fondo hasta la próxima vez que se escribe en la Salida Estándar (o STDOUT, el flujo de datos que se muestra en la cmd.exe de la ventana).

Cuando salga del modo de selección, el proceso se reanudará con normalidad.

Usted puede probar esta escribiendo ping www.google.com -t en su cmd.exe ventana, y seleccionar un área de la salida. Usted verá que es una pausa, y cuando anule la selección de la salida de curriculum vitae.

Edit: Como por Fran comentario, puede utilizar una herramienta como Wireshark para ver que la actividad a suceder después de que el punto cuando se hizo la selección, y luego se detiene.

6voto

Eso es debido a que la ventana ha entrado en modo Marcar. Al pulsar intro, se copia el texto seleccionado al portapapeles. A mi conocimiento, no hay ningún ajuste para esto, así que no estoy seguro de por qué está haciendo eso, cuando simplemente haga clic en en la ventana. Normalmente, usted tiene que hacer clic derecho y haga clic en "Marca". Compruebe para asegurarse de que no hay ninguna tecla atascada en su teclado.

6voto

Su CMD de windows se encuentra en el modo de edición rápido que entran automáticamente en el modo de edición cuando usted haga clic en la pantalla. La Intro es para copiar el texto en la caja blanca y salir del modo de edición.

Normalmente CMD sólo entrar en modo de edición cuando se hace clic derecho sobre el negro de la pantalla y seleccione Marcar.

Para volver a la normalidad, haga clic derecho sobre la barra de título de windows y seleccione Propiedades, seleccione la ficha Opciones y desactive la opción "Modo Edición Rápida" y haga clic en aceptar.

3voto

SeanC Puntos 2635

Al momento de seleccionar el texto a copiar desde la ventana (en Mark modo) el sistema suspende el proceso actual en la ventana.

Archivo por lotes de ejemplo:

:test
echo %0
goto test

cuando se ejecuta, tan pronto como me marca el área de copia, la pantalla deja de moverse

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: