2010-03-14 13 views
10

Tenía la impresión de que al hacer doble clic en un archivo (o elegir "Abrir con" en el menú contextual), Windows simplemente llama a la aplicación con el nombre del archivo como parámetro. Algo como esto:¿Cómo funciona Windows '' Abrir con '?

C: \> App.exe file.abc

Sin embargo, acabo de hecho doble clic en un archivo de .xls y luego comprobó el PEB de la instancia de Excel que se originó. Para mi sorpresa, la línea de comando hizo no contiene el nombre del archivo como parámetro.

Eso me hizo pensar. ¿Cuál es exactamente el mecanismo que usa Windows para tener un archivo abierto por una aplicación relevante? ¿Hay una API especial que debe exponer cada aplicación que admite dicha instalación?

+6

Para quienes votan a favor del cierre, me pregunto cómo una pregunta sobre el funcionamiento interno (y esa es la palabra clave) de un sistema operativo no está relacionada con la programación. –

+3

@Frederick: si no lo está programando, entonces no está relacionado con la programación. –

+1

Pero * alguien * lo está programando, ¿verdad? –

Respuesta

6

El modo en que Windows pasa el archivo al programa varía de una aplicación a otra. Este comportamiento es controlled by the registry.

En el caso de Excel usan lo que se llama DDE para este propósito. Es por eso que no ves nada en la línea de comando.

-1

el nombre del archivo no siempre se pasa como parámetro en la real.

tiene consigo una lista de programas asociados con algún tipo de archivo específico en su registro. El sistema comprueba la extensión del archivo y luego inicia un proceso asociado con. Pero siempre lo pasa como parámetro no es verdadero. El sistema operativo tiene su propia arquitectura para llamar a un programa desde su ensamblado.

Cuestiones relacionadas