Oppure

Loading
22/08/08 18:46
c1rcu1tburn3r
Ciao a tutti ragazzi, sono nuovo e mi sono avvicinato al vb da poco tempo quindi non ho assolutamente padronanza del mezzo, diciamo che fin'ora mi sono limitato a scopiazzare qua e la sorgenti per tirarne fuori quello che mi serviva.
Ora avrei bisogno di un aiutino... ho la necessità di visualizzare in una form i valori presenti nel Task Manager riguardanti la "Memoria Fisica", quindi le voci:
Totale
Disponibile
Cache sistema
Guardando qua e la ho trovato questo link molto interessante: support.microsoft.com/kb/161151/…
Funziona ma ho un paio di problemi, il primo è che in questo sorgente non è possibile leggere anche la "cache sistema" e l'altro è che non si aggiorna, fa una lettura istantanea e stop. A me servirebbe che la lettura venisse aggiornata ogni tot, ad esempio 1 secondo...
Che direzione posso prendere? Grazie a tutti in anticipo
aaa
23/08/08 10:35
Overflow
per aggiornare le informazioni basta inserire un timer(Timer1) nel form(Form1), e inserisci il codice dell'evento load del form nell'evento timer del timer1.
Private Sub Timer1_Timer()
        Dim msg As String         ' Status information.

        'pulisce il form
        Form1.Cls
        
         Show
         MousePointer = 11   ' Hourglass.

             ' Get operating system and version.
             Dim verinfo As OSVERSIONINFO
             Dim build As String, ver_major As String, ver_minor As String
             Dim ret As Long
             verinfo.dwOSVersionInfoSize = Len(verinfo)
             ret = GetVersionEx(verinfo)
             If ret = 0 Then
                 MsgBox "Error Getting Version Information"
                 End
             End If
             Select Case verinfo.dwPlatformId
                 Case 0
                     msg = msg & "Windows 32s "
                 Case 1
                     msg = msg & "Windows 95/98 "
                 Case 2
                     msg = msg & "Windows NT "
             End Select

             ver_major = verinfo.dwMajorVersion
             ver_minor = verinfo.dwMinorVersion
             build = verinfo.dwBuildNumber
             msg = msg & ver_major & "." & ver_minor
             msg = msg & " (Build " & build & ")" & vbCrLf & vbCrLf

             ' Get CPU type and operating mode.
             Dim sysinfo As SYSTEM_INFO
             GetSystemInfo sysinfo
             msg = msg & "CPU: "
             Select Case sysinfo.dwProcessorType
                 Case PROCESSOR_INTEL_386
                     msg = msg & "Intel 386" & vbCrLf
                 Case PROCESSOR_INTEL_486
                     msg = msg & "Intel 486" & vbCrLf
                 Case PROCESSOR_INTEL_PENTIUM
                     msg = msg & "Intel Pentium" & vbCrLf
                 Case PROCESSOR_MIPS_R4000
                     msg = msg & "MIPS R4000" & vbCrLf
                 Case PROCESSOR_ALPHA_21064
                     msg = msg & "DEC Alpha 21064" & vbCrLf
                 Case Else
                     msg = msg & "(unknown)" & vbCrLf

             End Select
             msg = msg & vbCrLf
             ' Get free memory.
             Dim memsts As MEMORYSTATUS
             Dim memory As Long
             GlobalMemoryStatus memsts
             memory = memsts.dwTotalPhys
             msg = msg & "Total Physical Memory: "
             msg = msg & Format$(memory \ 1024, "###,###,###") & "K" _
                       & vbCrLf
             memory& = memsts.dwAvailPhys
             msg = msg & "Available Physical Memory: "
             msg = msg & Format$(memory \ 1024, "###,###,###") & "K" _
                       & vbCrLf
             memory& = memsts.dwTotalVirtual
             msg = msg & "Total Virtual Memory: "
             msg = msg & Format$(memory \ 1024, "###,###,###") & "K" _
                       & vbCrLf
             memory& = memsts.dwAvailVirtual
             msg = msg & "Available Virtual Memory: "
             msg = msg & Format$(memory \ 1024, "###,###,###") & "K" _
                       & vbCrLf & vbCrLf

         Print msg
         MousePointer = 0

End Sub

'evento load del form
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 1000
End Sub

per l'altro problema cercherò un po.
Ultima modifica effettuata da Overflow 23/08/08 10:35
aaa
23/08/08 14:36
c1rcu1tburn3r
Grazie mille! Non ci avevo pensato al Timer...ora funziona perfettamente, mi rimane il problema che non riesco a trovare il comando per visualizzare la quantità di memoria cache. Le da tutte meno che quella 8-|
Mi sembra strano che non ci sia un comando anche per questa voce...
aaa