Share via


Función NeedCurrentDirectoryForExePathA (processenv.h)

Determina si el directorio actual debe incluirse en la ruta de búsqueda del ejecutable especificado.

Sintaxis

BOOL NeedCurrentDirectoryForExePathA(
  [in] LPCSTR ExeName
);

Parámetros

[in] ExeName

Nombre del archivo ejecutable.

Valor devuelto

Si el directorio actual debe formar parte de la ruta de acceso de búsqueda, el valor devuelto es TRUE. De lo contrario, el valor devuelto es FALSE.

Comentarios

Solo se debe llamar a esta función en instancias en las que el autor de la llamada debe resolver explícitamente un nombre ejecutable relativo en un nombre absoluto. Si se llama a CreateProcess con un nombre ejecutable relativo, buscará automáticamente el ejecutable, llamando a esta función para determinar la ruta de acceso de búsqueda.

La mayoría de las funciones del sistema realizan su propia resolución de ruta de acceso, por lo tanto, esta función solo debe llamarse si está intentando resolver una ruta de acceso de búsqueda para el ejecutable especificado basado en el directorio actual.

El valor de la variable de entorno NoDefaultCurrentDirectoryInExePath determina el valor que devuelve esta función. Sin embargo, debe llamar a esta función en lugar de comprobar la variable de entorno directamente, ya que la ubicación del Registro de esta variable de entorno puede cambiar.

Si el valor del parámetro ExeName contiene una barra diagonal inversa (\), esta función siempre devolverá TRUE. Si no contiene una barra diagonal inversa, se comprueba la existencia de la variable de entorno NoDefaultCurrentDirectoryInExePath y no su valor.

Un ejemplo de una instancia de cuando se debe llamar a esta función en lugar de confiar en el algoritmo de resolución de ruta de búsqueda predeterminado en CreateProcess es el ejecutable "cmd.exe". Llama a esta función para determinar la ruta de acceso de búsqueda de comandos porque realiza su propia resolución de ruta de acceso antes de llamar a CreateProcess. Si esta función devuelve TRUE, cmd.exe usa la ruta de acceso ".; %PATH%" para la búsqueda ejecutable. Si devuelve FALSE, cmd.exe usa la ruta de acceso "%PATH%" para la búsqueda.

Nota

El encabezado processenv.h define NeedCurrentDirectoryForExePath como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado processenv.h (incluye Windows.h en Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

CreateProcess

Funciones de proceso y subproceso