Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: [VB2008] käytössä olevat levyasemat listboxiin

jokke568 [21.09.2009 20:42:07]

#

Apua taas tarvitsen...

Miten saisin laitettua koneella käytettävissä olevat levyasemat listboxiin, myös kiinni kytketyjen muistitikkujen?

Kiitos jo etukäteen.

Jokke

neau33 [22.09.2009 05:09:01]

#

Moro jokke568!

oheisesta (XP) purkka-esimerkistä saat ehkä jotain osviittaa...

'väännetty SharpDevelop 3.1 RC2:lla
Imports System
Imports System.Text
Imports System.Management
Imports System.Windows.Forms
Imports System.Runtime.InteropServices

Imports Scripting ' Interop.Scripting
'(COM-refernssi Microsoft Scripting Runtime)

Namespace FSO_DRIVE
 Public Partial Class MainForm

   Friend Structure DriveStruct
   	Dim name As String
   	Dim infoString As String
   	Dim type As integer
   	Dim typeConst As String
   	Dim typeDescription As String
   	Dim path As String
   	Dim isAvailable As Boolean
   	Dim checked As Boolean
   End Structure

   Private MyDrives() As FSO_DRIVE.MainForm.DriveStruct

    Public Sub New()

       Me.InitializeComponent()

    End Sub

    Sub MainFormLoad(sender As Object, e As EventArgs)

        Dim fso As New Scripting.FileSystemObject
   	ReDim MyDrives(fso.Drives.Count)
   	Dim i As Integer = -1

        For Each MyDrive As Scripting.IDrive In fso.Drive
           i += 1
           With MyDrive
              MyDrives(i).Name = .Path & " asema"
               MyDrives(i).Path = .Path
               MyDrives(i).typeConst = .DriveType.ToString
               MyDrives(i).isAvailable = .IsReady

               If i < 2 And .DriveType.ToString = "Removable" Then
                  MyDrives(i).TypeDescription = "floppy"
               ElseIf i > 1 And .DriveType.ToString = "Removable" Then
                  MyDrives(i).TypeDescription = "other than floppy"
               Else
                  MyDrives(i).TypeDescription = .DriveType.ToString
               End If
            End With
        Next

        fso = Nothing
        Dim searcher As Object = Nothing
        searcher = New ManagementObjectSearcher( _
        "root\CIMV2", _
        "SELECT * FROM Win32_DiskDrive")

        For Each DiskDrive As ManagementObject In searcher.Get()
           Dim mtype As String = _
           DiskDrive("MediaType").Replace(" ","")
           For j As Integer = 0 _
           To MyDrives.GetUpperBound(0)
              If mtype.IndexOf("mediaotherthan") > -1 _
              And MyDrives(j).typeDescription = "other than floppy" _
              And MyDrives(j).checked = False And _
              DiskDrive("Caption").IndexOf("USB") > -1 Then
                 MyDrives(j).checked = True
                 If DiskDrive("Status") = "OK" Then
                   MyDrives(j).isAvailable = True
                 Else
                   MyDrives(j).isAvailable = False
                 End If
                 MyDrives(j).typeDescription = "USBDrive"
              End if
           Next j
        Next DiskDrive

       searcher = New ManagementObjectSearcher( _
       "root\CIMV2", _
       "SELECT * FROM Win32_CDROMDrive")

       For Each CDROMDrive As ManagementObject In searcher.Get()

      	   If CDROMDrive("Caption").IndexOf("USB") > -1 Then
              For j As Integer = 0 To MyDrives.GetUpperBound(0)
                 If MyDrives(j).typeDescription = "CDRom" _
                    And MyDrives(j).Checked = False Then
                       MyDrives(j).checked = True
      		       MyDrives(j).isAvailable = False
      		       MyDrives(j).typeDescription = "USBDrive"
                   Exit For
                 End If
               Next
      	   ElseIf CDROMDrive("Caption").IndexOf("USB") = -1 Then
       	      For j As Integer = 0 To MyDrives.GetUpperBound(0)
      	         If MyDrives(j).typeDescription = "CDRom" _
      		     And MyDrives(j).checked = False Then
      		       MyDrives(j).checked = True
      		       If CDROMDrive("Status") = "OK" Then
      		         MyDrives(j).isAvailable = True
      		       Else
      		         MyDrives(j).isAvailable = False
      		       End If
                    Exit For
                 End If
      	      Next
      	   End If

       Next CDROMDrive

       searcher = Nothing

       For j As Integer = 0 To MyDrives.GetUpperBound(0)
          If MyDrives(j).isAvailable Then
            Me.listbox1.Items.Add( _
            MyDrives(j).Name & " | " & _
            MyDrives(j).typeDescription)
          End If
       Next

    End Sub

 End Class

End Namespace

jokke568 [22.09.2009 09:07:52]

#

Suuri kiitos taas Nea

En ole koskaan käyttänyt Namespace:a...

Minne namespace perustetaan...

Jokke

neau33 [22.09.2009 18:11:05]

#

Moikka taas jokke568!

valaistusta Namespace-jutskiin...???
elikä tutki/testaa kommentoimalla pois nimitilat & viitaukset


PääFormi.vb:

'Juurinimitila (Root Namespace):
'NimitilaEsimerkkiProjekti = Projektin nimi
'(VB:n asettama oletus)

Imports System
Imports NimitilaEsimerkkiProjekti.NimitilaEsimerkki

