FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Función GetEnvironmentVariable
Estoy intentando usar la función GetEnvironmentVariable para poder devolver a Delphi lo que se ejecuta en el CMD.EXE del SO.
Lamentablemente todos los ejemplos de como se usa esa función que andan dando vueltas por Internet no funcionan, dado que en mi caso Delphi XE3 según la ayuda del mismo no toma los mismos parametros. Como ejemplo de lo que digo dejo el siguiente mensaje de este mismo foro para que vean los parámetros que usan en todos los casos. http://clubdelphi.com/foros/showthread.php?t=80789 Si alguien me puede indicar como se puede usar esta función para hacer lo que necesito se los agradecería mucho. Además me gustaría saber cual es el motivo de que se le sacaron dos de los parámetros a la misma. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#2
|
||||
|
||||
No entiendo lo que dices, y en el enlace que has puesto dicen que funciona perfectamente
Explica exactamente qué haces, pon el código que usas (no somos adivinos), explica correctamente por qué no te funciona, copia el error te sale, etc. |
#3
|
||||
|
||||
Yo he usado el código de este hilo en W XP hasta W 7, en W8 no he tenido la oportunidad de probarlo.
Funciona de 10. El hilo que haces referencia es para obtener las variables de entorno, pero de ahí no vas a obtener el resultado de un ms-dos. Son cosas distintas. Si han quitado algo, será porque se ha modificado la API de windows,y ahí Delphi no puede hacer nada. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
||||
|
||||
elrayo76,
Cita:
El código anterior obtiene el valor de la variables de entorno de Windows en un control TListBox por medio de la función GetEnvironmentVariable y es funcional en Delphi 7, Delphi 2006 y Delphi 2010 y según entiendo también en las versiones Delphi XE* Cita:
1- En Delphi, GetEnvironmentVariable es una función de SysUtils que tiene como único parámetro un string y retorna el valor de la variable de entorno de Windows indicada. 2- En Windows, GetEnvironmentVariable es una función API que retorna el valor de una variable de entorno de Windows pero con diferentes parámetros a la función de Delphi. 3- Ambas funciones GetEnvironmentVariable (Delphi y Windows) cumplen la misma función solo que en Delphi es más directa su implementación. Te sugiero consultar estos links: Cita:
Nelson. Última edición por nlsgarcia fecha: 08-07-2013 a las 11:48:39. |
#5
|
||||
|
||||
Cita:
Yo también estoy intrigado por ver el código que mediante esa función intenta obtener lo ejecutado desde el command. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 08-07-2013 a las 13:10:11. |
#6
|
|||
|
|||
Mas alla de lo que quiero hacer con esa función, que es lo mismo que hizo el amigo Lepe, lo que me pasa es que en Delphi XE3 esa función no tiene los mismos tres parámetros como se ve en el ejemplo de Lepe. En Delphi XE3 solo tiene un parámetro que es de tipo String.
Para que puedan ver lo que digo les voy a dejar el enlace a la documentación de Embarcadero donde esta esta función. http://docwiki.embarcadero.com/Libra...onmentVariable Además como se puede ver en la documentación de Microsoft esta API tiene 3 parámetros: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx. Entonces porque cuando Embarcadero hizo la función le saco dos de esos parámetros. Si alguien me puede decir como usar esa nueva función o si tengo que bajar alguna actualización para Delphi XE3 para corregir este error se los agradecería nlsgarcia, si te fijas en los enlaces que tu mandas en tu mensaje, lo que dice Microsoft de la API y lo que esta implementado por Embarcadero para el uso de esa API no coincide para nada en los parámetros. A esto es a lo que me refiero. Yo la he usado por los códigos que saque de Internet con tres parámetros y en Delphi XE3 da error porque solo acepta uno. Si es como tu dices que funciona en delphi, ¿porque no existe código alguno en la Web con esta función y si con la que tiene los tres parámetros y que no existe en ninguna de las units de Delphi en ninguna de sus versiones desde la 7 en adelante. O es que todos usan la API y nadie dice de donde la llaman? Igualmente agradesco todo lo que han comentado porque si bien lo conosco a otro le puede ser de utilidad. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno Última edición por elrayo76 fecha: 08-07-2013 a las 15:12:15. |
#7
|
||||
|
||||
Cita:
|
#8
|
||||
|
||||
Hola.
Leyendo tu último mensaje coincido con dec sobre la causa de que no te funcione la implementación de Delphi. Desconozco si será así para Delphi XE3 por que aún no he podido adquirir una nueva versión. Pero, por si te sirve de ayuda, te pongo un trozo de código donde llamo a la función GetEnvironmentVariable de ambos modos (desde Delphi 7):
Cita:
Y comparando la dificultad en el uso de una u otra, mas bién surge preguntar por que los diseñadores de Windows no la hicieron de otro modo... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
|||
|
|||
Gracias Dec, me has dado una pista de por donde empezar a buscar para ve en que unit esta cada una de las funciones, tanto la implementada por Delphi como la de la API de Windows.
Igualmente por todos los ejemplos que aparecen en Internet la que yo quiero usar es la de la API de Windows. Esta no esta indicada en la documentación del lenguaje en que unit se encuentra y por consiguiente yo puse la unit SysUtils que es donde se encuentra la otra. Vere esto último en cuento este con la máquina donde lo quiero usar y les contare como me fue. Saludos y muchas gracias a todos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
#10
|
||||
|
||||
elrayo76,
Te comento: Cita:
Cita:
Cita:
Revisa este código: El código anterior es un ejemplo del uso de la función GetEnvironmentVariable (Unit Windows y SysUtils) haciendo la llamada explicita de esta en su unidad correspondiente (Aunque no es necesario en Delphi7, Delphi 2006 y Delphi 2010 donde funciono correctamente según lo esperado) para destacar su funcionalidad análoga y diferencia de parámetros. Para facilitar las pruebas, el ejemplo esta disponible en el siguiente link: http://terawiki.clubdelphi.com/Delph...ntVariable.rar Cita:
Te sugiero leer nuevamente el Msg #4 y probar el código del enlace sugerido, quizás ayude a aclarar un poco el tema en cuestión. Espero sea útil Nelson. |
#11
|
|||
|
|||
He podido probar la función de las dos maneras, usando la de Delphi y la de la API. Funcionaron las dos para lo que necesito.
Ahora comento que hay que tener mucho cuidado cuando se incluye la unit SysUtils porque si se quiere usar la función de la API al incluir esa unit Delphi busca la que tiene la misma unit y no utiliza la de la API.. Igualmente esto se soluciona haciendo una llamada completa a la que corresponda coomo por ejemplo sysUtils.GetEnvironmentVariable. Desde ya muchas gracias a todos por sus respuestas. Saludos, El Rayo
__________________
Si tienes una función o procedimiento con diez parámetros, probablemente hayas olvidado uno |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Función javascript que llama a otra función javascript en otra página | jandroruiz | HTML, Javascript y otros | 4 | 28-02-2013 11:38:00 |
función POS | petete2008 | Varios | 4 | 05-09-2012 16:30:27 |
Funcion | fafita | Varios | 7 | 25-01-2008 16:03:40 |
Función Last | Triton | Firebird e Interbase | 2 | 25-05-2005 17:46:50 |
La función Ord() | soul6301 | Varios | 2 | 27-06-2004 01:43:17 |
|