Uso de variables de entorno Windows Xp en VBA

03/08/2006 - 22:01 por Cristian | Informe spam
Hola a todos:

Alguien sabe como usar las variables de entorno de windows xp en vba (y
cuales se pueden usar). la idea es que pueda determinar la ruta de la
carpeta mis documentos para el usuario actual, la ruta de instalacion de
windows y otras... desde ya gracias




Saludos, CRISTIAN

Preguntas similare

Leer las respuestas

#6 Vinchenzo vinç
08/08/2006 - 23:14 | Informe spam
"ST" <@> escribió en el mensaje news:

Hola,
te recuerdo que tu pregunta fue:

si yo deseara saber la ruta de algunas applicaciones por ejemplo del winzip y del acrobat ...



Y una cosa es "obtener la ruta de un ejecutable", y otra distinta es "abrir un fichero con su aplicación asociada".

Si deseas abrir un fichero con su aplicación asociada, tienes varias opciones.
Además de la que ya te comentó Héctor con, 'Shell', puede ser mediante "Windows Script Host Model":
'******
Public Sub AbrirFichero(ByVal strRutaFichero As String)
Dim oShell As Object
Set oShell = CreateObject("WScript.Shell")
oShell.Run strRutaFichero
Set oShell = Nothing
End Sub
'******

Otra es usando la función 'ShellExecute':
'***********
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_NORMAL As Long = 1

Public Function AbrirFichero(ByVal strRutaFichero As String) As Boolean
AbrirFichero = ShellExecute(0&, _
"Open", _
strRutaFichero, _
vbNullString, _
vbNullString, _
SW_NORMAL) > 32
End Function

'***********
If AbrirFichero("C:\kk.pdf") = False Then
'***********

Consulta los diferentes valores para los parámetros, y los códigos de error que puede devolver la función (menor de 33 indica
un error en la operación).
http://msdn.microsoft.com/library/d...xecute.asp

Otra es con 'ShellExecuteEx', pero no necesitas su operatividad, con un simple 'Shell' o 'ShellExecute' te sobra.

Habrá más opciones, la cuestión es decirse por la que puedas aprovechar sus otras funcionalidades en tu proyecto, y unificar
funcionalidad con los mínimos recursos.


probe tu codigo y funciona de maravillas,ahora el asunto es entender lo
que hace cada palabra o clave por ejemplo:
1.-Environ
2.-compsec
3.-" /c"
4.-vbHide.-esto por logica entiendo que oculta algo pero que??



1 - Devuelve la ruta asociada a una variable de entorno del sistema operativo.
2 - Devuelve la ruta del intérprete de comandos (Cmd.exe "Símbolo del sistema", emulador del MS-DOS).
3 - Es un modificador o argumento para la aplicación 'cmd.exe'. Indica que ejecute el comando especificado y finalice.
4 - Oculta la ventana "Símbolo del sistema" para que no se vea mientras ejecuta el fichero.


Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr...c.es.excel
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas
Respuesta Responder a este mensaje
#7 Vinchenzo vinç
12/08/2006 - 13:10 | Informe spam
"Vinchenzo vinç" escribió en el mensaje news:uPE7b%

Si deseas abrir un fichero con su aplicación asociada, tienes varias opciones.



Por cierto, hay equipos en los que no te funcionará la solución de Héctor, ya que en equipos como por ejemplo 'Windows 98' no
encontrarás el programa "cmd.exe". Otra forma es usar la función 'FileProtocolHandler' de la librería 'url.dll' a través del
"multi-usos" 'rundll', pasándole la ruta del fichero a ejecutar:

Shell "RunDll32.Exe Url.Dll,FileProtocolHandler " & RutaDelFichero, vbNormalFocus


Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr...c.es.excel
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas
Respuesta Responder a este mensaje
#8 Héctor Miguel
12/08/2006 - 21:35 | Informe spam
hola, chicos !

Vinchenzo vinç escribio en el mensaje ...
Por cierto, hay equipos en los que no te funcionara la solucion de Hector
ya que en equipos como por ejemplo 'Windows 98' no encontraras el programa "cmd.exe".
Otra forma es usar la funcion 'FileProtocolHandler' de la libreria 'url.dll' a traves del "multi-usos" 'rundll'
pasandole la ruta del fichero a ejecutar:
Shell "RunDll32.Exe Url.Dll,FileProtocolHandler " & RutaDelFichero, vbNormalFocus



si la necesidad incluye versiones 'previas' al windows-xp [como se menciona en el asunto de la consulta] -?-
existen ademas otras alternativas mas 'directas/sencillas/...' [p.e.]

op1: shell "start """ & RutaDelFichero & """", vbHide
op2: thisworkbook.followhyperlink RutaDelFichero

[solo por agregar dos mas a los excel...entes tips de Vinchenzo] ;)

saludos,
hector.
Respuesta Responder a este mensaje
#9 Vinchenzo vinç
19/08/2006 - 17:21 | Informe spam
Hola Héctor,

si la necesidad incluye versiones 'previas' al windows-xp [como se menciona en el asunto de la consulta] -?-



Supongo que estarás de acuerdo conmigo en que 'ST' cambió "el asunto" de la consulta ;-)
Di por supuesto que se hubiese preferido la portabilidad del código, a la economización sintáctica. 'ShellExecute' me garantiza su funcionalidad desde Windows 95, y hasta que se demuestre lo contrario, seguirá siendo soportada por Windows Vista.


existen ademas otras alternativas mas 'directas/sencillas/...' [p.e.]

op1: shell "start """ & RutaDelFichero & """", vbHide



Esta opción la descartaría, por el mero hecho que nos encontraríamos ante el mismo inconveniente que ocurría con 'cmd.exe', ahora con 'start.exe' serviría únicamente para versiones anteriores.


op2: thisworkbook.followhyperlink RutaDelFichero



Definitivamente, esta segunda opción que comentas me parece la más oportuna de todas las que hemos comentado, ya que precisamente en el grupo de Excel es más coherente una solución basada en, y aplicada por, Excel, y la función 'FollowHyperLink' la encuentro muy adecuada :-)

Saludos
( ! ) Respuestas precedentes en Google:
http://groups.google.com/group/micr...c.es.excel
( i ) Temperancia en el foro:
http://support.microsoft.com/defaul...newsreglas
Respuesta Responder a este mensaje
#10 Héctor Miguel
19/08/2006 - 22:39 | Informe spam
hola, Vinchenzo !

... 'ST' cambio "el asunto" de la consulta ;-)
... la portabilidad del codigo... 'ShellExecute'... garantiza su funcionalidad desde Windows 95
op1: shell "start """ & RutaDelFichero & """", vbHide


... la descartaria, por... el mismo inconveniente que... con 'cmd.exe'... con 'start.exe' serviria unicamente para versiones anteriores.
op2: thisworkbook.followhyperlink RutaDelFichero


... me parece... una solucion basada en, y aplicada por, Excel ...



estoy de acuerdo con tus comentarios ;)
[como que me he permitido 'pasar' a 'mi coleccion' de trucos favoritos tu propuesta del 'ShellExecute'] :D

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida