Notifications
Clear all

Descobrir o caminho do Desktop do usuário via VBA

3 Posts
1 Usuários
0 Reactions
1,585 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,

Estou montando um código para salvar uma sheet como PDF no desktop do usuário, todavia precisava saber se alguém conhece/possui um código que identifica qual a pasta "setada" pelo sistema,

Eu não posso colocar como "hardcode" c:documents and settings (WINXP) por que não SEVEN por exemplo é c:users isso se for c:

Quem tiver uma luz! :mrgreen:

Grato e []s

 
Postado : 12/07/2012 8:11 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 


Poderia tentar determinar a versão do Windows... veja se ajuda...

Fonte:
http://social.msdn.microsoft.com/Forums ... 81e370e7b/

Option Explicit

Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128
End Type

Public Declare Function GetVersionExA Lib "kernel32" (lpVersionInformation As OSVERSIONINFO) As Integer

Public Function getVersion() As String

Dim osinfo As OSVERSIONINFO
Dim retvalue As Integer

osinfo.dwOSVersionInfoSize = 148
osinfo.szCSDVersion = Space$(128)
retvalue = GetVersionExA(osinfo)

getVersion = "Version is " & osinfo.dwMajorVersion & "." & osinfo.dwMinorVersion

End Function

 
Postado : 12/07/2012 8:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Descobri outra forma! ;)

Sub FindDeskTopPath()

Dim TempDesk, DeskPath As String 'variável que vai armazenar a Pasta Desktop do usuário

DeskPath = Environ("USERPROFILE")
TempDesk = DeskPath & "Desktop"
Debug.Print TempDesk

Fica a dica de usar os Environs do Windows, utilize a expressão antes do "=" entre "parênteses"

ALLUSERSPROFILE=C:ProgramData
APPDATA=C:UsersXXXXXXAppDataRoaming
CommonProgramFiles=C:Program Files (x86)Common Files
CommonProgramFiles(x86)=C:Program Files (x86)Common Files
CommonProgramW6432=C:Program FilesCommon Files
COMPUTERNAME=HOSTNAMEOFTHEMACHINE
ComSpec=C:Windowssystem32cmd.exe
DEFLOGDIR=
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=UsersXXXXXX
LOCALAPPDATA=C:UsersXXXXXXAppDataLocal
LOGONSERVER=\DOMAINCONTROLLERSERVER
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:Program Files (x86)Microsoft OfficeOffice12;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)ATI TechnologiesATI.ACECore-Static;C:Program FilesIntelDMIX;C:Program Files (x86)WinSCP;C:Program FilesTortoiseSVNbin;C:Program Files (x86)Microsoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100ToolsBinn;C:Program FilesMicrosoft SQL Server100DTSBinn;C:Program Files (x86)Microsoft SQL Server100ToolsBinnVSShellCommon7IDE;C:Program Files (x86)Microsoft Visual Studio 9.0Common7IDEPrivateAssemblies;C:Program Files (x86)Microsoft SQL Server100DTSBinn
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 23 Stepping 10, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=170a
ProgramData=C:ProgramData
ProgramFiles=C:Program Files (x86)
ProgramFiles(x86)=C:Program Files (x86)
ProgramW6432=C:Program Files
PSModulePath=C:Windowssystem32WindowsPowerShellv1.0Modules
PUBLIC=C:UsersPublic
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:Windows
TEMP=C:UsersXXXXXXAppDataLocalTemp
TMP=C:UsersXXXXXXAppDataLocalTemp
USERDNSDOMAIN=WINDOWSLOGONDOMAIN
USERDOMAIN=
USERNAME=XXXXXX
USERPROFILE=C:UsersXXXXXX
VSEDEFLOGDIR=
WecVersionForRosebud.2C8=3
windir=C:Windows

[]s

 
Postado : 12/07/2012 11:24 am