Shellexecute und _FileListToArray Problem

  • Guten Morgen Zusammen!

    Ich möchte gerne die Files, die ich in einem Ordner habe als Arrays definieren.
    Hier ist der relevante Code meines Scriptleins :D

    [autoit]

    #include <File.au3>
    #Include <Array.au3>
    $FileList = _FileListToArray("\\localswissca\swroot\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort)
    Func Og6()
    $msgn = "sechs"
    $n = "6."
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zensiert.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og6
    ShellExecute ($FileList[1],"","\\Zensiert\Zensiert\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort & "\","",@SW_SHOW)

    [/autoit]


    Und hier der Fehler, der zurrückgegeben wird:

    Code
    C:\Documents and Settings\Zensiert\Desktop\Printer\Test.au3(138,114) : ERROR: syntax error (illegal character)
    	ShellExecute ("\\Zensiert\Zensiert\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort & "\" & $FileList[1]"
    	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^

    Müsste durch das _FileListToArray Filelist[1] nicht die erste Datei in dem Ordner ausgeben?

    mfg
    Manu

    Einmal editiert, zuletzt von ManuIt (18. Oktober 2007 um 08:25)

  • Hi,

    ja, der Index0 enthält die erste Datei. Du suchst aber sowohl nach Dateien als auch nach Ordnern (*.). Ausserdem solltest Du Dir noch den dritten Parameter der Funktion anschauen!
    Hilfe hilft!!!

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #Include <Array.au3>
    $FileList=_FileListToArray(@DesktopDir)
    If @Error=1 Then
    MsgBox (0,"","No Files\Folders Found.")
    Exit
    EndIf
    _ArrayDisplay($FileList,"$FileList")

    [/autoit]
  • Ich habs mal nach Xeno's Info versucht.
    Leider passiert nichts (Es fügt die Drucker nicht hinzu).


    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <File.au3>
    #Include <Array.au3>

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

    Opt("GUIOnEventMode", 1)
    $Gui1 = GUICreate("Stockwerk", "701", "661")
    GUISetOnEvent($GUI_EVENT_CLOSE, "Exit2")
    GUICtrlCreateButton("Obergeschoss 1", "50", "50")
    GUICtrlSetOnEvent(-1, "Og1")
    GUICtrlCreateButton("Obergeschoss 2", "50", "150")
    GUICtrlSetOnEvent(-1, "Og2")
    GUICtrlCreateButton("Obergeschoss 3", "50", "250")
    GUICtrlSetOnEvent(-1, "Og3")
    GUICtrlCreateButton("Obergeschoss 4", "50", "350")
    GUICtrlSetOnEvent(-1, "Og4")
    GUICtrlCreateButton("Obergeschoss 5", "50", "450")
    GUICtrlSetOnEvent(-1, "Og5")
    GUICtrlCreateButton("Obergeschoss 6", "50", "550")
    GUICtrlSetOnEvent(-1, "Og6")
    $Exit = GUICtrlCreateMenu("Beenden")
    GUICtrlCreateMenuitem("Exit", $Exit)
    GUICtrlSetOnEvent(-1, "ExitMenu")
    GUISetState(@SW_SHOW, $Gui1)
    $msgn = "ERROR!!!!!!! "
    $n = "ERROR!!!!! "
    $ort = "ERROR!!!!! "
    Dim $Array

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

    $Gui2 = GUICreate("Ort", "701", "661")
    GUISetOnEvent($GUI_EVENT_CLOSE, "Exit2")
    $Zens = GUICtrlCreateButton("Zens", "20", "200")
    GUICtrlSetOnEvent(-1, "Zens")
    $Zens = GUICtrlCreateButton("Zens", "600", "300")
    GUICtrlSetOnEvent(-1, "Zens")
    $Zens = GUICtrlCreateButton("Zens", "20", "500")
    GUICtrlSetOnEvent(-1, "Zens")
    $Exit = GUICtrlCreateMenu("Beenden")
    GUICtrlCreateMenuitem("Exit", $Exit)
    GUICtrlSetOnEvent(-1, "ExitMenu")
    GUISetState(@SW_HIDE, $Gui2)

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

    While 1
    Sleep(100)
    WEnd

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

    ;####################################- OBERGESCHOSSE -###########################################
    Func Og1()
    $msgn = "ers"
    $n = "1."
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og1

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

    Func Og2()
    $msgn = "zwei"
    $n = "2."
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og2

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

    Func Og3()
    $msgn = "drit"
    $n = "3."
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og3

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

    Func Og4()
    $msgn = "vier"
    $n = "4."
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og4

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

    Func Og5()
    $msgn = "fünf"
    $n = "5."
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og5

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

    Func Og6()
    $msgn = "sechs"
    $n = "6."
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og6
    ;###################################- Ende OBERGESCHOSSE -#######################################

    Func Zens()
    $ort = "Zens"
    $FileList = _FileListToArray("\\Zens\Zens\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort)
    Run(@COMSPEC & "\\Zens\Zens\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort & "\" & $FileList[1])
    MsgBox(0, "Zens Drucker", "Die Drucker des " & $msgn & "ten Stockes am Zens wurden eingerichtet.")
    Exit
    EndFunc ;==>Zens

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

    Func Zens()
    $ort = "Zens"
    MsgBox(0, "Zens Drucker", "Die Drucker des " & $msgn & "ten Stockes am Zens wurden eingerichtet.")
    Exit
    EndFunc ;==>Zens

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

    Func Zens()
    $ort = "Zens"
    MsgBox(0, "Zens Drucker", "Die Drucker des " & $msgn & "ten Stockes an der Zens wurden eingerichtet.")
    Exit
    EndFunc ;==>Zens

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

    _FileReadToArray ("\\Zens\Zens\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort, $Array)
    ShellExecute ($Array[1],"","\\Zens\Zens\Group\Public\Printers\" & $n & " Obergeschoss\" & $ort & "\","",@SW_SHOW)
    Func ExitMenu()
    Exit
    EndFunc ;==>ExitMenu

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

    Func Exit2()
    Exit
    EndFunc ;==>Exit2

    [/autoit]

    @teh hahn
    Ich hab mir das Beispiel schon längstens angeschaut.
    Danke für die korrektur^^ ich wollte es erst mit run machen, deshalb der fehler :D

    mfg
    Manu

    3 Mal editiert, zuletzt von ManuIt (18. Oktober 2007 um 09:12)

  • Habe jetzt eine lösung:


    Habe aber auch ein neues Problem:
    Es gibt die Fehlermeldung aus:

    The Parameter is incorrect.

    Was muss ich denn als Parameter eingeben?
    Die Help Files, Tutorials und Foren hab ich durchsucht! :comp2: :D :irre:

    3 Mal editiert, zuletzt von ManuIt (18. Oktober 2007 um 11:35)

  • Ich hab rausgefunden, dass das Problem ein Array ist.
    Hier der Code:


    [autoit]

    Dim $Array

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

    Func zzzz()
    $ort = "zzzzz"
    $Array = _FileListToArray ("\\zzzzzzz\zzzzzz\Group\Public\Printers\" & $n & "Obergeschoss\" & $ort,(""),1)
    For $i = 1 To $Array[0]
    ShellExecute ("\\zzzzzz\zzzzzz\Group\Public\Printers\" & $n & "Obergeschoss\" & $ort & "\" & $Array[$i])
    Next

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

    MsgBox(0, "zzzzz Drucker", "Die Drucker des " & $msgn & "ten Stockes an der zzzz wurden eingerichtet.")
    Exit
    EndFunc ;==>zzzzzzz

    [/autoit]

    Was muss ich ändern, damit der Array funktioniert?
    Als Fehler gibt es aus

    Code
    For $i = 1 To $Array[0]
    For $i = 1 To $Array^ERROR
    Error: Subscript used with non-Array variable

    2 Mal editiert, zuletzt von ManuIt (18. Oktober 2007 um 12:21)

  • Hi,
    das bedeutet, dass die Zeile:

    [autoit]

    $Array = _FileListToArray ("\\zzzzzzz\zzzzzz\Group\Public\Printers\" & $n & "Obergeschoss\" & $ort,(""),1)

    [/autoit]

    kein Array zurück gegeben hat, d.h. in dem Verzeichnis befinden sich keine Dateien. Danach einmal mit

    [autoit]

    IsArray($Array)

    [/autoit]

    prüfen und danach die For-Schleife...

  • :comp2::lol: :comp2:

    Aber in dem Verzeichnis sind Dateien.
    Ausserdem gibt es mir den korrekten Pfad und Dateinamen aus wenn ich ne msgbog reinpacke mit:\\zzzzzzz\zzzzzz\Group\Public\Printers\" & $n & "Obergeschoss\" & $ort & $Array

    Verbugtes autoIt ;(

  • Glaube ich nicht. Ausserdem wäre es nicht Autoit, sondern nur eine UDF. mach mal _ArrayDisplay zum debuggen und überprüf den Pfad erneut. Im Beispiel funktioniert es auch, könnte natürlich sein, dass er sich am UNC-Pfad verschluckt. Mapst du den Pfad vorher auch?

  • Schlau von dir, mir nicht zu glauben, ich erzäle meistens stuss. :D
    Aber das ist echt die Warheit.
    Ich habe zu beginn natürlich mit _ArrayDisplay gearbeitet und es hat mir die beiden Dateien angezeigt.

  • Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>
    #include <File.au3>
    #Include <Array.au3>

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

    Opt("GUIOnEventMode", 1)
    $Gui1 = GUICreate("Stockwerk", "701", "661")
    GUISetOnEvent($GUI_EVENT_CLOSE, "Exit2")
    GUICtrlCreateButton("Obergeschoss 1", "50", "50")
    GUICtrlSetOnEvent(-1, "Og1")
    GUICtrlCreateButton("Obergeschoss 2", "50", "150")
    GUICtrlSetOnEvent(-1, "Og2")
    GUICtrlCreateButton("Obergeschoss 3", "50", "250")
    GUICtrlSetOnEvent(-1, "Og3")
    GUICtrlCreateButton("Obergeschoss 4", "50", "350")
    GUICtrlSetOnEvent(-1, "Og4")
    GUICtrlCreateButton("Obergeschoss 5", "50", "450")
    GUICtrlSetOnEvent(-1, "Og5")
    GUICtrlCreateButton("Obergeschoss 6", "50", "550")
    GUICtrlSetOnEvent(-1, "Og6")
    $Exit = GUICtrlCreateMenu("Beenden")
    GUICtrlCreateMenuitem("Exit", $Exit)
    GUICtrlSetOnEvent(-1, "ExitMenu")
    GUISetState(@SW_SHOW, $Gui1)
    $msgn = "ERROR!"
    $n = "ERROR!"
    $ort = "ERROR!"
    Dim $Array

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

    $Gui2 = GUICreate("Ort", "701", "661")
    GUISetOnEvent($GUI_EVENT_CLOSE, "Exit2")
    $Zens = GUICtrlCreateButton("Zens", "20", "200")
    GUICtrlSetOnEvent(-1, "Zens")
    $Zens = GUICtrlCreateButton("Zens", "600", "300")
    GUICtrlSetOnEvent(-1, "Zens")
    $Zens = GUICtrlCreateButton("Zens", "20", "500")
    GUICtrlSetOnEvent(-1, "Zens")
    $Exit = GUICtrlCreateMenu("Beenden")
    GUICtrlCreateMenuitem("Exit", $Exit)
    GUICtrlSetOnEvent(-1, "ExitMenu")
    GUISetState(@SW_HIDE, $Gui2)

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

    While 1
    Sleep(100)
    WEnd

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

    ;####################################- OBERGESCHOSSE -###########################################
    Func Og1()
    $msgn = "ers"
    $n = "1"
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og1

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

    Func Og2()
    $msgn = "zwei"
    $n = "2"
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og2

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

    Func Og3()
    $msgn = "drit"
    $n = "3"
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og3

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

    Func Og4()
    $msgn = "vier"
    $n = "4"
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og4

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

    Func Og5()
    $msgn = "fünf"
    $n = "5"
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og5

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

    Func Og6()
    $msgn = "sechs"
    $n = "6"
    GUISetState(@SW_HIDE, $Gui1)
    GUISetState(@SW_SHOW, $Gui2)
    GUICtrlCreatePic(@ScriptDir & "\System\Zens.bmp", "5", "5", "691", "631")
    EndFunc ;==>Og6
    ;###################################- Ende OBERGESCHOSSE -#######################################

    Func Zens()
    $ort = "Zens"
    MsgBox(0, "Zens Drucker", "Die Drucker des " & $msgn & "ten Stockes am Zens wurden eingerichtet.")
    Exit
    EndFunc ;==>Zens

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

    Func Zens()
    $ort = "Zens"
    MsgBox(0, "Zens Drucker", "Die Drucker des " & $msgn & "ten Stockes am Zens wurden eingerichtet.")
    Exit
    EndFunc ;==>Zens

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

    Func Zens()
    $ort = "Zens"
    $Array = _FileListToArray ("\\Zens\Zens\Group\Public\Printers\" & $n & "Obergeschoss\" & $ort,(""),1)
    For $i = 1 To $Array[0]
    ShellExecute ("\\Zens\Zens\Group\Public\Printers\" & $n & "Obergeschoss\" & $ort & "\" & $Array[$i])
    Next

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

    MsgBox(0, "Zens Drucker", "Die Drucker des " & $msgn & "ten Stockes an der Zens wurden eingerichtet.")
    Exit
    EndFunc ;==>Zens

    Func ExitMenu()
    Exit
    EndFunc ;==>ExitMenu

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

    Func Exit2()
    Exit
    EndFunc ;==>Exit2

    [/autoit]

    Voilà, viel Spass & Dank

    MfG
    Manu


    EDIT:

    Noch zur Frage wegen dem mappen: es muss nicht gemappt sein, um darauf zuzugreifen.

    EDIT2: :comp2: :comp2: :comp2: :hm: :hammer: :rofl: :lol: :help: :comp2: :comp2:

    sry das musste sein... ;(

    3 Mal editiert, zuletzt von ManuIt (18. Oktober 2007 um 16:43)

  • Hi,

    mann, mann mann. Hab mich eben mal ran gesetzt und schnell folgendes gebastelt:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #Include <Array.au3>
    #include <File.au3>
    #include <GUIConstants.au3>

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

    main()

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

    Func OnAutoItStart()
    Opt("GUICoordMode", 2)
    Opt("MustDeclareVars", 1)
    EndFunc ;==>OnAutoItStart

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

    Func main()
    Local $ah_ogbts[2], $as_files = 0
    Local $h_zensbt = 0, $h_filemenu = 0, $h_exitmitem = 0, $h_msg = 0
    Local $s_path = "", $s_ogtext = ""
    Local $j = 1, $i_tmpog = 0, $i_og = 0

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

    GUICreate("Stockwerk", 320, 240)
    GUISetCoord(10, -20, 100, 20)
    For $i = 1 To 6
    ReDim $ah_ogbts[$j + 1]
    $ah_ogbts[$j] = GUICtrlCreateButton("Obergeschoss " & $i, -1, 10)
    $j += 1
    Next
    $ah_ogbts[0] = $j - 1

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

    $h_zensbt = GUICtrlCreateButton("&Zens", -1, 10)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $h_filemenu = GUICtrlCreateMenu("&File")
    $h_exitmitem = GUICtrlCreateMenuItem("E&xit", $h_filemenu)
    GUISetState()

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

    While 1
    $h_msg = GUIGetMsg()
    Switch $h_msg
    Case $GUI_EVENT_CLOSE, $h_exitmitem
    Exit
    Case $h_zensbt
    GUISetState(@SW_DISABLE)
    SplashTextOn("NOTICE", "Please wait...", 120, 60)
    $as_files = _FileListToArray($s_path, ("*.exe"), 1) ;~ To-Do: Pattern an Extension anpassen!
    If @error = 1 Then
    MsgBox(16 + 262144, "ERROR", $s_path & " not found or invalid!")
    Exit (1)
    ElseIf @error = 4 Then
    MsgBox(16 + 262144, "ERROR", "No file(s) found in " & $s_path & "!")
    Exit (2)
    EndIf
    SplashOff()
    GUISetState(@SW_ENABLE)

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

    For $i = 1 To $as_files[0]
    ShellExecute($s_path & "\" & $as_files[$i])
    Next

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

    Switch $i_og
    Case 1
    $s_ogtext = "ers"
    Case 2
    $s_ogtext = "zwei"
    Case 3
    $s_ogtext = "drit"
    Case 4
    $s_ogtext = "vier"
    Case 5
    $s_ogtext = "fünf"
    Case 6
    $s_ogtext = "sechs"
    EndSwitch

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

    MsgBox(64, "Zens Drucker", "Die Drucker des " & $s_ogtext & "ten Stockes an der Zens wurden eingerichtet.")
    Exit
    EndSwitch

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

    $i_tmpog = _ArraySearch($ah_ogbts, $h_msg)
    If $i_tmpog <> -1 Then
    $i_og = $i_tmpog
    $s_path = "\\Zens\Zens\Group\Public\Printers\" & $i_og & "Obergeschoss\Zens"
    For $i = 1 To $ah_ogbts[0]
    GUICtrlSetState($ah_ogbts[$i], $GUI_DISABLE)
    Next
    GUICtrlSetState($h_zensbt, $GUI_ENABLE)
    GUICtrlCreatePic(@ScriptDir & "\system\Zens.bmp", 120, 10, 200, 240) ;~ To-Do: An aktuelle GUI-Begebenheiten anpassen!
    EndIf
    WEnd
    EndFunc ;==>main

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

    Func OnAutoItExit()
    GUIDelete()
    EndFunc ;==>OnAutoItExit

    [/autoit]

    CHANGES:
    1. GUI Message-Loop Modus (OnEvent ist völlig unangebracht bei den paar Controls!)
    2. Obergeschoss-Buttons werden in einer Schleife generiert.
    3. Es ist nur eine GUI notwendig. Sobald ein Obergeschoss ausgewählt wurde, wird der Zend-Button auf enabled gesetzt und die Obergeschoss-Buttons auf disabled.
    usw...

    Worauf ich bei Deinem Quellcode gar nicht klar komme ist folgendes:
    $Zens wird dreimal definiert, es befinden sich drei Zens-Funktionen in deinem Skript! WTF?!? Sind wird hier OO und überladen Funktionen oder was? DAS WIRD NIEMALS FUNKTIONIEREN!!!
    Schau Dir mal den String des Pfades an! Sicher das der stimmt? Jetzt hast Du zumindest mal eine Fehlermeldung als Rückgabe...

    Ich halte das Skript aber immer noch für relativ gehaltlos...

    • Offizieller Beitrag

    teh_hahn:

    Zitat

    1. GUI Message-Loop Modus (OnEvent ist völlig unangebracht bei den paar Controls!)


    Völlig unangebracht kann ich nicht behaupten.
    Selbst bei einem einzigen Control verwende ich z.B.auch OnEvent-Mode.
    Hintergrund:
    Wer z.B. Programmiererfahrungen im Bereich VB hat fühlt sich im OnEvent-Mode sofort heimisch.;)
    Ich finde die Übersicht im Code wesentlich besser, wenn alles sauber in Funktionen gegliedert ist.

    Aber letztlich bleibt:
    Da beide Variante möglich sind, sollte es auch dem jeweiligen freigestellt bleiben, was ihm denn mehr zusagt.
    Spätestens bei komplexen Skripten wird eh die Tendenz zum OnEvent-Mode steigen.

  • Ja, das stimmt schon. Dann halt "unnötig". Was mich am OnEvent einfach nervt, ist dass Funktionen, die durch ein Control aufgerufen werden, keine Parameter im Funktionskopf enthalten dürfen (es sei denn man bastelt sich eine Hilfsfunktion, Variablen bleiben aber immer Global).
    Ich gebe Dir aber Recht, das bei komplexen Skripten der OnEvent-Modus effizienter ist (speziell bei "Threads", die selbst in der main-While laufen müssen...)!

    EDIT: Das da oben sollte man natürlich auch in Funktionen kapseln. Hatte ich aber eben kein Bock zu und auf Globals steh ich wie gesagt überhaupt nicht...

    Einmal editiert, zuletzt von teh_hahn (18. Oktober 2007 um 21:48)

  • Vielen Dank für deine Hilfe.
    Zens steht für Zensur.

    Ich habe dein script angepasst.
    Wieder das selbe Problem:
    Es findet den Pfad aber meldet das der Parameter inkorrekt ist.
    (ich habe dein *.exe auf *.lnk gändert, weil es verknüpfungen sind)
    Ist das ein Bug??
    MfG

    ManuIt

    Hier noch ein prntscrn:

  • Ja, ich habe genug Rechte.
    Es lokal zu versuchen bringt mir nix? (Viel Aufwand & wenig Sinn)
    Ich habe natürlich den Pfad auch schon gemappt und es Über S:\ versucht, was auch fehlschlug.
    ich schreib es mit einem kleinen L.
    Aber es kommt eh nicht drauf an, denn es finded die datei ja, das problem ist das ausführen.
    Zum Ausführen benutzt es den vorher gefundenen Dateinamen unter dem gewählten Pfad.

    mfg

    ManuIt


    Edit: Es kann doch nicht sein, dass es in ein Verzeichnis geht, die Dateien von dort ausliest und dann wieder ins selbe Verzeichnis geht und dort die selben Dateien nicht mehr findet!!

    Edit2: Es hat doch so viele Profis hier... kann mir denn niemand helfen?
    Ich habe noch nie mit Arrays gearbeitet... vielleicht liegt dort der Fehler...
    :help:


    Edit3: Hier noch die Fehlermeldungen die ich kriege:

    fm1 bei teh hahns script und fm2 bei meinem.