Aus ArrayList() conventieren

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    Aus ArrayList() conventieren

    Hi Leutz,

    ich habe in meinem Programm eine ArrayList(), die mehrere Liste.Add(Keys.D1.ToString)... enthält. jetzt starte ich eine If-Abfrage, in der ich GetAsyncKeyState(Liste.Item(0)) aufrufe. Jetzt heißt es "Ungültige Konvertierung von der Zeichenfolge D1 in Typ Integer."

    GetAsyncKeyState wurde wie folgt declariert: Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Keys) As Integer

    Meine Frage: Wie conventiere ich das ganze so, dass es mit GetAsyncKeyState funktioniert?

    BITTE UM HILFE!!!

    MfG
    Psycho

    VB.NET-Quellcode

    1. Public Class Form1
    2. Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Keys) As Integer
    3. Dim Liste As New ArrayList()
    4. Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    5. Liste.Add(Keys.D1.ToString)
    6. End Sub
    7. Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
    8. Dim i1 As Integer
    9. For i1 = 0 To 40
    10. If GetAsyncKeyState(BP_Liste_1.Item(i1)) Then
    11. SendKeys.Send("Bla...")
    12. End If
    13. Next
    14. End Sub
    15. End Class
    Anwort: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein. Parametername: index

    Aber sonst: Vielen Dank für den Versuch ^^

    @ ryLIX: Keys.D1 ist die Definition für die Taste "1" und das ist ein Object. DISSS xDDD
    Okay hab jetzt nochmal n bissel umgeändert:

    VB.NET-Quellcode

    1. Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Long
    2. ...
    3. For i1 = 0 To 34
    4. If BP_Liste_2.Item(i1) = Keys.None Then
    5. If GetAsyncKeyState(BP_Liste_1.Item(i1)) = True Then
    6. SendKeys.Send(BP_Liste_5.Item(i1).ToString)
    7. SendKeys.Send(BP_Liste_6.Item(i1).ToString)
    8. End If
    9. Else
    10. If GetAsyncKeyState(BP_Liste_1.Item(i1)) = True And GetAsyncKeyState(BP_Liste_2.Item(i1)) = True Then
    11. SendKeys.Send(BP_Liste_5.Item(i1).ToString)
    12. SendKeys.Send(BP_Liste_6.Item(i1).ToString)
    13. End If
    14. End If
    15. Next


    aber wenn ich jetzt die tasten drücke dann kommt garnichts!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Psycho“ ()

    die rückgabe ist integer bzw long, kein bool!

    If GetAsyncKeyState(Liste.Item(i1)) <> 0 Then...

    sowas sollte man beachten!

    gruss
    Das ist meine Signatur und sie wird wunderbar sein!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mono“ ()

    Wenn dann wohl -32767, nicht 0, weil auch etwas anderes zurückgegeben werden kann.
    Wobei CLong(True) wäre wohl am übersichtlichsten.

    //E:
    Für die GetAsyncKeysState musst du Den KEYCODE verwenden: Keys.1

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FAtheone“ ()