Trolled by variable?!

  • Will ich mich auch mal einmischen:
    Es gibt zwei Möglichkeiten, wieso er uns sein Skript (noch) nicht bereitgestellt hat:

    • Er hat einfach alle Aufforderungen überlesen oder erachtet sie für unwichtig.
    • Er hat etwas zu verbergen. Hiermit will ich - wie soll es anders sein - auf einen Bot hinaus.

    Zattoo
    Es wäre schön, wenn du zu meiner Aussage Stellung nehmen würdest, um das ggf. zu klären.

    lg chess

  • Aus diesem Grund: Vote for close, da wieder kein Skript zum nachvollziehen dabei,

    doch es ist doch ein beispielscript dabei...? :D

    Ein Skript in dem der beschriebene Fegler nicht auftritt: also kein Skript an dem man den Fehler nachvollziehen kann. Ausserdem kann es sich nicht um dein Skript handeln da keine WM_Notify-Funktion vorhanden. Ich empfehle dir eine Flasche Jägermeister zu trinken und solche Trollbeiträge zu unterlassen. Nachdem hier dein Thema wegen mangenlder Selbstbeteiligung hoffentlich geschlossen wird kannst du ja im bösen Forum Hilfe suchen,

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (24. September 2012 um 01:01)

  • misterspeed, sry falsch verstanden
    dort gibt er mir das richtige aus, was ich eigentlich auch will bsp:
    (ich suche nach test in einem ordner)

    Zitat

    test|C:/temp/test.txt


    chesstiger, nein es ist kein bot, ich durchsuche damit dateien nach einem stichwort

    mein script will ich ungern posten da ich sehr viel arbeit hinein gesteckt hab.

    mfg

  • Dann wirst du sicher verstehen das es uns viel zuviel arbeit ist extra dafür nun die Glaskugel auszupacken und zu Versuchen deinen Fehler zu reproduzieren.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • ja ich weiß ja nicht warums bei dem beispiel geht und in meinem script nicht...
    ich will ja geholfen bekommen aber ohne mein script zu posten
    ich versteh einfach nicht warums da geht und bei mir nicht... dachte es liegt an der WM_NOTIFY funktion? da war mal deklariert $meinlistview = $funktionslistview und dann habe ich rausgenommen und über alle wo $funktionslistview war meins eingesetzt aber es wurde ja schon gesagt das es daran nicht liegt

  • Nur um das endgültig klarzustellen: Das Beispiel funktioniert problemlos , also enthält es den Fehler nicht. Dein Script funktioniert nicht, also enthält es einen Fehler. Weiterhin bist du wohl nicht in der Lage uns ordentliche debugging Informationen zu liefern wie es hier schon mindestens 3 mal verlangt wurde. -> Ergo: Wir KÖNNEN dir nicht helfen weil der Fehler in einem Teil des Scripts ist den keiner bisher gesehen hat, außer dir (und dir bringt es ja wohl nichts). So stochern wir nur im Dunkeln, und darauf hab ich genauso wenig Lust wie alle anderen die hier gepostet haben.
    Ich wollte das hier nur mal in eine zusammengefasste Form bringen, die Entscheidung liegt bei dir.

  • Ich habs mir eben echt überlegen müssen ob ich die Lösung posten soll, denn verdient haste es nicht...

    Autobert und alle anderen waren wohl blind. Der Fehler entsteht durchaus in der wm_notify Funktion die du gepostet hast. Zumindestens wenn du das nicht inzwischen selbst geändert hast nachdem ich dich bereits gestern darauf aufmerksam gemacht habe, dass du nachschauen sollst ob die Variable doppelt verwendet und somit überschrieben wird. (Punkt 1)


    [autoit]


    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListView.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 193, 125)
    $FileListView = GUICtrlCreateListView("test|test", 8, 8, 609, 409)
    _GUICtrlListView_SetColumnWidth($FileListView, 0, 175)
    _GUICtrlListView_SetColumnWidth($FileListView, 1, 441)
    GUISetState(@SW_SHOW)

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

    ConsoleWrite("ID: " & $FileListView & @CRLF)
    $FileListView = GUICtrlGetHandle($FileListView) ; da ist dein fehler aus wm_notify, du überschreibst die control id mit dem control handle...
    ConsoleWrite("Handle: " & $FileListView & @CRLF)

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

    $aDirContent=_FileListToArray(@ScriptDir)

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

    For $i=1 to $aDirContent[0]
    $debug=GUICtrlCreateListViewItem(@ScriptDir & "|" & $aDirContent[$i],$FileListView)
    ;ConsoleWrite($debug & @CRLF) ; <-- 0 = Fehler, siehe Hilfe
    next

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
  • ah gut, alles klar, vielen dank an euch alle :)
    (habe doch gesagt das ich mir fast sicher bin das es bei WM_NOTIFY liegt ;))
    nochn dickes danke an misterspeed das er sich gequält hat um mir zu helfen :D
    mfg

  • Autobert und alle anderen waren wohl blind. Der Fehler entsteht durchaus in der wm_notify Funktion die du gepostet hast.

    Ich mache mir grundsätzlich nicht die Mühe die Codeschnipsel aus verschiedenen Beiträge zusammen zu setzen, denn von jemanden der Hilfe sucht erwarte ich die nötigen Vorabeiten sprich ein ansnsten lauffähiges Skript in dem der Fehler vorkommt.
    Meine klares Nein hätte ich daher mit der Klausel: "zumindest nicht wenn diese keinen Fehler ethält" abschwächen müssen. Ich bezweifle aber stark, dass der TE deine Erkenntnis jetzt auf sein eigentrliches Skript übertragen kann. Im übrigen habe ich mir jetzt die Mühe gemacht und siehe da: immer noch kein Fehler:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <ButtonConstants.au3>
    #include <File.au3>
    #include <FTPEx.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListView.au3>
    #Include <GUIEdit.au3>
    #include <String.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 193, 125)
    $FileListView = GUICtrlCreateListView("test|test", 8, 8, 609, 409)
    _GUICtrlListView_SetColumnWidth($FileListView, 0, 175)
    _GUICtrlListView_SetColumnWidth($FileListView, 1, 441)
    GUISetState(@SW_SHOW)

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

    $aDirContent=_FileListToArray(@ScriptDir)

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

    For $i=1 to $aDirContent[0]
    GUICtrlCreateListViewItem(@ScriptDir & "|" & $aDirContent[$i],$FileListView)
    next
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<========= BENACHRICHTIGUNG FüR LV

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR
    If Not IsHWnd($FileListView) Then $FileListView = GUICtrlGetHandle($FileListView)
    $tNMHDR = DllStructCreate("hwnd hWndFrom;uint_ptr IDFrom;INT Code", $lParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    If $hWndFrom = $FileListView Then
    If $iCode = -3 Then ;NM_DBLCLK
    $String = _GUICtrlListView_GetItemTextString($FileListView, _GUICtrlListView_GetSelectionMark($FileListView))
    $EndString = StringSplit($String, '|')
    ShellExecute($EndString[2])
    EndIf
    EndIf
    Return 'GUI_RUNDEFMSG'
    EndFunc

    [/autoit]

    also war meine Aussage richtig. Die einzige Zeile die ich noch eingefügt habe war das registrieren der WM_Notify-Funktion denn eine unregistrierte kann ja keinen Fehler verursachen da sie nie aufgerufen wird.

    Da der Fehler in einem nicht vorliegendem Skript nicht zu finden ist: Vote for Close

    mfg autoBert

  • Im übrigen habe ich mir jetzt die Mühe gemacht und siehe da: immer noch kein Fehler:

    Öhm ja, weil du das LV befüllst bevor du wm_notify mit dem Fehler darin registrierst/ausführst. Da zattoo das LV in einer Funktion befüllt kann man vermuten, dass er wm_notify vorher registriert. Aber du hast natürlich recht, dass ohne Script grundsätzlich nur lustige Ratespiele möglich sind und ich für meinen Teil werde zattoo's Threads zukünftig ignorieren, wenn er keine brauchbaren Scripte postet. ;)