Ankündigung

Einklappen
Keine Ankündigung bisher.

Programmierhilfe für mein Programm in Visual Basic 2010 benötigt

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Programmierhilfe für mein Programm in Visual Basic 2010 benötigt

    Hallo,

    ich bräuchte ein wenig Hilfe bei einer Programmieraufgabe für Visual Basic 2010. Ich muss dazu sagen, ich habe damit kaum Erfahrung. Mein Kollege ebenso wenig.

    Erst mal zur Ausgangslage:
    Das Programm, welches ich erstellen soll, soll auslesen, welche Programme bereits als virtuelle Versionen auf einem PC sind und diese in einer Liste abspeichern.
    Das habe ich bereits hinbekommen.

    Jetzt soll diese Liste allerdings ausgelesen werden und die Elemente in einer Combibox anwählbar sein.
    Auch das habe ich soweit hinbekommen.

    Das Problem ist nur, wenn jetzt ein Element ausgewählt wurde, soll es über zwei weitere Buttons aktiviert oder deaktiviert werden können.

    Als ich eine Liste testweise erstellt habe, funktionierte das auch alles prima. Allerdings ist meine Liste nicht dynamisch. Das heißt, wenn sich da was an der Anzahl der Elemente ändert, funktioniert das ganze ja nicht mehr.

    Meine Vermutung ist, ich brauche zunächst einen Zähler, der die Anzahl der Elemente in der Textdatei auszählt. Und dann brauche ich noch eine Variable, an die das ausgewählte Element in der Combobox schließlich übergeben wird, dass ich dann damit eine case-Verzweigung aufrufen kann.

    Zur Verdeutlichung hier noch der Code, den ich bis jetzt habe:

    Code:
    Public Class Form1
    
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Call Shell("D:\VB_Test\liste_erstellen.bat") 'ruft die Datei liste_erstellen.bat auf, welche die Ausgabe im cmd-Fenster in eine Liste kopiert
            Button1.Enabled = False                      'deaktiviert den Button "Start"
            Button4.Enabled = False                      'deaktiviert den Button "Programmliste laden", damit dieser nicht zu früh angeklickt wird, weil das Programm einige Sekunden braucht, um die Bat-Datei auszuführen
    
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Button4.Enabled = True  'Der Timer aktiviert den Button "Programmliste laden" ca. 3 Sekunden, nachdem auf den Button "Start" geklickt wurde 
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    
            Dim Array() As String = Nothing
            Array = System.IO.File.ReadAllText("D:\VB_Test\Verzeichnis.txt").Split(CChar(vbCrLf))   'erstellt aus der erzeugten Liste eine ComboBox mit den Elementen der Liste
            Me.ComboBox1.Items.AddRange(Array)
            Button4.Enabled = False                                                                 'deaktiviert den Button "Programmliste laden", damit dieser nicht ein zweites Mal angeklickt werden kann
            Timer1.Enabled = False                                                                  'deaktivert den Timer, da er sonst den Button "Programmliste laden" nach 3 Sekunden wieder aktiviert
    
        End Sub
        
    
    
        ' Ab hier sind die Befehle für das Aktivieren und das Deaktivieren aus einer starren Liste. 
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Select Case ComboBox1.SelectedIndex
                Case 0
                    Call Shell("svscmd 3ds Max Design 2012 A")
                Case 1
                    Call Shell("svscmd AllPlan-2012 A")
                    Call Shell("svscmd AutoCAD-2012 D")
                    Call Shell("svscmd SOFiCAD-2012 D")
                    Call Shell("svscmd AllPlan-BCM-2012 D")
                Case 2
                    Call Shell("svscmd AllPlan-BCM-2012 A")
                    Call Shell("svscmd SOFiCAD-2012 D")
                    Call Shell("svscmd AutoCAD-2012 D")
                    Call Shell("svscmd AllPlan-2012 D")
                Case 3
                    Call Shell("svscmd AutoCAD-2012 A")
                    Call Shell("svscmd AllPlan-2012 D")
                    Call Shell("svscmd SOFiCAD-2012 D")
                    Call Shell("svscmd AllPlan-BCM-2012 D")
                Case 4
                    Call Shell("svscmd Hottgenroth Akademie A")
                Case 5
                    Call Shell("svscmd Netop Vision Lehrer A")
                Case 6
                    Call Shell("svscmd Netop Vision Schueler A")
                Case 7
                    Call Shell("svscmd SOFiCAD-2012 A")
                    Call Shell("svscmd AutoCAD-2012 D")
                    Call Shell("svscmd AllPlan-2012 D")
                    Call Shell("svscmd AllPlan-BCM-2012 D")
                Case 8
                    Call Shell("svscmd Vectorworks 2011 A")
                Case 9
                    Call Shell("svscmd Weeke A")
            End Select
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Select Case ComboBox1.SelectedIndex
                Case 0
                    Call Shell("svscmd 3ds Max Design 2012 D")
                Case 1
                    Call Shell("svscmd AllPlan-2012 D")
                Case 2
                    Call Shell("svscmd AllPlan-BCM-2012 D")
                Case 3
                    Call Shell("svscmd AutoCAD-2012 D")
                Case 4
                    Call Shell("svscmd Hottgenroth Akademie D")
                Case 5
                    Call Shell("svscmd Netop Vision Lehrer D")
                Case 6
                    Call Shell("svscmd Netop Vision Schueler D")
                Case 7
                    Call Shell("svscmd SOFiCAD-2012 D")
                Case 8
                    Call Shell("svscmd Vectorworks 2011 D")
                Case 9
                    Call Shell("svscmd Weeke D")
            End Select
        End Sub
    
    End Class
    Und dann noch die Bilder dazu:

    Bild 1: So sieht das am Anfang aus. Dann klickt man zuerst auf Start. Jetzt wird eine Batchdatei aufgerufen, die in der Konsole eine Liste der Programme aufruft (die habe ich jetzt für das Beispiel erstellt, weil ich das Virtualisierungsprogramm hier nicht habe) und diese Liste in eine Textdatei schreibt.

    Bild 2: Die Schaltfläche "Start" wird deaktiviert und man kann die erstellte Liste aufrufen.

    Bild 3: Jetzt kann man hier ein Programm auswählen, welches aktiviert oder deaktiviert werden kann.


    Kennt sich einer von euch damit aus und kann mir da weiter helfen? Ich wäre euch sehr dankbar.
    Angehängte Dateien
    Zugriff verweigert - Treffen der Generationen 2012

    =/\= STARFLEET UNIVERSE =/\=

  • #2
    Ich hab das jetzt selbst rausgefunden, nachdem ich ein wenig rumprobiert habe.
    Eigentlich ist es sehr einfach. Es gibt direkt einen Befehl, der die erstellte Liste ausliest und eine ComboBox mit den Elementen erstellt.

    Code:
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    
            Dim Array() As String = Nothing
            Array = System.IO.File.ReadAllText("D:\VB_Test\Verzeichnis.txt").Split(CChar(vbCrLf))   'erstellt aus der erzeugten Liste eine ComboBox mit den Elementen der Liste
            Me.ComboBox1.Items.AddRange(Array)
            Button4.Enabled = False                                                                 'deaktiviert den Button "Programmliste laden", damit dieser nicht ein zweites Mal angeklickt werden kann
            
    
        End Sub
    Zugriff verweigert - Treffen der Generationen 2012

    =/\= STARFLEET UNIVERSE =/\=

    Kommentar

    Lädt...
    X