Carpeta "Mis Documentos" por defecto.

amtroyano
05 de Febrero del 2004
Hola una vez más.

Mi aplicación de control telefónica de una centralita telefónica está casi completada gracias a vuestra ayuda. Las llmadas que quedan registradas en la centralita pasan a mi aplicación y guardo esa información en ficheros, uno para cada usuario que la utilice. Todo funciona correctamente.

Ahora, lo que no se hacer es que al abrirse el cuadro de diálogo de "Guardar como ..." me salga por defecto en la carpeta "Mis Documentos". Bueno, no exactamente, si se hacerlo pero de forma estática. Es decir, en la Propiedad InitDir introduzco la ruta, pero lo que realmente quiero es lo siguiente.

Mi aplicación es para distribuirla en distintos equipos, por lo que cada uno tiene una ruta de acceso diferente a esta carpeta.

C:Documents and SettingsusuarioMis Documentos

¿Entonces, como averiguo "usuario" para cada equipo?.

Os agradezco que me ayudeis y gracias a todos los que habeis hecho que casi esté finalizada.

sdemingo
05 de Febrero del 2004
Hola,

Creo que no hay ninguna función directa que te de la ruta de Mis Documentos.

Dim fs as Object
Set fs = CreateObject("Scripting.FileSystemObject")
CarpetaTemp = fs.GetSpecialFolder(2) 'c:winntTemp
CarpetaSistema = fs.GetSpecialFolder(1) 'c:winntsystem32
CarpetaWindows = fs.GetSpecialFolder(0) 'c:winnt

Esta función solo te permite averiguar esas rutas, pero puedes intentarlo por ahí....

Otro método sería hacer una especia de 'buscar' en todas las carpetas del sistema hasta que encuentres el literal 'Mis Documentos' y quedarte con la ruta completa, pero puede llegar a ser bastante lento.

Suerte y salu2
sdemingo
http://boards.melodysoft.com/sdemingo

amtroyano
05 de Febrero del 2004
Muchas Gracias.

Estoy intentando averiguar si se puede descubrir el usuario que inicio la sesión de windows. Estoy seguro que debe haber alguna forma de saber que usuario inicio la sesión.

Una vez que se averigüe quien inicio la sesión es fácil, localizar dinámicamente la carpeta "Mis Documentos", ya que sólo será sustituir el usuario en la ruta

c:Documents and SettingsusuarioMis Documentos.

Si sabeis algo de como averiguar el usuario que inicio la sesión de windows, os agradecería vuestra ayuda una vez más.

Gracias, de todas formas probaré con el código que me has facilitado.

sdemingo
05 de Febrero del 2004
Ojo!!

Con ese método no te funcionará para win98 por ejemplo....

salu2
sdemingo

Baltasar
05 de Febrero del 2004
Prueba con esto (no sé si funciona con W98)

En un formulario vacío, pon un listbox bastante grande (enorme mejor), y este código:

Private Declare Function SHGetFolderPath Lib "shfolder" _
Alias "SHGetFolderPathA" (ByVal hwndOwner As Long, _
ByVal nFolder As Long, ByVal hToken As Long, _
ByVal dwFlags As Long, ByVal pszPath As String) As Long

Private Sub Form_Load()
Dim ruta As String
Dim a As Integer
ruta = Space(255)
For a = 0 To 255
SHGetFolderPath 0, a, 0, 0, ruta
List1.AddItem CStr(a) & " - " & ruta
Next a
End Sub

Saludos

Baltasar
05 de Febrero del 2004
Como siempre, olvidé decir algo:

si usas SHGetFolderPath 0, 5, 0, 0, ruta obtendrás la ruta de "mis documentos"

y, como no, ese código no lo he inventado yo, ha sido gracias a THE SCARMS.

Saludos de nuevo

amtroyano
05 de Febrero del 2004
Me funciona perfectamente.

Gracias a todos por vuestra colaboración, sois
geniales, tanto los que crean y desarrolan el código, como aquellos que lo publican en este foro o lo saben y lo hacen saber a los demás, sigo insistiendo como en mensajes anteriores expuestos anteriormente:

¡¡¡ SOIS UNOS MOSTROS" en la programación. Gracias.

amtroyano
05 de Febrero del 2004
Entonces, que me aconsejas.

¿Utilizo el código que me has dado?.

No me acuerdo en W98 del sistema de carpetas que lleva.

Todo esto de averiguar las carpetas no es necesario, si no un toque de elegancia, pero si veo que es mas complicado de lo normal, nada se queda como está.