FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Obtener el valor de una variable de entorno
EDITO:Gracias a roman acabo de darme cuenta de que en delphi ya existe una función que hace lo mismo, y curiosamente se llama también GetEnvironmentVariable. Así que la siguiente función ya no tiene mucho sentido ...
Algunas variables interesantes: Código:
ALLUSERSPROFILE APPDATA COMPUTERNAME ComSpec HOMEDRIVE HOMEPATH ProgramFiles SystemDrive SystemRoot TEMP TMP USERDOMAIN USERNAME USERPROFILE windir |
#2
|
||||
|
||||
Hola Domingo Seoane, he probado tu truco y anda muy bien. Corto, sencillo y rapido. No es una critica lo que te voy a hacer, sino pedir que expliques un poquito como funciona el truco. Desde ya muchas gracias
|
#3
|
||||
|
||||
El código no es muy complejo, se limita a usar la función GetEnvironmentVariable. Esta función nos devuelve el valor de una variable de entorno, pasándole como parámetros el nombre de la variable, un buffer donde almacenar el valor y la longitud del buffer (en caracteres).
Primero llamamos a la función indicándole que la longitud del buffer es cero, de esta forma nos devuelve la longitud (en caracteres) de valor. Entonces usamos GetMem para reservar tantos bytes en memoria como longitud tiene el valor mas uno (por el carácter nulo). Entonces volvemos a llamar a la función con los parámetros correctos. Por ultimo ya solo nos queda liberar la memoria que habíamos reservado utilizando FreeMem. |
#4
|
||||
|
||||
¿No sería igual utilizar SysUtils.GetEnvironmentVariable?
|
#5
|
||||
|
||||
Jajaja, tienes toda la razón roman, estoy avergonzado. El código es la traducción, mas o menos literal, de una función de C que tenia guardada y no se me ocurrió pensar que en delphi ya existía una función con el mismo nombre que la API pero que devolvía un string.
|
|
|
|