| |
|
|
Michael W. | là je plusieurs fois sur cette Registry-Typ gestolpert suis, habe je simple la fois deux Opportunités getestet um à den korrekten String trop gelangen.
Déclarer string s
Cls
Imprimer " ---------- ExpandEnvStr$(\q%path%\q)"
Imprimer "PATH =",ExpandEnvStr$("%path%")
Imprimer " ----- "
Imprimer "AppData =",ExpandEnvStr$("%APPDATA%")
Imprimer " ----- "
Imprimer "UserProfile =",ExpandEnvStr$("%USERPROFILE%")
Imprimer " ----- "
Imprimer "Computername =",ExpandEnvStr$("%COMPUTERNAME%")
Imprimer " ---------- GetEnvVars$()"
s = GetEnvVars$()
Imprimer s
Imprimer "Das sind", Len( s, » ), "Environment-Variablen."
Imprimer " ---------- ExpandEnvPath$(\q%APPDATA%\XProfan\Test\Test.data\q)"
Imprimer ExpandEnvPath$("%APPDATA%")
Imprimer " ---------- "
WaitKey
Fin
// interne
// Wert$ = GetEnv$(EnvVar$)
// SetEnv EnvVar$, Wert$
Proc ExpandEnvStr$
// une Registry-String des Typs REG_EXPAND_SZ enträtseln
// s = ExpandEnvStr("%path%")
// large-/Kleinschreibung qui Env-Variablen-Namen ist égal.
Paramètres string EnvStr
Déclarer mem inbuf,outbuf, int Size, string erg
Size = 32768// max.
Faible inbuf,Size
Faible outbuf,Size
String inbuf,0 = EnvStr
Externe("kernel32.dll","ExpandEnvironmentStringsA", inbuf, outbuf, Size)
erg = String$(outbuf,0)
Dispose inbuf,outbuf
Retour erg
ENDPROC
Proc GetEnvVars$
// Liefert une Komma-saparierten String
// avec allen Variablennamen des Environments zurück
// s = GetEnvVars$()
Déclarer mem buf
Déclarer long Size, EnvAdr, p, i
Déclarer string s, tmp, erg
Size = 32768// max.
Faible buf,Size
EnvAdr = Externe("kernel32.dll","GetEnvironmentStringsA")
buf = EnvAdr// Travailler mittels Bereich
Claire p, erg
s = String$(buf,p)
Tandis que Len(s) > 0
tmp = Trim$($ Substr(s,1,"="))
Cas Len(tmp) : erg = erg + » + tmp
Inc p, Len(s) + 1
s = String$(buf,p)
Endwhile
Dispose buf
Externe("kernel32.dll","FreeEnvironmentStringsA",EnvAdr)
Cas Len(erg) : erg = Del$(erg,1,1)
Retour erg
ENDPROC
// qui ici veux chez mir malheureusement pas...
Proc ExpandEnvPath$
// Ersetzt bestimmte Ordnernamen dans une vollständig qualifizierten Pfad avec ihren zugehörigen Werten.
// s = ExpandEnvPath$("%APPDATA%\XProfan\Test\Test.data")
// ALLUSERSPROFILE, APPDATA, COMPUTERNAME, ProgramFiles, SystemDrive, SystemRoot, USERPROFILE
// qui Werte existieren pas dans allen Environments. quoi pas existiert, wird simple pas traduit.
// %ALLUSERSPROFILE - qui "ALL USERS" Profilordner
// %APPDATA% - Dossier pour Anwendungsdaten des aktuellen Benutzers (Vue u höher)
// %COMPUTERNAME% - qui Systemname
// %ProgramFiles% - qui "Program Files" Dossier (Programmdateien)
// %SystemDrive% - qui System-Laufwerksbuchstabe (z.B. C:)
// %SystemRoot% - qui System-Stamm-Dossier (z.B. C:\Windows)
// %USERPROFILE% - cela aktuelle Benutzer-Profil (z.B. C:\USERS\<username>)
Paramètres string EnvPath
Déclarer mem inbuf,outbuf, int Size,Ok, string erg
Size = 32768// max.
Faible inbuf,Size
Faible outbuf,Size
String inbuf,0 = EnvPath
Ok = Externe("Shlwapi.dll","PathUnExpandEnvStringsA", inbuf, outbuf, Size)
Cas Ok : erg = String$(outbuf,0)
Dispose inbuf,outbuf
Retour erg
ENDPROC
Na s'il te plaît, allez doch (zumindest einer en)
Keywords: Environment, ExpandEnvironmentStrings |
|
|
| |
|
|