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 : |