Newsgroup: it.comp.appl.access
Titolo: Funzione per sapere la versione di Sistema operativo

Buonasera a tutti.
Esiste un modo per sapere che versione di Sistema operativo è installato
da programma????
Saluti
-- 
Raffaele Alberoni
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Spiega meglio per cosa ti serve, perchè potresti usare un Exe di InnoSetap
con uno Script in Pascal.
Inno non fà solo pacchetti d'installazione, ma forse non fà al caso tuo.
Ci sono le API come ti allego sotto, ma dalle prove fatte non distingue
WinNT da Win2000 essendo realizzati con la medesima tecnologia....!
Non saprei cos'altro consigliarti...!
Ciao.
@Alex.
Private Declare Function GetVersionEx Lib "Kernel32" Alias "GetVersionExA"
(lpOSInfo As OSVERSIONINFO) As Boolean
Const VER_PLATFORM_WIN32s = 0
Const VER_PLATFORM_WIN32_WINDOWS = 1
Const VER_PLATFORM_WIN32_NT = 2
Private Type OSVERSIONINFO
   dwOSVersionInfoSize As Long
   dwMajorVersion As Long
   dwMinorVersion As Long
   dwBuildNumber As Long
   dwPlatformId As Long
   strReserved As String * 128
End Type
Function atWinver(intOSInfo%) As Variant
'***********************************************
'Purpose:  Retrieve operating system information
'Accepts: intOSInfo: which piece of information to retrieve
   '        0: Major Version
   '        1: Minor version
   '        2: Platform ID
' Returns: OS supplied Information
'***********************************************
Dim OSInfo As OSVERSIONINFO
Dim dwReturn&
Const PLAT_WINDOWS = 1
Const PLAT_WIN_NT = 2
'Set the size= to length of structure
OSInfo.dwOSVersionInfoSize = Len(OSInfo)
If GetVersionEx(OSInfo) Then
   Select Case intOSInfo
      Case 0
         atWinver = OSInfo.dwMajorVersion
      Case 1
         atWinver = OSInfo.dwMinorVersion
      Case 2
         dwReturn = OSInfo.dwPlatformId
         If dwReturn = PLAT_WINDOWS Then
             atWinver = "Windows"
         Else
             atWinver = "Windows NT"
         End If
     Case 3
         If OSInfo.dwPlatformId = PLAT_WINDOWS Then
             atWinver = OSInfo.dwBuildNumber And &HFFF
         Else
             atWinver = OSInfo.dwBuildNumber
         End If
   End Select
Else
   atWinver = 0
End If
End Function

 Non saprei cos'altro consigliarti...!
Si potrebbe anche utilizzare Environ da VBA (che leggendo le var. d'ambiente
pure non distingue tra NT e 2000).
Msgbox  Environ("OS")
Ciao: Silvio

 Ciao: Silvio
Grazie per i consigli sia a te che ad Alessandro, effettivamente dovevo
spiegare meglio quello che volevo fare.
Il mio problema nasce nel voler salvare un'esportazione in Excell da
Access e volevo salvarla sulla desktop, ma es in win XP è diverso il
percorso rispetto ad esempio win98.
Volevo appunto verificando il SO settare il percorso giusto.
Forse mi sono un po "incartato" ed esiste un sistema più semplice......


 Saluti
La posizione del profilo dell'utente corrente è salvata nella variabile
d'ambiente USERPROFILE, quindi ti basta leggerla con
Environ("USERPROFILE") e aggiungerci un "\desktop".
Namor
-- 
namor at inwind punto it


namor ha scritto:






Grazie Namor (principe del mare... giusto???) per il suggerimento, ma
avevo già letto un post di Sergio Mazza in cui proponeva questo
suggerimento, ma a me funziona con XP, ma non con Win98.
Ecco il perchè della mia richiesta.
Saluti
-- 
Raffaele Alberoni


 Saluti
Bei tempi, quelli dei cartoni animati!
Non ho un W98 per vedere le configurazioni, prova ad aprire un prompt DOS
e a elencare le variabili d'ambiente con "Set", e vedi se c'è qualcosa che
ti può essere utile. Il desktop dovrebbe essere in un percorso fisso tipo
C:\Windows\desktop, visto che non ci sono i profili utente.
Potresti prima cercare la versione di windows, e se è NT-2000 o successivi
ottenere il percorso del desktop con quel sistema, altrimenti (95-98-ME)
dovrebbe esserci una variabile che ti dà la cartella d'installazione di
windows, solitamente C:\Windows, e lì dovresti trovare il desktop.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 


 Ciao: Silvio
He...He....!
Allora lo fai apposta...!!!!
Bella questa funzioncina....
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Namor
Infatti il mio problema era quello di individuare la versione del SO
perchè poi in base a questo usavo
 Environ ("USERPROFILE") oppure Environ ("WinDir") 
.anche Environ("OS") non funziona con Win 98
Saluti
-- 
Raffaele Alberoni


 Saluti
Puoi usare Ver:
Shell ("cmd.exe /c ver > D:\vers.txt")
e leggere il file di testo risultante. Dovrebbe funzionare anche sui
windows più vecchi.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 


 windows piů vecchi.
O piů semplicemente:
  cartella = Environ ("USERPROFILE")
  if len(cartella) = 0 then cartella = Environ ("WinDir")
  cartella = cartella & "\desktop"
  .....


 Namor
Grazie Namor
Ottima soluzione... per il momento ho raggiunto il mio scopo!!!
Saluti
-- 
Raffaele Alberoni
