Listbox Items nacheinander kopieren

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von FC 9.

    Listbox Items nacheinander kopieren

    Hey leute,
    ich versuche gerade ein programm zu schreiben und ich komme nicht weiter.
    Ich möchte gerne dass die einzelnen Items aus einer listbox nacheinander kopiert werden und dann die eingabetaste gedrückt wird.
    Ich hab es bisher so versucht

    Spoiler anzeigen

    VB.NET-Quellcode

    1. For Each item As String In ListBox1.Items() : My.Computer.Keyboard.SendKeys(("(~)") + (listbox1.item) + ("(~)"))
    2. Next
    allerdings werden dort jedesmal alle items gleichzeitig kopiert.Ist es möglich dass jedes einzelne item nacheinander nach ca. 7 min kopiert wird?
    MfG

    VB.NET-Quellcode

    1. Dim count as integer = 0
    2. for i = 0 to listbox1.items.count - 1
    3. Sendkeys.Send(Listbox1.items(count).tostring)
    4. Sendkeys.Send({ENTER})
    5. Count += 1
    6. next


    Sollte funktionieren, hab es kurz aus dem Kopf geschrieben :D
    danke ;) es funktionniert auch, allerdings sendet er alle listbox items aufeinmal
    ist es nich möglich, dass diese einzelnd und nacheinander nach jeweils 7min oder so gesendet werden?

    es sieht jetzt so aus :

    a
    b
    c
    und es sollte eig so aussehen
    a
    (7min)
    b
    (7min)
    c
    (7min)
    ...
    (7min)
    und dann wieder mit a beginnen ;)

    Edit:
    aso und was is event tick? xD sry kenn mich nich so aus ;)
    ja danke :D komm trotzdem nich weiter ;) habe den code jez so

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
    2. Dim count As Integer = 0
    3. For i = 0 To ListBox1.Items.Count - 1
    4. SendKeys.Send(ListBox1.Items(count).ToString)
    5. SendKeys.Send("(~)")
    6. Next

    und den timer3 auf 60000 (für 1min).
    müsste ich noch i-wo nen zweiten timer einbauen?
    sry wenn ich mich dumm anstelle :D
    ich habe es bis jetzt so gelöst

    VB.NET-Quellcode

    1. If count + 1 Then
    2. SendKeys.Send(ListBox1.Items(count))
    3. SendKeys.Send("(~)")
    4. count += 1
    5. End If

    allerdings kommt dann die fehlermeldung
    ArgumentOutOfRangeExeption wurde nicht behandelt

    InvalidArgument=Value mit dem Wert 4 ist für index ungültig.
    Parametername: index

    wie kann ich den fehler beheben?
    Hay,

    FC 9 schrieb:

    Hey leute,
    ich versuche gerade ein programm zu schreiben und ich komme nicht weiter.
    Ich möchte gerne dass die einzelnen Items aus einer listbox nacheinander kopiert werden und dann die eingabetaste gedrückt wird.
    Ich hab es bisher so versucht


    Ich versteh dich irgendwie nicht du musst dich mal deutlicher ausdrücken.
    1. Wohin sollen die kopiert werden?
    2.Welche eingabetaste gedrückt wird? Mit jeder Taste kann man was eingeben.

    Erklär mal bitte genauer , am besten anhand eines Beispiels.



    Mfg Kevin.

    Gutelaunetyp schrieb:

    Ich versteh dich irgendwie nicht du musst dich mal deutlicher ausdrücken.
    1. Wohin sollen die kopiert werden?
    2.Welche eingabetaste gedrückt wird? Mit jeder Taste kann man was eingeben.

    also zu 1.
    sie sollen in ein beliebiges textfeld kopiert werden, dass grade ausgewählt ist

    zu 2. eingabetaste -- Entertaste

    Memo schrieb:

    If index > ListBox1.Items.Count -1 Then
    MsgBox ("Index ungültig")
    Exit Sub
    End If

    danke kann ich das dann auch wieder so machen dass es dann wieder von vorne beginnt? :whistling:
    könnte man dies mit hilfe einer schleife lösen? :rolleyes: diese müsste dann allerdings unendlich sein :D
    oah das war ne schwere geburt xD aber habs endlich geschafft ;) war eig ganz einfach :D

    VB.NET-Quellcode

    1. Dim count As Integer = 0
    2. Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
    3. If count + 1 Then
    4. SendKeys.Send(ListBox1.Items(count).ToString)
    5. SendKeys.Send("(~)")
    6. count += 1
    7. End If
    8. If ListBox1.Items.Count - 1 Then
    9. count = 0
    10. End If
    11. End Sub
    ne hat leider dochnich so geklappt wie ichs mir gewünscht hatte :o
    der kopiert immer leider nur das 1. item -.- die weiteren lässt er einfach aus ..
    wie kann ich das machen dass der jedes item kopiert und dann wieder von vorne anfängt?
    danke klappt wunderbar ;)

    VB.NET-Quellcode

    1. Dim count As Integer = 0
    2. Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
    3. If count < ListBox1.Items.Count Then
    4. SendKeys.Send(ListBox1.Items(count).ToString)
    5. SendKeys.Send("(~)")
    6. count += 1
    7. Else
    8. count = 0
    9. End If
    10. End Sub