Discussione:
Sapere da VBA se il sistema operativo è 32 o 64 bit
(troppo vecchio per rispondere)
Pisinho
2012-01-29 07:04:34 UTC
Permalink
Buongiorno,
ho un problema che potrei risolvere testando la presenza o meno della
directory C:\Programmi (x86)
ma poi volendo applicare anche altre cose è meglio trovare il modo di sapere
che sistema il client sta usando se 32 o 64 bit.
Naturalmente in VBA.

Avete ualche link o routine da darmi al volo ?

Grazie a tutti e buona domenica.


__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 6835 (20120128) __________

Il messaggio è stato controllato da ESET NOD32 Antivirus.

www.nod32.it
Karl Donaubauer
2012-01-29 08:05:44 UTC
Permalink
Post by Pisinho
ho un problema che potrei risolvere testando la presenza o meno
della directory C:\Programmi (x86)
ma poi volendo applicare anche altre cose è meglio trovare il modo
di sapere che sistema il client sta usando se 32 o 64 bit.
Naturalmente in VBA.
Avete ualche link o routine da darmi al volo ?
...
Dipende della tua versione di Access/VBA segreta.
In A10/VBA7 esistono i constanti del compiler Win32 e Win64:
http://office.microsoft.com/en-us/HV080353427.aspx
--
Ciao
Karl
*********
Access FAQ: http://www.donkarl.com/it
Pisinho
2012-01-29 09:41:22 UTC
Permalink
tua versione di Access/VBA segreta.
Post by Karl Donaubauer
http://office.microsoft.com/en-us/HV080353427.aspx
Grazie Karl, uso Access 2007, se hai qualcosa...

Saluti

__________ Informazioni da ESET NOD32 Antivirus, versione del database delle firme digitali 6835 (20120128) __________

Il messaggio è stato controllato da ESET NOD32 Antivirus.

www.nod32.it
Carlo Costarella
2012-01-29 19:37:21 UTC
Permalink
Post by Pisinho
Buongiorno,
ho un problema che potrei risolvere testando la presenza o meno della
directory C:\Programmi (x86)
ma poi volendo applicare anche altre cose è meglio trovare il modo di
sapere che sistema il client sta usando se 32 o 64 bit.
Naturalmente in VBA.
Avete ualche link o routine da darmi al volo ?
Grazie a tutti e buona domenica.
Con Environ("PROCESSOR_ARCHITECTURE") puoi ottenere almeno due risultati:
x86 = 32 bit
ia64 o AMD64 = 64 bit.

Uso, esempio:
Dim TipoSistema as string
TipoSistema = Environ("PROCESSOR_ARCHITECTURE")

Ciao, Carlo
Pisinho
2012-01-30 07:55:04 UTC
Permalink
Post by Carlo Costarella
x86 = 32 bit
ia64 o AMD64 = 64 bit.
Dim TipoSistema as string
TipoSistema = Environ("PROCESSOR_ARCHITECTURE")
Ciao, Carlo
Grazie Carlo, avevo visto questa però mi dice se il Processore è a 32 o 64
bit, non il sistema operativo.

Saluti
Carlo Costarella
2012-01-30 16:38:10 UTC
Permalink
Post by Pisinho
Post by Carlo Costarella
x86 = 32 bit
ia64 o AMD64 = 64 bit.
Dim TipoSistema as string
TipoSistema = Environ("PROCESSOR_ARCHITECTURE")
Ciao, Carlo
Grazie Carlo, avevo visto questa però mi dice se il Processore è a 32 o 64
bit, non il sistema operativo.
Saluti
Environ ha molti valori restituiti.
Prova questo:
Dim SistemaOperativo as string
SistemaOperativo = Environ("OS")

Per un elenco leggi l'articolo di @Alex:
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=170

Aggiungo che possono esserci anche altre strade come l'uso delle librerie
WMI (di sistema in Windows) o un mixer tra i due sistemi.
Ho già scritto un articolo con esempio su queste librerie.
Questa un'ipotesi:

Function DammiInformazioniSulSistema()
Dim objWMI As Object
Dim QSs As Object
Dim QOS As Object

Set objWMI = GetWMIService

Set QSs = objWMI.ExecQuery("Select * from Win32_OperatingSystem")

For Each QOS In QSs
Debug.Print QOS.Caption
Debug.Print QOS.CreationClassName
Debug.Print QOS.CSCreationClassName
Debug.Print QOS.Version
Next QOS

End Function

Function GetWMIService() As Object
Dim strComputer As String

strComputer = "."

Set GetWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
End Function

Altra strada è quella di ricorrere alla API...

Ciao, Carlo

Loading...