FileSelectFolder

Zeigt ein Standard-Dialogfenster an, mit dem der Benutzer einen Ordner auswählen kann.

FileSelectFolder, AusgabeVar , Startordner, Optionen, Anzeigetext

Parameter

AusgabeVar

Name der Variable, in der der ausgewählte Ordner gespeichert werden soll. Diese Variable wird leer gemacht, wenn der Benutzer das Dialogfenster abbricht (bzw. keinen Ordner auswählen möchte). Wenn der Benutzer ein Root-Verzeichnis auswählt (z. B. C:\), endet der Wert in AusgabeVar mit einem umgekehrten Schrägstrich. Falls das unerwünscht ist, kann der Schrägstrich wie folgt entfernt werden:

FileSelectFolder, Ordner
Ordner := RegExReplace(Ordner, "\\$")  ; Entfernt den umgekehrten Schrägstrich am Ende, falls vorhanden.
Startordner

Wenn dieser Parameter fehlt oder leer ist, beginnt die Navigation standardmäßig beim Benutzerordner "Eigene Dokumente" (oder eventuell Arbeitsplatz/Computer). Ein CLSID-Ordner wie ::{20d04fe0-3aea-1069-a2d8-08002b30309d} (Arbeitsplatz/Computer) kann angegeben werden, um die Navigation bei einem bestimmten Spezialordner zu beginnen.

Ansonsten wird dieser Parameter hauptsächlich genutzt, um ein Sternchen einzufügen und direkt danach den absoluten Pfadnamen des Laufwerks oder Ordners anzugeben, der zu Beginn ausgewählt sein soll. Zum Beispiel würde *C:\ bewirken, dass das C-Laufwerk zu Beginn ausgewählt ist. *C:\Mein Ordner würde bewirken, das genau dieser Ordner zu Beginn ausgewählt ist.

Das Sternchen kennzeichnet, dass der Benutzer vom Startordner aus nach oben (Richtung Root-Verzeichnis) navigieren darf. Ohne Sternchen wäre der Benutzer gezwungen, einen Ordner innerhalb von Startordner (oder Startordner selbst) auszuwählen. Lässt man das Sternchen weg, hat das zum Beispiel den Vorteil, dass der Verzeichnisbaum von Startordner zu Beginn aufgeklappt ist, was dem Benutzer das Klicken auf das erste Pluszeichen erspart.

Wenn das Sternchen vorhanden ist, kann die Aufwärtsnavigation optional auf einen anderen Ordner als den Desktop beschränkt werden. Hierzu setzt man vor dem Sternchen den absoluten Pfad des obersten Ordners, gefolgt von genau einem Leerzeichen oder Tabulator. Im folgenden Beispiel darf der Benutzer nicht höher als C:\Mein Ordner navigieren (das Startverzeichnis selbst wäre aber C:\Mein Ordner\Projekte):
C:\Mein Ordner *C:\Mein Ordner\Projekte

Optionen

Eine der folgenden Zahlen:

0: Deaktiviert alle unteren Optionen (außer in Windows 2000, wo die Schaltfläche "Neuer Ordner" trotzdem erscheinen könnte).

1 (Standard): Stellt eine Schaltfläche zur Verfügung, die der Benutzer drücken kann, um neue Ordner zu erstellen.

Addieren Sie 2 zu der oberen Zahl, um ein Eingabefeld zur Verfügung zu stellen, wo der Benutzer den Namen eines Ordners eintragen kann. Gibt man zum Beispiel für diesen Parameter eine 3 an, wird sowohl ein Eingabefeld als auch die Schaltfläche "Neuer Ordner" zur Verfügung gestellt.

Addieren Sie 4 zu der oberen Zahl, um die BIF_NEWDIALOGSTYLE-Eigenschaft zu entfernen. Dadurch wird sichergestellt, dass FileSelectFolder auch in einer vorinstallierten Umgebung wie WinPE oder BartPE funktioniert, aber verhindert, zumindest unter Windows XP, dass die Schaltfläche "Neuer Ordner" vorhanden ist. ["4" benötigt v1.0.48+]

Wenn der Benutzer den Namen eines ungültigen Ordners in das Eingabefeld einträgt, wird AusgabeVar auf einen Wert gesetzt, der nicht den eingetragenen Text, sondern den im Navigationsbereich ausgewählten Ordner repräsentiert, zumindest unter Windows XP.

Dieser Parameter kann ein Ausdruck sein.

Anzeigetext

Ein im Fenster angezeigter Text, der dem Benutzer mitteilt, was zu tun ist. Fehlt dieser Parameter oder ist er leer, wird standardmäßig "Select Folder - %A_ScriptName%" (der Name des aktuellen Skripts) angezeigt.

ErrorLevel

[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird auf 1 gesetzt, wenn der Benutzer das Dialogfenster geschlossen hat, ohne einen Ordner ausgewählt zu haben (z. B. durch Drücken der Schaltfläche "Abbrechen"), oder wenn das Betriebssystem sich weigert, das Dialogfenster anzuzeigen (selten). Ansonsten wird es auf 0 gesetzt.

Bemerkungen

Ein typisches Ordnerauswahlfenster sieht wie folgt aus:

FileSelectFolder

Ein GUI-Fenster kann via Gui +OwnDialogs ein modales Ordnerauswahlfenster anzeigen. Ein modales Dialogfenster verhindert, während es angezeigt wird, dass der Benutzer mit dem GUI-Fenster interagieren kann.

Bekannte Einschränkung: Startet man ein Timer, während ein Ordnerauswahlfenster angezeigt wird, werden alle darin durchgeführten Aktionen, die der Benutzer versucht auszulösen, bis zum Ende des Timers hinausgezögert. Um das zu umgehen, verzichtet man entweder auf Timer mit komplexen Subroutinen, die eine lange Zeit in Anspruch nehmen, oder man deaktiviert alle Timer, während das Dialogfenster angezeigt wird:

Thread, NoTimers
FileSelectFolder, AusgabeVar,, 3
Thread, NoTimers, false

Siehe auch

FileSelectFile, MsgBox, InputBox, ToolTip, GUI, CLSID-Liste, FileCopyDir, FileMoveDir, SplitPath

Das Betriebssystem bietet zudem Standard-Dialogfenster an, die der Benutzer zum Auswählen einer Farbe, einer Schriftart oder eines Symbols verwenden kann. Solche Dialogfenster können via DllCall() angezeigt werden, wie auf GitHub gezeigt.

Beispiel

FileSelectFolder, AusgabeVar, , 3
if AusgabeVar =
    MsgBox, Keinen Ordner ausgewählt.
else
    MsgBox, Ordner "%AusgabeVar%" ausgewählt.

; CLSID-Beispiel:
FileSelectFolder, AusgabeVar, ::{20d04fe0-3aea-1069-a2d8-08002b30309d}  ; Arbeitsplatz/Computer