Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Visual Basic- jak zrobić program do sprawdzania informacji..

stanislaw555 27 Lis 2010 19:33 2581 12
  • #1 27 Lis 2010 19:33
    stanislaw555
    Poziom 15  

    :arrow:Visual Basic- jak zrobić program do sprawdzania informacji o pendrive?
    Witam.
    Potrzebuję napisać prosty programik, który pokazywałby mi:
    -Nazwę firmy i model pendriva
    -Etykietę i literkę pendriva
    -Wolne i zajęte miejsce na nim
    Może być prosty w wyglądzie, ale zależy mi na tych funkcjach
    Pozdrawiam
    Stanisław

    P.S.: Jeśli nie będzie opcji zrobić coś takiego, program mogę napisać w BAT.

  • #2 27 Lis 2010 19:36
    arnoldziq
    Moderator Programowanie

    stanislaw555 napisał:
    ... Potrzebuję napisać prosty programik...

    To co kolegę powstrzymuje ?

  • Pomocny post
    #3 27 Lis 2010 19:40
    marcinj12
    Poziom 40  

    Nie próbowałem z pendrivem, ale zacząłbym od przyjrzenia się metodzie GetDriveInfo, zacznij od tego, odpowiedzi na pytania: How to determie Drive's....

  • #4 27 Lis 2010 19:51
    stanislaw555
    Poziom 15  

    arnoldziq napisał:
    stanislaw555 napisał:
    ... Potrzebuję napisać prosty programik...

    To co kolegę powstrzymuje ?

    Powstrzymuje mnie to, że niespecjalnie znam Visual Basic (trochę znam, ale nie na tyle) :)
    marcinj12 napisał:
    Nie próbowałem z pendrivem, ale zacząłbym od przyjrzenia się metodzie GetDriveInfo, zacznij od tego, odpowiedzi na pytania: How to determie Drive's....

    Zobaczę. Może coś z tego wyjdzie. Nawet nie musi być wykresu. Sam tekst np.:
    Zajęte miejsce: 1024MB
    Wolne miejsce: 3072MB
    Całkowita pojemność: 4096MB


    Jest:
    How to: Determine a Drive's Volume Label in Visual Basic

    Demonstrates how to determine a drive's volume label.

    How to: Determine a Drive's Format in Visual Basic

    Demonstrates how to determine a drive's file-system type.

    How to: Determine a Drive's Type in Visual Basic

    Demonstrates how to determine a drive's type.

    How to: Determine a Drive's Total Space in Visual Basic

    Demonstrates how to determine a drive's total space.

    How to: Determine a Drive's Physical Free Space in Visual Basic

    Demonstrates how to determine a drive's physical free space.

    How to: Determine a Drive's Root Directory in Visual Basic

    Demonstrates how to determine a drive's root directory.
    Co z tego wybrać?

  • Pomocny post
    #5 27 Lis 2010 20:11
    marcinj12
    Poziom 40  

    stanislaw555 napisał:
    Co z tego wybrać?

    A z angielskim jak?? :) Nazwy reprezentują to, co szukasz.
    Najlepiej popróbuj, do każdego masz przykład w kodzie.
    Zacznij od Drive's Type - typ napędu (pewnie pendrive ma Removable)
    Drive's Total Space - całkowity rozmiar nośnika,
    Physical Free Space - wolne miejsce
    Drivcers Volume - nazwa napędu...

  • #6 27 Lis 2010 20:34
    stanislaw555
    Poziom 15  

    Działa. Ale mam problem. Stworzyłem coś takiego:

    Code:
    Public Class Form1
    

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim cdrive As System.IO.DriveInfo
            cdrive = My.Computer.FileSystem.GetDriveInfo("D:")
            MsgBox("Etykieta dysku: " & CStr(cdrive.VolumeLabel))
        End Sub

        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim cdrive As System.IO.DriveInfo
            cdrive = My.Computer.FileSystem.GetDriveInfo("C:\")
            MsgBox("Całkowita pojemność: " & CStr(cdrive.TotalSize))

        End Sub

        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim cdrive As System.IO.DriveInfo
            cdrive = My.Computer.FileSystem.GetDriveInfo("C:\")
            MsgBox("Wolne miejsce: " & CStr(cdrive.TotalFreeSpace))
        End Sub

        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
            Dim cdrive As System.IO.DriveInfo
            cdrive = My.Computer.FileSystem.GetDriveInfo("C:\")
            MsgBox("System plików: " & CStr(cdrive.DriveFormat))

        End Sub

        Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
            Dim cdrive As System.IO.DriveInfo
            cdrive = My.Computer.FileSystem.GetDriveInfo("C:\")
            MsgBox("Typ dysku: " & CStr(cdrive.DriveType.ToString))

        End Sub

        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            End
        End Sub
    End Class

    Visual Basic- jak zrobić program do sprawdzania informacji..
    Pokazuje mi informacje świetnie, ale nie o tym dysku, który chcę. Nie chcę, by szukało informacji o dysku D, ale o tym dysku, na którym znajduje się program. Dałoby się coś zrobić?
    Pozdrawiam
    Stanisław

  • Pomocny post
    #7 27 Lis 2010 20:56
    marcinj12
    Poziom 40  

    Spróbuj przekazać jako parametr do GetDriveInfo literę dysku uzyskaną w ten sposób:

    Code:
    Dim strParts() As String
    
    Dim literaDysku as String
    strParts = Split(App.Path, "\")
    literaDysku = strParts(0) & "\"

  • #8 27 Lis 2010 21:31
    stanislaw555
    Poziom 15  

    marcinj12 napisał:
    Spróbuj przekazać jako parametr do GetDriveInfo literę dysku uzyskaną w ten sposób:
    Code:
    Dim strParts() As String
    
    Dim literaDysku as String
    strParts = Split(App.Path, "\")
    literaDysku = strParts(0) & "\"

    Nie da się. Wyskakuje:
    Name 'App' is not declared

  • #9 27 Lis 2010 21:53
    marcinj12
    Poziom 40  

    W Visualu pod .NETem robisz? Spróbuj zamiast App.Path coś w stylu:

    Code:

    Dim path As String
    path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)

    Nie mam teraz zainstalowanego visuala żeby przetestować dokładnie, pokombinuj jak uzyskać literę dysku ze ścieżki :)

  • #10 27 Lis 2010 22:16
    stanislaw555
    Poziom 15  

    A. I gdzie to wkleić?

  • #11 27 Lis 2010 23:04
    marcinj12
    Poziom 40  

    Spróbuj tak:

    Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    Dim path As String
    path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)

    Dim literaDysku as String
    literaDysku = path.Substring(0, 3)

    Dim cdrive As System.IO.DriveInfo
    cdrive = My.Computer.FileSystem.GetDriveInfo(literaDysku)

    MsgBox("Etykieta dysku: " & CStr(cdrive.VolumeLabel))
     End Sub

  • #12 28 Lis 2010 10:42
    stanislaw555
    Poziom 15  

    I do każdego tak, tylko pozmieniać komendy (Etykieta itd.):?:
    EDIT:
    No ja chyba zgłupieję. Nie działa! Po uruchomieniu i kliknięciu "Nazwa dysku" podświetla na żółto tą linijkę:

    Code:
    cdrive = My.Computer.FileSystem.GetDriveInfo(literaDysku)

    Już wiem co zrobię. Będzie to nudne ale zrobię sprawdzenie dla każdego dysku: Jeden dysk- jeden programik 200kb. I programik wyboru. To trochę zmienię temat:
    Jak zrobić, by po kliknięciu w menu przycisku "A:\" (button 1) uruchamiało program A.EXE?
    Dzięki za pomoc
    Stanisław

  • #13 28 Lis 2010 11:13
    riodoro1
    Poziom 22  

    Mam tutaj kod na początek, podaje literę, etykietę i wolne miejsce w bajtach (u mnie działa):

    Code:

    Dim text As String

            For Each curDrive As System.IO.DriveInfo In My.Computer.FileSystem.Drives

                If curDrive.DriveType = System.IO.DriveType.Fixed Then  'tutaj sprawdza typ dysku (jeżeli dysk jest lokalny)

                    text = text & "Dysk " & curDrive.Name & vbNewLine & " etykieta " & curDrive.VolumeLabel & vbNewLine & "wolne miejsce " & curDrive.AvailableFreeSpace & vbNewLine 'dodaje tekst z informacjami o dysku


                End If
            Next
            MsgBox(text) 'pokazuje wszystkie informacje.


    pokombinuj z nim trochę, nie pytaj o wszystko tylko się pobaw bo programowanie to przede wszystkim zabawa.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME