Error in Expression und Frage zum HotKeySet/Problem mit Array

  • [autoit]

    If $aLog[4] > 0 Then

    [/autoit][autoit][/autoit][autoit]

    $sStatistik = $aLog[0] & " Vokabel in der Excel-Datei" & @CRLF & "Bereits "$aLog[1] & " Eingaben gemacht" & @CRLF & $aLog[2] & " richtig|" & $aLog[3] & " falsch" & @CRLF &"geschummelt
    wurde bereits " & $aLog[4] & "Mal")

    [/autoit][autoit][/autoit][autoit]

    Else

    [/autoit][autoit][/autoit][autoit]

    $sStatistik = $aLog[0] & " Vokabel in der Excel-Datei" & @CRLF & "Bereits "$aLog[1] & " Eingaben gemacht" & @CRLF & $aLog[2] & " richtig|" & $aLog[3] & " falsch"

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit]

    ich bekomme bei dieser zeile immer die Meldung "error in Expression"...

    ic kann aber keinen Fehler erkennen...


    Zum HotKeySet:
    Angenommen ich setze jetzt ein HotKey "{Enter}" zum Absenden eines Inputs
    möchte das aber nur verwenden wenn das Programm aktiv (also nicht minimiert) ist, den Rest der Zeit die Taste entsperren.

    Wie kann ich die Taste entsperren, damit sie währenddessen andere Programme verwenden können?

    Bitte um schnelle Hilfe :)

    3 Mal editiert, zuletzt von dsgamer007 (1. März 2010 um 18:36)

  • Mit _IsPressed:

    [autoit]


    #include <Misc.au3>
    while 1
    ;...
    if winactive("Fenstertitel")<>0 then
    if _IsPressed("1B") then doit()
    endif
    wend

    [/autoit]

    Mit Hokteyset:

    [autoit]


    while 1
    ...
    if winactive($title)<>0 and $hot=0 then
    hotkeyset("{enter}","funk")
    $hot=1
    endif
    if winactive($title)=0 and $hot=1 then
    hotkeyset("{enter}")
    $hot=0
    endif
    wend

    [/autoit]

    PS: Leider nicht sehr schön formatiert

  • wenn ich

    [autoit]

    HotKeySet("{ENTER}")

    [/autoit]

    eingebe, ist die taste also nicht gesperrt?
    ich dachte immer, dass dem schon so ist....

  • Hi,

    ansonsten fehlt Dir hier noch ein &:
    "Bereits "$aLog[1] &
    ->
    "Bereits " & $aLog[1] &

    ;-))
    Stefan

  • ohh mann ich idiot :whistling:

    danke leute
    unglaublich wie schnell hier geholfen wird

    *gelöst*

  • ja

    aber noch ein problem:

    [autoit]

    $aVokabel = _ExcelReadSheetToArray($oExcel,1,1,0,2)

    [/autoit][autoit][/autoit][autoit]

    If $aVokabel[0][0] = 0 Or $aVokabel[0][1] < 2 Then

    [/autoit][autoit][/autoit][autoit]

    MsgBox(16,"Fehler","Das angegebene Tabellenblatt enthält keine Vokabel/zu wenig Spalten")

    [/autoit][autoit][/autoit][autoit]

    Exit

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    $aLog[0] = $aVokabel[0][0]

    [/autoit][autoit][/autoit][autoit]

    Global $sVokPath1, $sVokPath2, $sVokPath3, $sVokPath4

    [/autoit][autoit][/autoit][autoit]

    _PathSplit($sVokPath,$sVokPath1,$sVokPath2,$sVokPath3,$sVokPath4)

    [/autoit][autoit][/autoit][autoit]

    GUICtrlSetData($oInfo,"Prüfe dich Vokabel aus" & @CRLF & "Datei: " & $sVokPath3 & "." & $sVokPath4 & @CRLF & "Tabellenblatt: " & _ExcelSheetNameGet($oExcel))

    [/autoit][autoit][/autoit][autoit]

    _ExcelBookClose($oExcel)

    [/autoit][autoit][/autoit][autoit]

    ProcessClose("EXCEL.EXE")

    [/autoit]

    Da sagt er mir immer dass $aVokabel kein Array sei...

  • Hi,

    dann scheint Dein _ExcelReadSheetToArray () ins Leere zu laufen.
    1) Kontrollier mal Dein $oExcel Objekt
    2) Mach nach dem ExcelReadSheet.. Aufruf ein If @error Then MsgBox (0,"", @error) und schau Dir den Error an
    3) oder poste mehr Code.

    ;-))
    Stefan

  • @error = 3 - Zählparameter außerhalb des Bereiches

    Versteh ich nicht, früher ists immer gegangen

  • Hi,

    Würmer aus der Nase.
    1) Kontrollier Dein $oExcel Objekt: Wird die richtige Excel Datei geöffnet, wie sehen die Inhalte aus?
    2) Du rufst auf: _ExcelReadSheetToArray($oExcel,1,1,0,2)
    Lies Excelsheet vom Objekt $oExcel.
    Starte Reihe1, Spalte1, Alle Reihen, 2 Spalten -> Wieviele Spalten hat denn Dein Excelsheet?

    ;-))
    Stefan

  • Normalerweise 2
    soll ein Vokabelprüfer werden, und ist bis auf dieses eine Problem schon fertig...

    Und gestern hats noch gefunkt 8|

    /edit:
    Ahh fehler gefunden

    hab versucht nen Listview-Eintrag mit GUICtrlRead auszulesen...

    wie kann ich den makierten Listvieweintrag auslesen?

  • Hallo dsgamer,

    wie kann ich den makierten Listvieweintrag auslesen?

    wenn du den ItemText und evtl. auch noch die SubItem-Texte möchtest geht es mit

    [autoit]

    $aItem = _GUICtrlListView_GetItemTextArray($listview)
    ;$aItem[1] enthält den Eintrag der 1. LV-Spalte (1 basierendes Array) also den Itemtex

    [/autoit]

    am schnellsten.

    mfg (Auto)Bert