Infosystem




Type MEMORYSTATUS
dwLength As Long
dwMemoryLoad As Long
dwTotalPhys As Long
dwAvailPhys As Long
dwTotalPageFile As Long
dwAvailPageFile As Long
dwTotalVirtual As Long
dwAvailVirtual As Long
End Type

Dim MemStatus As MEMORYSTATUS

GlobalMemoryStatus MemStatus
InstRAM = MemStatus.dwTotalPhys / 1048576

'Se invece si desidera avere informazioni su un hard disk si

'puo' chiamare la funzione GetDiskFreeSpace delle API nel

'seguente modo :


Dim SectorXCluster as Long
Dim ByteXSector As Long
Dim FreeCluster As Long
Dim TotalCluster As Long
Dim FreeSpace As Long

GetDiskFreeSpace "C:" SectorXCluster, ByteXSector, _
FreeCluster, TotalCluster

'Lo spazio libero in MB e' dato dalla formula :

FreeSpace = (FreeCluster * SectorXCluster * ByteXSector) / 1048576

'Ulteriori caratteristiche su un hard disk si possono avare

'chiamando la funzione GetVolumeInformation delle API.

'Si possono ricavare il nome del volume, il numero seriale,

'la massima lunghezza per un nome di file, il tipo di file

'system e il nome del file system :

Dim volName As String
Dim volSerialNumber As Long
Dim volMaxName As Long
Dim volFlag As Long
Dim volSysName As String

volName = String(200, 0)
volSysName = String(200, 0)
GetVolumeInformation "c:\", volName, Len(volName), _
volSerialNumber, volMaxName, volFlag, volSysName, _
Len(volSysName)

'Richiamando la funzione GetDriveType delle API si possono

'avere informazioni sul tipo di unita' (disco rigido, floppy,

'disco remoto, disco RAM o CD-ROM):

Dim t As Long
t = GetDriveType("C:\")
MsgBox "Drive C: Type " & Choose(t + 1, "Unknow", "Invalid", _
"Floppy", "Hard-Disk", "Network", "CD-ROM","RAM Disk")

'La funzione delle API per ricavare le caratteristiche del

'proprio computer si chiama GetSystemInfo che ritorna il

'risultato attraverso i campi della struttura SYSTEM_INFO

'indicando :

'* il tipo di processore (dwProcessorType)

'* la sua architettura (dwProcessoreArchittetture)

'* la dimensione di una pagina (dwPageSize)

'* il numero di processori (dwNumberOfProcessors)

'Per ricavare la versione del sistema operativo su cui gira la

'nostra applicazione si chiama GetVersionEx delle API che

'richiede la struttura OSVERSIONINFO e in cui sono memorizzate

'informazioni come la versione minore (minor) e la versione

'maggiore (major) ed il tipo di piattaforma (Win32s, Win95 e

'Win NT).

'Se si desidera conoscere il nome assegnato al computer in fase

'di installazione e' sufficiente scrivere :

Dim cpNome As String
cpNome = String(100,0)
GetComputerName cpNome, Len(cpNome)
Spesso e' necessario controllare costantemente la memoria
virtuale disponibile prima di una operazione, oppure spesso
un'applicazione per poter funzionare ha bisogno di una quantita'
di memoria minima. La funzione GlobalMemoryStatus delle API
fornisce lo stato della memoria attraverso la struttura
MEMORYSTATUS i cui campi indicano :

* percentuale di memoria utilizzata in un determinato istante
(dwMemoryLoad)
* numero totale di byte di memoria fisica installata
(dwTotalPhys)
* numero totale di byte di memoria fisica disponibile
(dwAvailPhys)
* dimensione massima in byte che puo' assumere il file di paginazione
(dwTotalPageFile)
* numero di byte disponibili nel file di paginazione
(dwAvailPageFile)
* numero totale di byte allocabili nel proprio spazio per indirizzi
(dqAvailVirtual)

L'esempio permette di sapere i MB di RAM installata :










( infosystem.html )- by Paolo Puglisi - Modifica del 17/12/2023