+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Stato della memoria del CD

  1. #1
    L'avatar di luca_vb
    luca_vb non è in linea Novello
    Post
    42

    Stato della memoria del CD

    Salve
    Sto creando un programma per testare delle cose su i CD.
    Allora io vorrei che quando si apre il form1 all'interno di un progressbar per essere precisi all'interno della progressbar1 lo stato della memoria occupata.
    Come posso fare ??? Grazie mille.

  2. #2
    L'avatar di chico_
    chico_ non è in linea Very Important Person Ultimo blog: Attacco a Oscommerce
    Luogo
    Hell Sp 35
    Post
    2,056
    Blogs
    4

    Conoscere lo spazio libero su CD

    Andando per intuizione, data la pessima esposizione della questione , presumo che tu voglia conoscere lo spazio libero sull'unità CD.......
    Inserisci nei riferimenti System.Management e:
    codice:
    Imports System.Management
    Public Class Form1
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Info()
        End Sub
        Private Sub Info()
    
            Dim MGMT As ManagementObject
            Dim Searcher As ManagementObjectSearcher
            Searcher = New ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk")
            For Each MGMT In Searcher.Get
                Dim S As String = String.Concat("Unità ", MGMT("DeviceID"), _
                                 " Spazio totale ", Convert.ToInt64(MGMT("Size")) / 1000000, _
                                 " MB, Spazio libero ", Convert.ToInt64(MGMT("FreeSpace")) / 100000, _
                                 " MB")
                MessageBox.Show(S)
            Next
        End Sub
    End Class
    In merito alla visualizzazione in una progressbar dello spazio occupato, come presumo di aver capito, usa i valori ritornati dalla routine di cui sopra per impostare le proprietà minimum, maximum e value della progressbar stessa.

    Ciauz

    CHico
    La differenza tra un imbecille e un genio è che il genio ha dei limiti

    www.chicosoft.it

  3. #3
    L'avatar di GarGia1960
    GarGia1960 non è in linea Scolaretto
    Post
    252
    Perche mi da errore:

    Imports System.Management

  4. #4
    Luogo
    Padova
    Post
    4,379
    Blogs
    36
    Quote Originariamente inviato da GarGia1960 Visualizza il messaggio
    Perche mi da errore:

    Imports System.Management
    Verifica di avere inserito tra i riferimenti System.Management, mi sembra che di default non venga aggiunto e lo debba aggiungere tu.
    ----------------------------------------------------------
    Se avete delle domande fatele prima al forum
    Il mio blog su Masterdrive.it
    Il mio blog su Visual-Basic.it

  5. #5
    L'avatar di chico_
    chico_ non è in linea Very Important Person Ultimo blog: Attacco a Oscommerce
    Luogo
    Hell Sp 35
    Post
    2,056
    Blogs
    4
    Quote Originariamente inviato da GarGia1960 Visualizza il messaggio
    Perche mi da errore:

    Imports System.Management
    Quote Originariamente inviato da Cteniza Visualizza il messaggio
    Verifica di avere inserito tra i riferimenti System.Management, mi sembra che di default non venga aggiunto e lo debba aggiungere tu.
    Confermo quanto dice Cteniza ... l'avevo anche scritto nella mia risposta

    Ciauz

    Chico

    [ot]
    Per Cteniza: ho visto che hai cambiato avatar.... decisamente meno inquietante del precedente
    [/ot]
    La differenza tra un imbecille e un genio è che il genio ha dei limiti

    www.chicosoft.it

  6. #6
    L'avatar di brigida1996
    brigida1996 non è in linea Novello
    Post
    16
    codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Info()
        End Sub
        Private Sub Info()
    
            Dim MGMT As ManagementObject
            Dim Searcher As ManagementObjectSearcher
            Searcher = New ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk")
            For Each MGMT In Searcher.Get
                Dim S As String = String.Concat("Unità ", MGMT("DeviceID"), _
                                 " Spazio totale ", Convert.ToInt64(MGMT("Size")) / 1000000, _
                                 " MB, Spazio libero ", Convert.ToInt64(MGMT("FreeSpace")) / 100000, _
                                 " MB")
                MessageBox.Show(S)
            Next
        End Sub
    End Class
    Ho messo questo codice postato da chico_ e mi da errore su...(frasi evidenziate in rosso)

  7. #7
    Luogo
    Padova
    Post
    4,379
    Blogs
    36
    Un mio esempio:
    Elencare le unità disco libere e occupate - utilizzo di SortedList e DictionaryEntry con C#
    ho visto che è scritta in C#, questo il corrispondente vb.net (traduttore automatico)
    codice:
    '
    ' * Created by Visual Studio 2005
    ' * User: Luciano Bastianello
    ' * Date: 03/15/2007
    ' * Time: 20:00
    ' 
    
    Imports System
    Imports System.Collections
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Text
    Imports System.Windows.Forms
    Imports System.Management
    
    Namespace FreeDriveLettersCs
    	Public Partial Class MainForm
    		Inherits Form
    		Public Sub New()
    			InitializeComponent()
    		End Sub
    
    		Private Sub MainForm_Load(ByVal sender As Object, ByVal e As EventArgs)
    			' riempiamo la nostra lista con tutti i nomi di drive
    			' in modo tale da poter fare una ricerca sulla sortedlist
    			Dim sList As New SortedList()
    			For Each c As Char In "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    				Dim s As String = c.ToString() + ":"
    				sList.Add(s, "")
    			Next
    			' preparazione della query
    			Dim query As New SelectQuery("SELECT * FROM Win32_LogicalDisk")
    			Using searcher As New ManagementObjectSearcher(query)
    				For Each mobj As ManagementBaseObject In searcher.[Get]()
    					Dim s As String = mobj.GetPropertyValue("DeviceId").ToString()
    					Dim k As Integer = CInt(sList.IndexOfKey(s))
    					sList.RemoveAt(k)
    					sList.Add(s, mobj.GetPropertyValue("Description") + " " + mobj.GetPropertyValue("FileSystem") + " " + mobj.GetPropertyValue("VolumeSerialNumber"))
    				Next
    			End Using
    			Dim sb As New StringBuilder()
    			' per iterare su una collection 
    			' si utilizza una variabile di tipo DictionaryEntry
    			' una classe che "espone" key e value
    			For Each de As DictionaryEntry In sList
    				sb.Append(de.Key)
    				sb.Append(" ")
    				sb.Append(de.Value)
    				sb.Append(Environment.NewLine)
    			Next
    			richTextBox1.Text = sb.ToString()
    		End Sub
    	End Class
    End Namespace
    ----------------------------------------------------------
    Se avete delle domande fatele prima al forum
    Il mio blog su Masterdrive.it
    Il mio blog su Visual-Basic.it

  8. #8
    L'avatar di Gandalfrank
    Gandalfrank non è in linea Scribacchino
    Luogo
    Pisa
    Post
    1,208
    Quote Originariamente inviato da chico_ Visualizza il messaggio
    ...

    Dim S As String = String.Concat("Unità ", MGMT("DeviceID"), _
    " Spazio totale ", Convert.ToInt64(MGMT("Size")) / 1000000, _
    " MB, Spazio libero ", Convert.ToInt64(MGMT("FreeSpace")) / 100000, _
    " MB")
    ...

    Ciao Chico,

    scusa se lo chiedo, ( probabilmente sarò preso a pernacchie...) ma perché dividi Convert.ToInt64(MGMT("Size")) per 1000000?

    Non dovrebbe essere più esatto e logico dividere per 1048576 ossia 2^20, per ricavare il numero corretto di MB?


+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi