Freigeben über


NeedCurrentDirectoryForExePathA-Funktion (processenv.h)

Bestimmt, ob das aktuelle Verzeichnis im Suchpfad für die angegebene ausführbare Datei enthalten sein soll.

Syntax

BOOL NeedCurrentDirectoryForExePathA(
  [in] LPCSTR ExeName
);

Parameter

[in] ExeName

Der Name der ausführbaren Datei.

Rückgabewert

Wenn das aktuelle Verzeichnis Teil des Suchpfads sein soll, ist der Rückgabewert WAHR. Andernfalls ist der Rückgabewert FALSE.

Bemerkungen

Diese Funktion sollte nur in Instanzen aufgerufen werden, in denen der Aufrufer explizit einen relativen ausführbaren Namen in einen absoluten Namen auflösen muss. Wenn CreateProcess- mit einem relativen ausführbaren Namen aufgerufen wird, wird automatisch nach der ausführbaren Datei gesucht, und diese Funktion wird aufgerufen, um den Suchpfad zu ermitteln.

Die meisten Systemfunktionen führen daher eine eigene Pfadauflösung aus, daher sollte diese Funktion nur aufgerufen werden, wenn Sie versuchen, einen Suchpfad für die angegebene ausführbare Datei basierend auf dem aktuellen Verzeichnis aufzulösen.

Der Wert der NoDefaultCurrentDirectoryInExePath-Umgebungsvariable bestimmt den Wert, den diese Funktion zurückgibt. Sie sollten diese Funktion jedoch aufrufen, anstatt die Umgebungsvariable direkt zu überprüfen, da sich der Registrierungsspeicherort dieser Umgebungsvariable ändern kann.

Wenn der Wert des ExeName Parameter einen umgekehrten Schrägstrich (\) enthält, gibt diese Funktion immer TRUE zurück. Wenn sie keinen umgekehrten Schrägstrich enthält, wird das Vorhandensein der NoDefaultCurrentDirectoryInExePath-Umgebungsvariablen und nicht deren Wert überprüft.

Ein Beispiel für eine Instanz, wenn diese Funktion aufgerufen werden soll, anstatt auf den Standardmäßigen Algorithmus zur Auflösung des Suchpfads in CreateProcess ist die ausführbare Datei "cmd.exe". Sie ruft diese Funktion auf, um den Befehlssuchpfad zu ermitteln, da sie vor dem Aufrufen CreateProcess-eine eigene Pfadauflösung ausführt. Wenn diese Funktion WAHR zurückgibt, verwendet cmd.exe den Pfad ".;%PATH%" für die ausführbare Suche. Wenn FALSCH zurückgegeben wird, verwendet cmd.exe den Pfad "%PATH%" für die Suche.

Anmerkung

Der processenv.h-Header definiert NeedCurrentDirectoryForExePath als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- processenv.h (include Windows.h on Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

CreateProcess-

Prozess- und Threadfunktionen