none
Ricavare informazioni hw sulla RAM installata

    Domanda

  • ok, e come faccio a rilevare tipo, se la ram è di tipo SDRAM - DDR - DDR2 - DDR3

    Installata in Single Channel - Dual Channel - Triple Channel

    Marca e Modello della RAM (Se disponibile nel Chip di essa)

    sabato 23 ottobre 2010 15:32

Risposte

  • Ciao Grabiele97,

    il codice che recupera le informazioni che ti interessanto tramite WMI è questo :

    Imports System.Management
    Public Class Form1
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory")
      For Each share In searcher.Get
       For Each nProperty In share.Properties
        If Not nProperty.Value Is Nothing Then
         ListBox1.Items.Add(nProperty.Name & "=" & nProperty.Value.ToString())
        End If
       Next
      Next
    
     End Sub
    End Class
    
    --------------------------------------------------------------------------------
    
    

    per il significato di ogni singolo valore restituito e per farne una adeguata trscodifica poi leggerti questo documento :

    Win32_PhysicalMemory Class

    i dati che ottieni di ritorno sono :

    Class properties:
    Win32_PhysicalMemory.BankLabel
    Win32_PhysicalMemory.Capacity
    Win32_PhysicalMemory.Caption
    Win32_PhysicalMemory.CreationClassName
    Win32_PhysicalMemory.DataWidth
    Win32_PhysicalMemory.Description
    Win32_PhysicalMemory.DeviceLocator
    Win32_PhysicalMemory.FormFactor
    Win32_PhysicalMemory.HotSwappable
    Win32_PhysicalMemory.InstallDate
    Win32_PhysicalMemory.InterleaveDataDepth
    Win32_PhysicalMemory.InterleavePosition
    Win32_PhysicalMemory.Manufacturer
    Win32_PhysicalMemory.MemoryType
    Win32_PhysicalMemory.Model
    Win32_PhysicalMemory.Name
    Win32_PhysicalMemory.OtherIdentifyingInfo
    Win32_PhysicalMemory.PartNumber
    Win32_PhysicalMemory.PositionInRow
    Win32_PhysicalMemory.PoweredOn
    Win32_PhysicalMemory.Removable
    Win32_PhysicalMemory.Replaceable
    Win32_PhysicalMemory.SerialNumber
    Win32_PhysicalMemory.SKU
    Win32_PhysicalMemory.Speed
    Win32_PhysicalMemory.Status
    Win32_PhysicalMemory.Tag
    Win32_PhysicalMemory.TotalWidth
    Win32_PhysicalMemory.TypeDetail
    Win32_PhysicalMemory.Version
    

    Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    domenica 24 ottobre 2010 17:56

Tutte le risposte

  • Premesso che non ti so dire con esattezza se è possibile fare quello che richiedi, e che comunque ti conviene utilizzare la WMI (Windows Management Instrumentation) che ti invito a cercare nella MSDN Library, è buona pratica aprire un thread separato per successive domande completamente diverse da quelle del titolo del thread.

    Grazie.


    Alessandro Del Sole
    Microsoft MVP - Visual Basic: development
    http://community.visual-basic.it/alessandro/
    domenica 24 ottobre 2010 14:47
  • Ciao Grabiele97,

    il codice che recupera le informazioni che ti interessanto tramite WMI è questo :

    Imports System.Management
    Public Class Form1
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      Dim searcher As New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMemory")
      For Each share In searcher.Get
       For Each nProperty In share.Properties
        If Not nProperty.Value Is Nothing Then
         ListBox1.Items.Add(nProperty.Name & "=" & nProperty.Value.ToString())
        End If
       Next
      Next
    
     End Sub
    End Class
    
    --------------------------------------------------------------------------------
    
    

    per il significato di ogni singolo valore restituito e per farne una adeguata trscodifica poi leggerti questo documento :

    Win32_PhysicalMemory Class

    i dati che ottieni di ritorno sono :

    Class properties:
    Win32_PhysicalMemory.BankLabel
    Win32_PhysicalMemory.Capacity
    Win32_PhysicalMemory.Caption
    Win32_PhysicalMemory.CreationClassName
    Win32_PhysicalMemory.DataWidth
    Win32_PhysicalMemory.Description
    Win32_PhysicalMemory.DeviceLocator
    Win32_PhysicalMemory.FormFactor
    Win32_PhysicalMemory.HotSwappable
    Win32_PhysicalMemory.InstallDate
    Win32_PhysicalMemory.InterleaveDataDepth
    Win32_PhysicalMemory.InterleavePosition
    Win32_PhysicalMemory.Manufacturer
    Win32_PhysicalMemory.MemoryType
    Win32_PhysicalMemory.Model
    Win32_PhysicalMemory.Name
    Win32_PhysicalMemory.OtherIdentifyingInfo
    Win32_PhysicalMemory.PartNumber
    Win32_PhysicalMemory.PositionInRow
    Win32_PhysicalMemory.PoweredOn
    Win32_PhysicalMemory.Removable
    Win32_PhysicalMemory.Replaceable
    Win32_PhysicalMemory.SerialNumber
    Win32_PhysicalMemory.SKU
    Win32_PhysicalMemory.Speed
    Win32_PhysicalMemory.Status
    Win32_PhysicalMemory.Tag
    Win32_PhysicalMemory.TotalWidth
    Win32_PhysicalMemory.TypeDetail
    Win32_PhysicalMemory.Version
    

    Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    domenica 24 ottobre 2010 17:56
  • Ciao Gabriele,

    faccio qui una parantesi per ricordarti per la seconda volta che nella discussione proprietà per componente nel forum Microsoft Visual Basic Forum ti è stato chiesto un riscontro sulle risposte fornite. Ti faccio presente che lasciare le domande "in sospeso" non è una buona prattica e non da ad un ulteriore utente che legge il thread in causa la certezza che le risposte funzionano. Questo aspetto è ben descritto e menzionato nel insieme di Regole e Aspetti generali all'uso dei forum MSDN .

    Potresti per cortesia rivedere il caso?

    Grazie per la collaborazione.

    Saluti, Daniel.


    Questo contenuto è distribuito “as is” e non implica alcuna responsabilità da parte di Microsoft. L'azienda offre questo servizio gratuitamente, allo scopo di aiutare gli utenti e farli aumentare la conoscenza sui prodotti e le tecnologie Microsoft.
    lunedì 25 ottobre 2010 17:04
  • salve,

    innanzi tutto mi scuso per aver lasciato in sospeso un thread ... ma ho visto che non mi rispondevate più, allora me lo sono dimenticato di guardare. ritornando a noi, io non ho le WMI installate sul mio PC. mi potreste gentilmente dire come installarle? Grazie,

    martedì 26 ottobre 2010 19:57
  • ritornando a noi, io non ho le WMI installate sul mio PC. mi potreste gentilmente dire come installarle? Grazie,

    Ciao Gabriele97,

    che sistema operativo hai ?

    Se non vado errato  WMI è installato di default dal sistema operativo da Windows2000 in avanti ...

    per giocare con WMi ti consiglio questo tool che ti permetterà di esplorare WMI senza dover scrivere codice

    WMI Explorer

    Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    martedì 26 ottobre 2010 20:13
  • salve,

    ho windows 7 ...

    sono riuscito a far funzionare il codice che mi ha dato Renato! 

    riesco a vedere tutto, senza problemi. 

    e se vorrei avere come testo di un label, la voce SPEED che si ricava con il codice e si visualizza nella listbox?

    mercoledì 27 ottobre 2010 17:47
  • sono riuscito a far funzionare il codice che mi ha dato Renato! 

    riesco a vedere tutto, senza problemi. 

    e se vorrei avere come testo di un label, la voce SPEED che si ricava con il codice e si visualizza nella listbox?


    Ciao Gabriele97,

    dai questa è semplice ... nel For Each metti un If sulla nProperty.Name  dopodichè assegni alla Label il valore  nProperty.Value.ToString()

    Ciao


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    mercoledì 27 ottobre 2010 19:21
  • e la condizione quale dovrebbe essere?

    If nProperty.Name = ... Then

    'qui che faccio

    End IF

    giovedì 28 ottobre 2010 11:59
  • e la condizione quale dovrebbe essere?

    If nProperty.Name = ... Then

    'qui che faccio

    End IF


    Ciao Gabriele97,

    assegni alla Label il valore  nProperty.Value.ToString()

    non volermene non ti scrivo volutamente il codice ... assegnare un valore Text ad una Label è proprio ABC di programmazione VB.

    Se ti mancano queste basi forse è meglio che prima di scrive (o meglio fare copia ed incolla di codice preso sulla rete) ti fermi un attimino e studi le basi della programmazione.

    Scrivere un programma di gestione multimediale (come mi pare vorresti scrivere) senza conoscere Varibili, Assegnazioni, ecc. è un pò, a mio parere, azzardato!

    Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    giovedì 28 ottobre 2010 12:18
  • no, lo so come si assegna un valore testo alla label

    label1.text = nProperty.Name.ToString()

    giovedì 28 ottobre 2010 12:26
  • no, lo so come si assegna un valore testo alla label

    label1.text = nProperty.Name.ToString()


    E quindi quale è la tua domanda ?

    Ciao

     


    Renato Marzaro  MVP Visual Basic

    http://community.visual-basic.it/renato

    giovedì 28 ottobre 2010 12:43
  • volevo sapere come assegnare alla label un valore da quello ottenuti da SPEED ... no

    Me.Label1.Text = "SPEED"

    ma

    Me.Label1.Text = Velocità RAM

    così (ho risolto con questo)

     If nProperty.Name = "DeviceLocator" Then
        Form1.Label14.Text = nProperty.Value.ToString          

    e ricevo 800 nel mio caso che è il valore in Mhz della frequenza della mi RAM.

    Grazie

    giovedì 28 ottobre 2010 12:47