Public Partial Class PääFormi

   Public Sub New()

      Me.InitializeComponent()

   End Sub

   Sub Button1Click(sender As Object, e As EventArgs)

      Static i As Integer
      Dim luokka As Object = Nothing
      Dim a As Object = Nothing
      Dim b As Object = Nothing

      If i > 1 Then
         i = 0
      End If

      Select Case i
         Case 0
            luokka = New nimitila1.Luokka1
            a = "loppu"
            b = "tili"
         Case 1
            luokka = New nimitila2.Luokka1
            a = 10
            b = 20
      End Select
      i += 1
      MsgBox(luokka.Funktio(a, b))

   End Sub

   Sub Button2Click(sender As Object, e As EventArgs)

      Dim frmSivuFormi As _
      New NimitilaEsimerkkiProjekti.SivuFormi
      frmSivuFormi.ShowDialog
      frmSivuFormi.Close

   End Sub

   Sub Button3Click(sender As Object, e As EventArgs)

      Dim frmSivuFormi As _
      New NimitilaEsimerkkiProjekti.SivuFormi2
      frmSivuFormi.ShowDialog
      frmSivuFormi.Close

   End Sub

   Sub Button4Click(sender As Object, e As EventArgs)

      Dim frmSivuFormi As _
      New NimitilaEsimerkkiProjekti.SivuFormi3
      frmSivuFormi.ShowDialog
      frmSivuFormi.Close

   End Sub

End Class

Namespace NimitilaEsimerkki.nimitila1

   Public Class Luokka1

      Public Shared Function Funktio _
      (a As System.String, _
      b As System.String) As System.String
         Return a & b
      End Function

   End Class

End Namespace

Namespace NimitilaEsimerkki.nimitila2

   Public Class Luokka1

      Public Function Funktio _
      (a As Integer, _
      b As Integer) As Integer
         Return a * b
      End Function

   End Class

   Namespace nimitila2_2

      Public Class Luokka1
         Public Function Funktio _
         (a As Object, _
         b As Object) As Object

            If TypeOf(a) IS System.String Then
               Return a & b
               Exit Function
            Else
               Try
                  Return a * b
                  Exit Function
               Catch
               End Try
            End If

            Return Nothing

         End Function

      End Class

   End Namespace

End Namespace

SivuFormi.vb:

Imports NimitilaEsimerkkiProjekti

Public Partial Class SivuFormi

   Public Sub New()

      Me.InitializeComponent()

   End Sub

   Sub Button1Click(sender As Object, e As EventArgs)

      Static i As Integer
      Dim luokka As Object = Nothing
      Dim a As Object = Nothing
      Dim b As Object = Nothing

      If i > 1 Then
         i = 0
      End If

      Select Case i

         Case 0
            luokka = _
            New NimitilaEsimerkki.nimitila1.Luokka1
            a = "appi"
            b = "ukot"
         Case 1
            luokka = _
            New  NimitilaEsimerkki.nimitila2.Luokka1
            a = 100
            b = 200

      End Select

      i += 1
      MsgBox(luokka.Funktio(a, b))

   End Sub

End Class

SivuFormi2.vb

Public Partial Class SivuFormi2

   Public Sub New()

      Me.InitializeComponent()

   End Sub

   Sub Button1Click(sender As Object, e As EventArgs)

      Static i As Integer
      Dim luokka As Object = Nothing
      Dim a As Object = Nothing
      Dim b As Object = Nothing

      If i > 1 Then
         i = 0
      End If

      Select Case i
         Case 0
            luokka = _
            New NimitilaEsimerkkiProjekti. _
            NimitilaEsimerkki.nimitila1.Luokka1
            a = "mini"
            b = "mekot"
         Case 1
            luokka = _
            New NimitilaEsimerkkiProjekti. _
            NimitilaEsimerkki.nimitila2.Luokka1
            a = 1000
            b = 2000
      End Select
      i += 1
      MsgBox(luokka.Funktio(a, b))

   End Sub

End Class

SivuFormi3.vb

Imports ntila1 = _
NimitilaEsimerkkiProjekti. _
NimitilaEsimerkki.nimitila1

Imports ntila2 = _
NimitilaEsimerkkiProjekti. _
NimitilaEsimerkki.nimitila2

Imports ntila3 = _
NimitilaEsimerkkiProjekti. _
NimitilaEsimerkki.nimitila2.nimitila2_2

Public Partial Class SivuFormi3

   Public Sub New()

      Me.InitializeComponent()

   End Sub

   Sub Button1Click(sender As Object, e As EventArgs)

      Static i As Integer
      Dim luokka As Object = Nothing
      Dim a As Object = Nothing
      Dim b As Object = Nothing

      If i > 1 Then
         i = 0
      End If

      Select Case i
         Case 0
            luokka = New ntila1.Luokka1
            a = "alku"
            b = "pääoma"
         Case 1
            luokka = New ntila2.Luokka1
            a = 1000
            b = 2000
      End Select
      i += 1
      MsgBox(luokka.Funktio(a, b))

   End Sub

   Sub Button2Click(sender As Object, e As EventArgs)

      Static i As Integer
      Dim luokka As Object = _
      New ntila3.Luokka1

      Dim a As Object = Nothing
      Dim b As Object = Nothing

      If i > 1 Then
      	i = 0
      End If

      Select Case i
      	Case 0
            a = "luokka"
            b = "retki"
      	Case 1
            a = 10.10
            b = 20.20
      End Select

      i += 1
      MsgBox(luokka.Funktio(a, b))

   End Sub

End Class

jokke568 [22.09.2009 20:50:03]

#

Hei Nea

Kiitos esimerkistä, rupean nyt syventymään asiaan.

Kiitos!

Jokke

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta