Newsgroup: it.comp.lang.visual-basic
Titolo: [vb6] Data creazione cartella sistema operativo windows7

Salve ho il seguente problema:
utilizzo normalmente questo script per ricavare la data di creazione della 
cartella di sistema su XP
Private Sub Command1_Click()
    Dim fso
    Dim folder
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(GetWinDir)
    DataSistema.Text = folder.DateCreated
end sub
Public Declare Function GetWindowsDirectory Lib "kernel32" Alias 
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As 
Long
Function GetWinDir() As String
    'spazio necessario a ricevere la stringa
    Const Max_Path As Long = 260
    'variabile che riceve il percorso dov'č installato Windows
    Dim windir As String
    'variabile che riceve la lunghezza della stringa di ritorno
    Dim SLength As Long
    'predispone lo spazio necessario per la stringa
    windir = Space$(Max_Path)
    'legge la directory di Windows
    SLength = GetWindowsDirectory(windir, Max_Path)
    'se non ci sono errori (SLength > 0) estrae la stringa e la assegna alla 
funzione
    If SLength > 0 Then GetWinDir = Left$(windir, SLength)
End Function
il tutto funziona da anni alla grande su XP mentre adesso su windows7 mi 
riporta la data di creazione della cartella PerfLogs (scusate l'ignoranza ma 
non so cosa č) la quale data č per altro uguale su tutte le installazioni 
windows7
Mi potete aiutare a modificare lo script cosi da farlo funzionare bene sia 
su xp che su windows7?
Grazie


Ho testato il tuo codice su Win7-64 e funziona benissimo...
Hai provato a vedere che stringa restituisce la tua funzione GetWinDir?
Bye
Raf 

 Hai provato a vedere che stringa restituisce la tua funzione GetWinDir?
Mi restituisce la data di creazione della cartella PerfLogs, 14/07/2009/ 
03:37:05.
La cosa strana che su tutti i sistemi operativi windows7 che ho avuto sotto 
mano (praticamente 6), ritornano tutti la stessa data, uno era anche a 64 
bit
L'ultimo test fatto ieri sera su un hd formattato con la riinstallazione di 
win7, porta sempre 14/07/2009 03:37:05 , mentre la data di della cartella 
windows č quella di ieri sera.
I miei dubbi sono due:
1) perche la cartella PerfLogs riporta sempre la stessa data, anche se su 
installazioni diverse.
2) perche GetWinDir restituisce la data di creazione della cartella PerfLogs 
e non di windows
 A te cosa restituisce?
Grazie per la collaborazione

 03:37:05.
?
Vuoi dire che GetWinDir ti dà già la data?
Ero convinto ti desse un percorso...
Alberto

 A te cosa restituisce?
A me restituisce "C:\WINDOWS", non la sua data... ora hai capito cosa ti ho 
chiesto?
Ciao
Raf 

 ha scritto nel messaggionews:4b98d5c2$0$1124$4faf...@reader3.news.tin.it...
la butto li
la usi come utente con accesso inibito alla cartella windows?
prova a farlo da admin e guarda se cambia!


si mi da la data 

 si mi da la data
Allora posta il codice vero, perchè quel codice lì NON PUO' dare una 
data.
Alberto

 End Function
Allora non può darti una DATA.
ERGO posta il codice vero della funzione GetWinDir.
Ciao
Raf
 


quel codice li da una data
ho cambiato il codice in questo modo
DataSistema.Text = GetWinDir & " " & folder.DateCreated
aggiugendo cosi il percorso puro
e mi ritorna c:\windows 14/07/2009 03:37:05
La cartella è lei mentre la data di creazione mi risulta di 10/03/2010 
23:11:45
:-(

Dopo dura riflessione, Ambrino ha scritto :

Tu sei un tipo strano...
Alberto

 ha scritto nel messaggio 
news:4b98f69c$0$822$4faf...@reader5.news.tin.it...

Ok.
Cos'è che ti fa affermare con certezza che 14/07/2009 03:37:05 NON è la vera 
data di creazione ma che quella giusta è ieri (ieri?).
Sei sicuro che quella che pensi essere la data di *creazione* non sia in 
realtà la data di *ultima modifica*?
Se è così, modifica il tuo programma in modo che ti mostri 
folder.DateLastModified...
Bye
Raf 

 Alberto
? 

 Raf
E' come dici tu, ho verificato la data è risulta anche quella di sistema 
creata il 14/07/2009 03:37:05, quella che vedevo io è dell'ultima modifica.
Non capisco però come mai ha quella data di creazione, dovrebbe riportare la 
data dell'installazione del sistema operativo(ieri), ho verificato anche la 
data e l'ora della macchina ed è giusta.........
impazzendo ho riformattato HD e rinstallato win7 ma ritorna sempre la stessa 
data di creazione.
Non ne riesco a venire a capo, e nei miei programmi usavo la data di 
installazione del sistema operativo come numero univoco per distinguere le 
licenze..............
Ti ringrazio per l'aiuto, magari qualche altro input è il benvenuto

 ha scritto nel messaggio 
news:4b990a72$0$1117$4faf...@reader2.news.tin.it...

Ho idea che quella data sia fissa o che dipenda da qualcosa di diverso 
dall'effettivo momento di creazione della cartella: sul mio Win7-64 è 
pressoché uguale alla tua (14/07/2009 5.20.08), ma ho installato Windows ai 
primi di ottobre su un HD vergine.
Credo che ti convenga usare qualche altro sistema per distinguere 
installazioni diverse, ad esempio potresti generere un GUID univoco al 
momento dell'installazione, oppure leggere il mac address della scheda di 
rete o il seriale dell'hard disk...
In rete dovresti trovare abbondanza di riferimenti.
Ciao
Raf 

 ?
Adesso, con calma, ti rileggi quello che ti è stato chiesto, quello che 
hai risposto, quello che hai insistito a ribadire nonostante ti fosse 
stato detto che stavi sparando a vanvera, e poi, con calma, ci 
risentiamo.
Ciao
Alberto

 Salve ho il seguente problema:
zac
Non so in windows 7(non ce l'ho!)....basta provare!
c'è una chiave di registro apposita
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\InstallDate
prova sto script
...a me funziona!
ti riporta i secondi dalle 12 am del primo gennaio 1970 (pseudo
dateserial)
Dim WshShell, TimeStamp
Set WshShell = WScript.CreateObject("WScript.Shell")
TimeStamp = WshShell.RegRead(_
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\installdate")
WScript.Echo "Install date :" & _
DateAdd("s", TimeStamp, DateSerial(1970, 1, 1))
cmq è vero......quello che ti ha detto albe ....manco calcolato eh!
Il sospetto e che tu abbia fatto un copia ed incolla ...e che tu non
sappia dove mettere le mani!
Saluti

 wrote:> Salve ho il seguente problema:
aggiungo anche....
una protezione basata su un valore nel registro....è una protezione
all'acqua di rose (e con rose vecchie aggiungo).
Se si tratta di distinguere le licenze ok....ma allora scusa ....un
file o un campo in un db non era più pratico, sicuro,veloce?
Io ho una tabella config con dentro i dati e i vari id...usando
access...si tratta di un file che segue l'applicazione!
NON usando access.....uso access lo stesso come supporto al
config(invece che un file xml ho un db di configurazione).....access è
ottimo per queste cose!
Sapessi quante variabili "clientesche" mi ha risolto!