Hallo,
in AutoIT gibt es doch diese schönen Macro's, welche mit @... anfangen.
Gibt es anstatt
[autoit]$var_system_drive = EnvGet("SystemDrive")
[/autoit]auch ein Macro ? Oder kann man sich selbst so ein Macro bauen ? Wenn ja wie ?
Gruss Hassan
Hallo,
in AutoIT gibt es doch diese schönen Macro's, welche mit @... anfangen.
Gibt es anstatt
[autoit]$var_system_drive = EnvGet("SystemDrive")
[/autoit]auch ein Macro ? Oder kann man sich selbst so ein Macro bauen ? Wenn ja wie ?
Gruss Hassan
Haste >>hier<< geschaut?
$var_system_drive = StringLeft(@WindowsDir, 2)
[/autoit]Ja, aber es gibt nur
Zitat@SystemDir
Von daher werde ich wohl bei meiner Lösung bleiben
MsgBox(0, "", @HomeDrive)
[/autoit]Ja eben das meinte ich ja mit meinem Hinweis.
Die komplette Liste der Makros liegt dir vor - dort findet sich nicht das was du suchst.
Da hat sich die Frage ja schon geklärt.
i2c
HomeDrive != SystemDrive (das Benutzerverzeichnis kann auf andere Partitionen ausgelagert werden)
Ja Homedrive geht nicht, das zeigt sehr oft auf ein Homelaufwerk im Netz.
Trotzdem nochmals die Frage: Kann ich selbst so @... Macros erzeugen, oder sind die in AutoIT hardcoded ?
Gruss Hassan
Makros unterscheiden sich von Variablen dadurch dass Variablen einen festen Wert haben.
Makros lesen ihren Wert erst beim Aufruf aus. (@HomeDrive liest dann z.B. %HOMEDRIVE% aus und nimmt diesen Wert an).
Wenn sich der Wert nicht ändert dann nimm doch einfach eine Variable (als Konstante deklariert)
Ob dann nun ein @ davor steht oder ein $ macht dann keinen Unterschied:
Global Const $SYSTEM_DRIVE = EnvGet("SYSTEMDRIVE")
MsgBox(0,"", $SYSTEM_DRIVE)
Wenn sich der Wert allerdings während des Ausführens ändert dann nimm eine Funktion und lass diesen Wert als Rückgabewert zurückgeben:
MsgBox(0, "", SYSTEM_DRIVE())
[/autoit][autoit][/autoit][autoit]Func SYSTEM_DRIVE()
Return EnvGet("SYSTEMDRIVE")
EndFunc