Oppure

Loading
13/02/23 15:04
nonnic
Come faccio a trovare il percorso di una cartella predefinita di windows? per ex. download, documenti ecc..
Monnic
13/02/23 15:22
nessuno
Puoi usare la funzione Environ (per quelle che sono impostate nell'ambiente) oppure la API

SHGetSpecialFolderPathA
learn.microsoft.com/en-us/windows/win32/api/shlobj_core/…

indicando uno tra i codici di questa lista

learn.microsoft.com/en-us/windows/win32/shell/…

Ad esempio, con il primo metodo, partendo da

Environ("USERPROFILE";)

puoi concatenare "\Desktop" per il desktop, oppure "\Documenti", oppure "\Download"

Un altro modo è usare la libreria "WScript.Shell" e il metodo SpecialFolders

Set oWSHShell = CreateObject("WScript.Shell")
GetDesktop = oWSHShell.SpecialFolders("Desktop")


L'ultimo modo funziona solo con le cartelle

AllUsersDesktop
AllUsersStartMenu
AllUsersPrograms
AllUsersStartup
Desktop
Favorites
Fonts
MyDocuments
NetHood
PrintHood
Programs
Recent
SendTo
StartMenu
Startup
Templates

Per tutto il resto c'è Google ...



Ultima modifica effettuata da nessuno 13/02/23 15:30
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
14/02/23 10:32
nonnic
grazie della tempestività,.
ho provato l'esempio dell'help di VB6
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Esempio di funzione Environ
In questo esempio la funzione Environ viene utilizzata per fornire il numero di voce e la lunghezza dell'istruzione PATH contenuta nella tabella delle stringhe di ambiente.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim EnvString, Indx, Msg, PathLen   ' Dichiara le variabili.
Indx = 1   ' Inizializza l'indice su 1.
Do
   EnvString = Environ(Indx)   ' Legge la variabile di
            ' ambiente.
   If Left(EnvString, 5) = "PATH=" Then   ' Verifica la voce PATH.
      PathLen = Len(Environ("PATH"))   ' Legge la lunghezza.
      Msg = "Voce PATH = " & Indx & " e lunghezza = " & PathLen
      Exit Do
   Else
      Indx = Indx + 1   ' La voce PATH non esiste
   End If   ' perciò incrementa.
Loop Until EnvString = ""
If PathLen > 0 Then
   MsgBox Msg   ' Visualizza il messaggio.
Else
   MsgBox "Non esiste alcuna variabile di ambiente PATH."
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


Thejuster Edit:
Usa il tag code cortesemente.

ma non sono venuto capo a niente, il resto purtroppo per me troppo tecnico, ma questo non può essere addebitato a te.
Ultima modifica effettuata da Thejuster 14/02/23 15:02
Monnic
14/02/23 14:22
Carlo
Hai la lunghezza della stringa path perché quella chiedi che sia stampata con & PathLen. La stringa Path si trova in: EnvString

con questo codice puoi vedere tutte la variabili d'ambiente.
Dim EnvString, Indx, Msg, PathLen   ' Dichiara le variabili.
Indx = 1   ' Inizializza l'indice su 1.

Do
   EnvString = Environ(Indx)  ' Legge le variabili di ambiente.
   Debug.Print ("Variabile ambiente N." & Indx & "  " & EnvString)
   Indx = Indx + 1 
Loop Until EnvString = ""


per leggere nello specifico il percorso della cartella Documenti e Desktop dell'utente:
forum.html.it/forum/…
Ultima modifica effettuata da Carlo 14/02/23 20:42
in programmazione tutto è permesso
14/02/23 17:51
nessuno
Ma scusa, queste due righe che ti avevo proposto

Set oWSHShell = CreateObject("WScript.Shell")
GetDesktop = oWSHShell.SpecialFolders( Desktop")


le hai provate?
Ultima modifica effettuata da nessuno 14/02/23 17:53
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
15/02/23 15:10
Carlo
@nessuno
Postato originariamente da nessuno:

Ma scusa, queste due righe che ti avevo proposto

Set oWSHShell = CreateObject("WScript.Shell")
GetDesktop = oWSHShell.SpecialFolders( Desktop")



le hai provate?


Le due righe sono piene di caratteri spurii da copia e incolla. Quelle che hai postato il 13 feb invece sono senza errori:
Set oWSHShell = CreateObject("WScript.Shell") 
GetDesktop = oWSHShell.SpecialFolders("Desktop") 
Ultima modifica effettuata da Carlo 15/02/23 15:13
in programmazione tutto è permesso
15/02/23 15:55
nessuno
Sì, questo fatto grazie all'editor di questo forum che combina questi pasticci quando si va in modifica.

E' veramente insopportabile ed è sempre stato così ... anche se è stato fatto notare più volte.

Si dovrebbe pensare ad aggiornare il prodotto installato, questo è preistorico.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.