Loop

Status
Niet open voor verdere reacties.

thomas2001

Gebruiker
Lid geworden
17 jan 2013
Berichten
56
Hallo,
ik heb een programma gemaakt dat pas toegang geeft als de USB wordt gevonden
nu zoek ik iets dat de code herhaalt
hier een voorbeeld van de code nu:

Code:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      
        If My.Computer.FileSystem.DirectoryExists("D:\") Then
            OvalShape1.BorderColor = Color.Green
        End If



    End Sub

ik wil hiermee te weten komen of jullie iets weten als hij de usb niet vindt dat dan een ovaleshape dan rood word
ik probeer hier ook mee te weten te komen of hij de code herhaald zoals dit:

start-usb niet gevonden
loopen totdat hij is gevonden
dan als je hem unplugged
hij weer rood word

Alvast bedankt,
Thomas "beginner"
 
Laatst bewerkt door een moderator:
De vraag staat al op opgelost ... ?
 
In theorie zou het zo moeten werken:
Code:
Do
            If My.Computer.FileSystem.DirectoryExists("D:\") Then
                OvalShape1.BorderColor = Color.Green
            Else
                OvalShape1.BorderColor = Color.Red
            End If
        Loop
Maar in praktijk werkt dat niet. Het werkt wel zo:
Code:
Do
            If My.Computer.FileSystem.DirectoryExists("D:\") Then
                OvalShape1.BorderColor = Color.Green
                MsgBox("De USB-stick is aanwezig.")
            Else
                OvalShape1.BorderColor = Color.Red
                MsgBox("De USB-stick is niet aanwezig.")
            End If
        Loop
Maar dan komt steeds de MsgBox. Daar weet ik niet de oplossing voor.

Pim

P.S. Bedoel je niet BackColor en niet BorderColor?
 
Hoi,

Je kan het inderdaad doen met een do-loop lus, maar let er wel op dat het voor de gebruiker lijkt alsof het programma bevroren is als de loop in de main-thread staat. Een oplossing hiervoor is multi-threaden, waarvoor je hier informatie vindt: http://support.microsoft.com/kb/315577. Dat brengt wel met zich mee dat je niet zomaar controls in de main thread kan veranderen. Dan moet je de controls gaan 'invoken'. Daarover kan je hier meer info vinden: http://msdn.microsoft.com/en-us/library/ms171728.aspx.
Let op dat dit vrij ingewikkeld is als je pas net begint met programmeren.

Als je het iets simpeler wil houden, zou ik je aanbevelen een timer toe te voegen met een niet al te kleine interval en daarin dan te checken of "D:/" bestaat. Aan het eind van het tick-event kan je de timer dan opnieuw starten.


Dan nog 1 opmerking: Een USB-stick hoeft niet altijd de drive-letter "D" te krijgen. Als je het een openbaar programma wil maken, moet je misschien kijken naar een andere methode of er een USB-stick is aangesloten.

Succes!:thumb:
MartinJM
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan