| |
|
|
|
Beschreibung:
ExpandEnvironmentStrings ersetzt in einem Textausdruck alle Umgebungsvariablen durch ihre expandierten Werte. Wenn aus der Registry Pfade ausgelesen werden, sollten diese zuerst vor der Weiterverarbeitung durch diese Funktion geschickt werden.
Deklaration:
DEF @ExpandEnvironmentStrings(3)!kernel32,ExpandEnvironmentStringsA
Parameter:
1.Parameter: Adresse eines Strings oder Bereichsvariable mit einem String, der Umgebungsvariablen enthält. 2.Parameter: Bereichsvariable, die den expandierten String aufnimmt. 3.Parameter: Größe der Bereichsvariable aus Parameter 2 in Bytes als LongInt.
Rückgabewert:
0 bei Misserfolg. Ansonsten die Anzahl der Buchstaben im Rückgabestring. Ist Parameter 2 zu klein dimensioniert, kann man so über diese Funktion auch die benötigte Größe von Parameter 2 herausfinden.
Beispiele:
KompilierenMarkierenSeparierenDEF @ExpandEnvironmentStrings(3)!kernel32,ExpandEnvironmentStringsA
Declare Fehler&,ENVErgebnis#,Button&
Declare ENVERGEBNIS$
PROC VariableErsetzenInString
Parameters ZuValidierenderText$
der interne Puffer muß das gesamte Environment abdecken können
sonst gibt es einen Fehler bezüglich der Bereichsgrenze
Dim ENVErgebnis#,261
LET ENVERGEBNIS$=
LET FEHLER&=@ExpandEnvironmentStrings(@addr(ZuValidierenderText$),ENVErgebnis#,261)
Let ENVERGEBNIS$= @String$(ENVErgebnis#,0)
Dispose ENVErgebnis#
RETURN ENVERGEBNIS$
endproc
Windowstyle 31
Windowtitle Umgebungsvariablen ersetzen
Window 0,0-640,440
Let Button&=@CreateButton(%HWND,Variable eingeben,20,300,200,30)
While 0=0
Waitinput
IF @Getfocus(Button&)
VariableErsetzenInString @input$(Umgebungsvariable eingeben:,Ersetzen,%WINDIR%)
Print @$(0)
endif
wend
|
|
|
| |
|
|