Visual Basic - Crear archivo en el Desktop

Life is soft - evento anual de software empresarial
 
Vista:

Crear archivo en el Desktop

Publicado por Rodo (44 intervenciones) el 13/01/2005 13:49:53
Saludos mi problema es el siguiente, tengo una DLL hecha en Visual 4 ya le migre toda su funcionalidad para que trabaje en Win95, 98 , 2000 y Xp excepto un detalle , recuerdas que en Win95 y 98 el escritorio estaba en la ruta c:\windows\escritorio\ o c:\windows\desktop\ , lo que hace esta DLL es que escribe un archivo de texto ahi en esa ruta , pero el problema que tengo ahorita es para las versiones de Windows 2000 y Xp , ya que la ruta cambia a Documents and Settings\USERNAME\ , como podre obtener el Username firmado para crear la ruta o como podre escribir este archivo en el escritorio directamente, espero me puedas ayudar, gracias de antemano.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Crear archivo en el Desktop

Publicado por Benjo (679 intervenciones) el 13/01/2005 14:21:08
'La función sería esta y CSIDL determina el Folder especial a buscar
Const CSIDL_DESKTOP = &H0
Const MAX_PATH = 260
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Private Type ITEMIDLIST
mkid As SHITEMID
End Type
Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Sub Form_Load()
Me.AutoRedraw = True
Me.Print "Desktop folder: " + GetSpecialfolder(CSIDL_DESKTOP)
End Sub
Private Function GetSpecialfolder(lPath As Long) As String
Dim r As Long
Dim IDL As ITEMIDLIST
r = SHGetSpecialFolderLocation(100, lPath, IDL)
If r = NOERROR Then
Path$ = Space$(512)
r = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path$)
'Se remueve el chr$(0)
GetSpecialfolder = Left$(Path, InStr(Path, Chr$(0)) - 1)
Exit Function
End If
GetSpecialfolder = ""
End Function

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar