1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. DerSchatten

Beiträge von DerSchatten

  • Combobox nach Focusverlust auslösen

    • DerSchatten
    • 2. August 2011 um 16:10

    Gibt es eine Möglichkeit bereits nach dem verlassen einer ComboBox mit dem ausgewählten Wert eine Funktion auszulösen?

  • Enter in Listbox

    • DerSchatten
    • 2. August 2011 um 14:01

    Das würde mich auch interessieren.

    Aber generell auch für Inputfelder, Editfelder, etc...

    Es gibt da noch die Funktion HotKeySet, aber die prüft den Tastendruck auch nicht im aktiven Control.

  • ProgressBar stockt bei angeklicktem Fenster

    • DerSchatten
    • 2. August 2011 um 09:49
    Zitat von name22

    Wenn du das Fenster eines AutoIt Scripts mit der Maus verschiebst, wird das Script pausiert


    Genau das ist es.
    Das Script könnte ich zwar reinstellen, würde aber nicht laufen weil es für diese Funktion eine externe hardware vorraussetzt mit denen meine Command-Befehle laufen.

    Vielleicht könntest du mir ein Beispiel mit einer Timer-Funktion geben. Läßt sich damit das Fenster sperren?

  • ProgressBar stockt bei angeklicktem Fenster

    • DerSchatten
    • 1. August 2011 um 23:14

    Ich habe mir eine Funktion für eine ProgressBar erstellt die mit einer Schleife auf Zeit abläuft:

    [autoit]


    ;GUI Fortschritt
    $gui_progressbar = GUICreate("Lesen/Schreiben", 300, 100)
    GUICtrlCreateLabel("Vorgang läuft ...", 12, 10, 300, 18)
    GUICtrlSetFont(-1, 9, 600, 0)
    $progressbar = GUICtrlCreateProgress(10, 40, 280, 20)
    $label_progressbar = GUICtrlCreateLabel("", 12, 70, 40, 18)

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

    Func _getDOSOutput($command, $zeitende)
    Local $text, $Pid = Run('"' & @ComSpec & '" /c ' & $command, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    _ProgressBar($zeitende)
    While 1
    $text &= StdoutRead($Pid)
    If @error Then ExitLoop
    GUICtrlSetData($edit_dir, GUICtrlRead($edit_dir) & $text)
    Sleep(10)
    WEnd
    Return $text
    EndFunc

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

    Func _ReadIECOK()
    _ReadIECClose()
    Local $ext, $progress, $ordnername = GUICtrlRead($input_ordnername)
    If GUICtrlRead($radio1) = $GUI_CHECKED Then
    $ext = ".d64"
    $progress = 750
    $lesen = "d64copy.exe -t auto -d " & GUICtrlRead($combo_laufwerktyp) & " " & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & GUICtrlRead($input_dateinameimage) & $ext & '" '
    ElseIf GUICtrlRead($radio2) = $GUI_CHECKED Then
    $ext = ".d64"
    $progress = 4590
    $lesen = "d64copy.exe -t original -d " & GUICtrlRead($combo_laufwerktyp) & " " & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & GUICtrlRead($input_dateinameimage) & $ext & '" '
    ElseIf GUICtrlRead($radio3) = $GUI_CHECKED Then
    $ext = ".d64"
    $progress = 1460
    $lesen = "d64copy.exe -t serial1 -d " & GUICtrlRead($combo_laufwerktyp) & " " & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & GUICtrlRead($input_dateinameimage) & $ext & '" '
    ElseIf GUICtrlRead($radio4) = $GUI_CHECKED Then
    $ext = ".d64"
    $progress = 750
    $lesen = "d64copy.exe -t serial2 -d " & GUICtrlRead($combo_laufwerktyp) & " " & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & GUICtrlRead($input_dateinameimage) & $ext & '" '
    ElseIf GUICtrlRead($radio5) = $GUI_CHECKED Then
    $ext = ".nbz"
    $progress = 300
    $lesen = "nibread.exe -D" & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & GUICtrlRead($input_dateinameimage) & $ext & '" '
    EndIf
    If FileExists($ordnername & GUICtrlRead($input_dateinameimage) & $ext) Then
    If MsgBox(52, "Hinweis", "Datei existiert bereits. Überschreiben?") = 6 Then
    FileDelete ($ordnername & GUICtrlRead($input_dateinameimage) & $ext)
    Else
    _ReadIEC()
    Return 0
    EndIf
    EndIf
    $dir = _getDOSOutput($lesen, $progress)
    GUICtrlSetData($edit_dir, $dir)
    EndFunc

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

    Func _ProgressBarStart()
    GUISetState(@SW_DISABLE, $gui_main)
    GUISetState(@SW_SHOW, $gui_progressbar)
    EndFunc
    Func _ProgressBarStop()
    GUISetState(@SW_ENABLE, $gui_main)
    GUISetState(@SW_HIDE, $gui_progressbar)
    EndFunc

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

    Func _ProgressBar($zeit)
    _ProgressBarStart()
    Sleep(3000) ;3 Sekunde warten
    For $i = 0 To 100
    GUICtrlSetData($progressbar, $i)
    GUICtrlSetData($label_progressbar, $i & "%")
    Sleep($zeit)
    Next
    GUICtrlSetData($label_progressbar, "Fertig!")
    Sleep(1000) ;1 Sekunde warten
    _ProgressBarStop()
    EndFunc

    [/autoit]

    Das Unschöne dabei ist allerdings, wenn man das Fenster mit der Bar mit der Maus gedrückt hält, wird die Bar angehalten sollange man die Maus gedrückt hält und setzt dann bei der letzten Stelle fort. Der Vorgang meiner Funktion läuft natürlich im Hintergrund weiter und ist dann beendet wärend die Bar noch läuft.

    Hat da jemand vielleicht eine Idee dazu?

  • DOS-Ausgabe in Echtzeit nach AutoIt umleiten

    • DerSchatten
    • 1. August 2011 um 20:35

    Das funktioniert grundsätzlich, danke!

    Nur flackert die Ausgabe recht stark und sie erfolgt nicht Zeilenweise, sondern alles in einer Wurst.
    Kann ich irgendwie die Zeilensprünge abfragen? Sodass er mir danach eine neue Zeile beginnt.

  • ListViewItem mit Datei füllen

    • DerSchatten
    • 1. August 2011 um 09:14

    Jemand vielleicht noch eine Idee dazu?

    habs inzwischen noch damit versucht:

    [autoit]


    Func _ImageOpen()
    Local $dateiauswahl, $ordnername = GUICtrlRead($input_ordnername)
    If StringRight($ordnername, 1) <> "\" Then $ordnername &= "\"
    If $ordnername = "" Then Return MsgBox(16, "Fehler", "Es wurde kein Verzeichnispfad ausgewählt!", 0, $gui_main)
    $dateiauswahl = _GUICtrlListView_GetSelectedIndices($listview_dateiliste, True)
    If $dateiauswahl[0] = 0 Then Return MsgBox(16, "Fehler", "Es wurde keine Datei ausgewählt!", 0, $gui_main)
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Disketten-Image auslesen ...")
    For $i = 1 To $dateiauswahl[0]
    $dir = _getDOSOutput("c1541.exe " & '"' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste, $dateiauswahl[$i]) & '"' & " -list")
    $dir_name = StringUpper(StringMid($dir, 4, 16))
    $dir_id = StringUpper(StringMid($dir, 21, 6))
    Local $dir_kurz = StringAddCR(StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 27)))
    _ArrayDisplay($dir_kurz)
    GUICtrlSetData($edit_name, $dir_name)
    GUICtrlSetData($edit_id, $dir_id)
    GUICtrlSetData($edit_dir, $dir_kurz)
    Next
    For $l = 1 To UBound($dir_kurz) - 1
    GUICtrlCreateListViewItem($dir_kurz[$l], $edit_dir_list)
    Next
    GUICtrlSetData($edit_vorgang, "")
    EndFunc

    [/autoit]

    Ich denke das Problem ist das ich meinen String (dir_kurz) zuerst einmal in ein Array bringen muß. Zeilensprünge sind darin ebreits enthalten.

  • DOS-Ausgabe in Echtzeit nach AutoIt umleiten

    • DerSchatten
    • 29. Juli 2011 um 23:40

    Ich bekomms einfach nicht hin. Verzweifel...

  • DOS-Ausgabe in Echtzeit nach AutoIt umleiten

    • DerSchatten
    • 29. Juli 2011 um 22:09

    Ok, Console, wie auch immer sich das Teil nennt :)

    Dieses Beispiel hatte ich auch schon entdeckt, und zuvor schon StdoutRead verwendet.

    Damit bekomme ich aber nur eine Ausgabe, wenn der Befehl abgearbeitet ist.

    Liegt es vielleicht daran, dass die Zeilensprünge in der Ausgabe nicht richtig erkannt werden?

    Das beispiel alleine bringt mir auch nur eine leere msgbox.


    Kurz gebastelt:

    Code
    #include <Constants.au3>
    Local $foo = Run(@ComSpec & " /c dir C:\Windows", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    Local $line
    While 1
        $line = StdoutRead($foo)
        If @error Then ExitLoop
        MsgBox(0, "STDOUT gelesen:", $line)
    WEnd

    Bringt zuerst eine leere msg und nach ok das Inhaltsverzeichnis.

  • DOS-Ausgabe in Echtzeit nach AutoIt umleiten

    • DerSchatten
    • 29. Juli 2011 um 21:32

    Ich möchte gerne wärend ein Befehl im DOS-Command abgearbeitet wird in Echtzeit die Ausgabe in ein Eingabefeld umleiten.

    Dabei bin ich auf den Befehl StderrRead gestoßen und habe folgendes versucht:

    [autoit]


    $edit_dir = GUICtrlCreateEdit("", 404, 72, 282, 334, $ES_READONLY+$WS_VSCROLL)

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

    Func _getDOSOutput($command)
    Local $text = "", $Pid = Run('"' & @ComSpec & '" /c ' & $command, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
    While 1
    $text &= StderrRead($Pid, False, False)
    If @error Then ExitLoop
    GUICtrlSetData($edit_dir, $text)
    Sleep(10)
    WEnd
    EndFunc

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

    $schreiben = "nibwrite.exe -D" & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '"'
    $dir = _getDOSOutput($schreiben)
    GUICtrlSetData($edit_dir, $dir)

    [/autoit]

    Allerdings bekomme ich rein gar nichts angezeigt.

    Bin ich hier am richtigen Wege oder geht das vielleicht gar nicht?

  • ListViewItem mit Datei füllen

    • DerSchatten
    • 29. Juli 2011 um 14:46

    Oki,

    hier nochmal das inzwischen etwas veränderte Script:

    [autoit]


    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #Include <File.au3>
    #Include <Array.au3>
    #include <Constants.au3>
    Opt('GUIOnEventMode', 1)
    ;GUI Main
    $gui_main = GUICreate("Zoom Copy 64", 1200, 600)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
    GUICtrlCreateGroup("Verzeichnis am lokalen PC", 8, 24, 286, 445)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("Verzeichnis am IEC", 394, 24, 370, 445)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $input_ordnername = GUICtrlCreateInput("D:\Downloads", 18, 48, 232, 21, BitOR($ES_LEFT, $ES_AUTOHSCROLL))
    $button_dateiauswahl = GUICtrlCreateButton("...", 254, 47, 30, 23)
    GUICtrlSetOnEvent(-1, '_AuswahlPfad')
    GUICtrlCreateLabel("Datei Filter:", 56, 107, 80, 18)
    GUICtrlSetFont(-1, 9, 600, 0)
    $combo_laufwerktyp = GUICtrlCreateCombo("", 140, 104, 143, 21)
    GUICtrlSetData(-1, "Alle Dateien|Image Dateien|Nibtools Dateien|D64 Dateien|D71 Dateien|D81 Dateien|G64 Dateien|NIB Dateien", "Alle Dateien")
    $button_refresh = GUICtrlCreateButton("Pfad speichern", 17, 74, 84, 25)
    GUICtrlSetTip(-1, "Verzeichnispfad speichern")
    GUICtrlSetOnEvent(-1, '_DirSave')
    $button_refresh = GUICtrlCreateButton("Neu laden", 200, 74, 84, 25)
    GUICtrlSetTip(-1, "Verzeichnis neu einlesen")
    GUICtrlSetOnEvent(-1, '_DirOpen')
    $listview_dateiliste = GUICtrlCreateListView("Dateiname", 18, 128, 265, 330)
    $combo_laufwerktyp = GUICtrlCreateCombo("", 304, 104, 80, 21)
    GUICtrlSetData(-1, "1541|1571", "1541")
    GUICtrlSetTip(-1, "Laufwerkstyp auswählen")
    GUICtrlCreateGroup("Übertragung", 304, 128, 80, 120)
    $radio1 = GUICtrlCreateRadio("Auto", 312, 147, 60, 14)
    $radio2 = GUICtrlCreateRadio("Original", 312, 167, 60, 14)
    $radio3 = GUICtrlCreateRadio("Seriell 1", 312, 187, 60, 14)
    $radio4 = GUICtrlCreateRadio("Seriell 2", 312, 207, 60, 14)
    $radio5 = GUICtrlCreateRadio("Parallel", 312, 227, 60, 14)
    GUICtrlSetState ($radio1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $combo_laufwerkid = GUICtrlCreateCombo("", 691, 47, 65, 21)
    GUICtrlSetData(-1, "8|9|10|11", "8")
    GUICtrlSetTip(-1, "Laufwerk-ID auswählen")
    GUICtrlCreateLabel("Laufwerk:", 691, 385, 60, 18)
    GUICtrlSetFont(-1, 9, 600, 0)
    GUICtrlCreateLabel("Disk:", 691, 76, 34, 18)
    GUICtrlSetFont(-1, 9, 600, 0)
    $edit_name = GUICtrlCreateEdit("", 404, 47, 207, 21, $ES_READONLY)
    GUICtrlSetTip(-1, "Diskettenname")
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xEEDBCD)
    $edit_id = GUICtrlCreateEdit("", 615, 47, 71, 21, $ES_READONLY)
    GUICtrlSetTip(-1, "Disketten-ID")
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xEEDBCD)
    $edit_dir_list = GUICtrlCreateListView("Dateiname", 792, 72, 280, 334)
    $edit_dir = GUICtrlCreateEdit("", 404, 72, 282, 334, $ES_READONLY+$WS_VSCROLL)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xCDDAEE)
    $edit_status = GUICtrlCreateEdit("", 404, 410, 282, 21, $ES_READONLY)
    GUICtrlSetTip(-1, "Letzter Laufwerksstatus")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xCDDAEE)
    $edit_vorgang = GUICtrlCreateEdit("", 404, 438, 282, 21, $ES_READONLY)
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xD6EECD)
    $button_dir = GUICtrlCreateButton("Verzeichnis", 691, 98, 65, 25)
    GUICtrlSetTip(-1, "Verzeichnis im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " auslesen")
    GUICtrlSetOnEvent(-1, '_DirIEC')
    $button_format = GUICtrlCreateButton("Format", 691, 137, 65, 25)
    GUICtrlSetTip(-1, "Diskette im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " formatieren")
    GUICtrlSetOnEvent(-1, '_FormatIEC')
    $button_init = GUICtrlCreateButton("Initialisieren", 691, 165, 65, 25)
    GUICtrlSetTip(-1, "Laufwerk " & GUICtrlRead($combo_laufwerkid) & " initialisieren")
    GUICtrlSetOnEvent(-1, '_InitIEC')
    $button_valid = GUICtrlCreateButton("Überprüfen", 691, 193, 65, 25)
    GUICtrlSetTip(-1, "Dateisystem im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " auf Fehler überprüfen")
    GUICtrlSetOnEvent(-1, '_CheckIEC')
    $button_status = GUICtrlCreateButton("Status", 691, 408, 65, 25)
    GUICtrlSetTip(-1, "Fehlerkanal von Laufwerk " & GUICtrlRead($combo_laufwerkid) & " auslesen")
    GUICtrlSetOnEvent(-1, '_StatusIEC')
    $button_reset = GUICtrlCreateButton("Reset", 691, 436, 65, 25)
    GUICtrlSetTip(-1, "Laufwerk " & GUICtrlRead($combo_laufwerkid) & " zurücksetzen")
    GUICtrlSetOnEvent(-1, '_ResetIEC')
    $button_schreiben = GUICtrlCreateButton("Schreiben", 302, 300, 65, 25)
    GUICtrlSetOnEvent(-1, '_WriteIEC')
    $button_schreiben = GUICtrlCreateButton("Lesen", 302, 340, 65, 25)
    GUICtrlSetOnEvent(-1, '_ReadIEC')
    $button_image = GUICtrlCreateButton("Öffnen", 302, 380, 65, 25)
    GUICtrlSetOnEvent(-1, '_ImageOpen')

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

    ;GUI Format
    $gui_format = GUICreate("Diskette im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " formatieren", 392, 136)
    $input_formatname = GUICtrlCreateInput("leer", 20, 48, 140, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetLimit(-1, 16)
    $input_formatid = GUICtrlCreateInput("01", 170, 48, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetLimit(-1, 2)
    $button_formatok = GUICtrlCreateButton("OK", 8, 82, 89, 25)
    GUICtrlSetOnEvent(-1, '_FormatIECOK')
    $button_formatbeenden = GUICtrlCreateButton("Schließen", 288, 82, 89, 25)
    GUICtrlSetOnEvent(-1, '_FormatIECClose')
    ;starte mit HauptGUI
    GUISetState(@sw_show, $gui_main)
    WinWaitClose($gui_main)
    Exit
    Func _CloseGui()
    GUIDelete($gui_main)
    EndFunc
    Func _getDOSOutput($command)
    Local $text = "", $Pid = Run('"' & @ComSpec & '" /c ' & $command, "", @SW_HIDE, 2 + 4)
    While 1
    $text &= StdoutRead($Pid, False, False)
    If @error Then ExitLoop ;MsgBox(16, "Fehler", "Kein IEC-Gerät gefunden!", 0, $gui_main)
    Sleep(10)
    WEnd
    Return $text
    EndFunc
    Func _DirIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Verzeichnis auslesen ...")
    $dir = _getDOSOutput("cbmctrl.exe dir " & GUICtrlRead($combo_laufwerkid))
    $dir_status = StringMid($dir, StringInStr($dir, ",", 0, -3) - 2)
    If StringInStr($dir, "0 .") <> 0 Then
    $dir_name = StringUpper(StringMid($dir, StringInStr($dir, '"') + 1 , 16))
    GUICtrlSetData($edit_name, $dir_name)
    $dir_id = StringUpper(StringMid($dir, StringInStr($dir, '"', 0, 2) + 1 , 6))
    GUICtrlSetData($edit_id, $dir_id)
    $dir_kurz = StringAddCR(StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 29)))
    GUICtrlSetData($edit_dir, $dir_kurz)
    EndIf
    GUICtrlSetData($edit_status, $dir_status)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _FormatIEC()
    GUISetState(@SW_DISABLE, $gui_main)
    GUISetState(@SW_SHOW, $gui_format)
    EndFunc
    Func _FormatIECOK()
    _FormatIECClose()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Diskette formatieren ...")
    $format = _getDOSOutput("cbmformat.exe -s " & GUICtrlRead($combo_laufwerkid) & ' "' & GUICtrlRead($input_formatname) & '",' & GUICtrlRead($input_formatid))
    $format_status = StringMid($format, StringInStr($format, ",", 0, -3) - 2)
    GUICtrlSetData($edit_status, $format_status)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _FormatIECClose()
    GUISetState(@SW_ENABLE, $gui_main)
    GUISetState(@SW_HIDE, $gui_format)
    EndFunc
    Func _InitIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Laufwerk initialisieren ...")
    RunWait(@ComSpec & " /c cbmctrl.exe pcommand " & GUICtrlRead($combo_laufwerkid) & " i", "", @SW_HIDE)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _CheckIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Dateisystem überprüfen ...")
    RunWait(@ComSpec & " /c cbmctrl.exe pcommand " & GUICtrlRead($combo_laufwerkid) & " v", "", @SW_HIDE)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _StatusIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Fehlerkanal auslesen ...")
    $status = _getDOSOutput("cbmctrl.exe status " & GUICtrlRead($combo_laufwerkid))
    $status_kurz = StringMid($status, StringInStr($status, ",", 0, -3) - 2)
    GUICtrlSetData($edit_status, $status_kurz)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _ResetIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Laufwerk zurücksetzen ...")
    RunWait(@ComSpec & " /c cbmctrl.exe reset", "", @SW_HIDE)
    Sleep (100)
    _StatusIEC()
    EndFunc
    Func _WriteIEC()
    Local $dateiauswahl, $ordnername = GUICtrlRead($input_ordnername)
    If $ordnername = "" Then Return MsgBox(16, "Fehler", "Es wurde kein Verzeichnispfad ausgewählt!", 0, $gui_main)
    $dateiauswahl = _GUICtrlListView_GetSelectedIndices($listview_dateiliste, True)
    If $dateiauswahl[0] = 0 Then Return MsgBox(16, "Fehler", "Es wurde keine Datei ausgewählt!", 0, $gui_main)
    _Feldvariablen()
    If GUICtrlRead($radio1) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t auto -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio2) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t original -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio3) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t serial1 -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio4) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t serial2 -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio5) = $GUI_CHECKED Then
    $schreiben = "nibwrite.exe -D" & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '"'
    EndIf
    $dir = _getDOSOutput($schreiben)
    GUICtrlSetData($edit_dir, $dir)
    EndFunc
    Func _RreadIEC()
    EndFunc
    Func _AuswahlPfad()
    Local $ordnername
    $ordnername = FileSelectFolder("", "", 2, "", $gui_main)
    If Not FileExists($ordnername) Then Return
    GUICtrlSetData($input_ordnername, $ordnername)
    _DirOpen()
    EndFunc
    Func _DirOpen()
    Local $aFilelist, $ordnername = GUICtrlRead($input_ordnername)
    If StringRight($ordnername, 1) <> "\" Then $ordnername &= "\"
    $aFilelist = _FileListToArray($ordnername, "*.d64", 1)
    If @error Then Return
    _GUICtrlListView_DeleteAllItems($listview_dateiliste)
    For $i = 1 To $aFilelist[0]
    GUICtrlCreateListViewItem($aFilelist[$i], $listview_dateiliste)
    Next
    _GUICtrlListView_SetColumnWidth(GUICtrlGetHandle($listview_dateiliste), 0, $LVSCW_AUTOSIZE)
    EndFunc
    Func _ImageOpen()
    Local $dateiauswahl, $ordnername = GUICtrlRead($input_ordnername)
    If StringRight($ordnername, 1) <> "\" Then $ordnername &= "\"
    If $ordnername = "" Then Return MsgBox(16, "Fehler", "Es wurde kein Verzeichnispfad ausgewählt!", 0, $gui_main)
    $dateiauswahl = _GUICtrlListView_GetSelectedIndices($listview_dateiliste, True)
    If $dateiauswahl[0] = 0 Then Return MsgBox(16, "Fehler", "Es wurde keine Datei ausgewählt!", 0, $gui_main)
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Disketten-Image auslesen ...")
    For $i = 1 To $dateiauswahl[0]
    $dir = _getDOSOutput("c1541.exe " & '"' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste, $dateiauswahl[$i]) & '"' & " -list")
    $dir_name = StringUpper(StringMid($dir, 4, 16))
    $dir_id = StringUpper(StringMid($dir, 21, 6))
    $dir_kurz = StringAddCR(StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 27)))
    GUICtrlSetData($edit_name, $dir_name)
    GUICtrlSetData($edit_id, $dir_id)
    GUICtrlSetData($edit_dir, $dir_kurz)
    For $zeile = 0 To UBound($dir_kurz) - 1
    GUICtrlCreateListViewItem($dir_kurz[$zeile], $edit_dir_list)
    Next
    Next
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _Feldvariablen()
    GUICtrlSetData($edit_name, "")
    GUICtrlSetData($edit_id, "")
    GUICtrlSetData($edit_dir, "")
    GUICtrlSetData($edit_status, "")
    GUICtrlSetData($edit_vorgang, "")
    EndFunc

    [/autoit]
  • Variable in ListViewItem schreiben

    • DerSchatten
    • 29. Juli 2011 um 14:15

    Script sieht im großen und ganzen so aus:

    [autoit]


    $edit_dir_list = GUICtrlCreateListView("Dateiname", 792, 72, 280, 334)
    $dir_kurz = StringAddCR(StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 27)))
    For $zeile = 0 To UBound($dir_kurz) - 1
    GUICtrlCreateListViewItem($dir_kurz[$zeile], $edit_dir_list)
    Next

    [/autoit]

    Bekomme aber keine Ausgabe. Null, nichts...

    In $dir_kurz ist folgendes enthalten:

    Code
    1     "M11"               PRG 
    11    "M12"               PRG 
    1     "M13"               PRG 
    651 BLOCKS FREE.
  • Variable in ListViewItem schreiben

    • DerSchatten
    • 29. Juli 2011 um 13:42

    Ich komme da nicht weiter.

    Ich möchte gerne den Inhalt einer Variable in ein ListViewItem schreiben.

    Die Variable beinhaltet Text mit mehreren Spalten.

    Jetzt hätte ich gerne jede Spalte in jeweils eine ListeFeld-Zeile.

  • ListViewItem mit Datei füllen

    • DerSchatten
    • 29. Juli 2011 um 00:58

    Die Fehlerausgabe kommt bringt AutoIt selbst beim ausführen.

    Interessantes Ergebni: Ich bekomme zwar eine Ausgabe, allerdings alles Zeilen in einer Zeile und das x-mal nach unten wiederholt.

    Fehlt da nicht noch wo das $zeile ?

    Im Anhang: In der Mitte das Textfeld (richtig) , Rechts das Listenfeld

    Hier nochmal mein komplettes Programm:

    [autoit]


    #include <GUIConstants.au3>
    #Include <GuiListView.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #Include <File.au3>
    #Include <Array.au3>
    #include <Constants.au3>
    Opt('GUIOnEventMode', 1)
    ;GUI Main
    $gui_main = GUICreate("Zoom Copy 64", 1200, 600)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_CloseGui')
    GUICtrlCreateGroup("Verzeichnis am lokalen PC", 8, 24, 316, 445)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("Verzeichnis am IEC", 382, 24, 370, 445)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $input_ordnername = GUICtrlCreateInput("", 16, 48, 265, 20, BitOR($ES_LEFT, $ES_AUTOHSCROLL))
    $button_dateiauswahl = GUICtrlCreateButton("...", 286, 48, 30, 21)
    GUICtrlSetOnEvent(-1, '_AuswahlPfad')
    $combo_laufwerktyp = GUICtrlCreateCombo("", 98, 104, 143, 21)
    GUICtrlSetData(-1, "Alle Dateien|Image Dateien|Nibtools Dateien|D64 Dateien|D71 Dateien|D81 Dateien|G64 Dateien|NIB Dateien", "Alle Dateien")
    GUICtrlCreateLabel("Datei Filter:", 16, 107, 80, 18)
    GUICtrlSetFont(-1, 9, 600, 0)
    $listview_dateiliste = GUICtrlCreateListView("Dateiname", 16, 128, 225, 330)
    $combo_laufwerktyp = GUICtrlCreateCombo("", 302, 240, 80, 21)
    GUICtrlSetData(-1, "1541|1571", "1541")
    GUICtrlSetTip(-1, "Laufwerkstyp auswählen")
    GUICtrlCreateGroup("Übertragung", 294, 75, 80, 120)
    $radio1 = GUICtrlCreateRadio("Auto", 302, 94, 60, 14)
    $radio2 = GUICtrlCreateRadio("Original", 302, 114, 60, 14)
    $radio3 = GUICtrlCreateRadio("Seriell 1", 302, 134, 60, 14)
    $radio4 = GUICtrlCreateRadio("Seriell 2", 302, 154, 60, 14)
    $radio5 = GUICtrlCreateRadio("Parallel", 302, 174, 60, 14)
    GUICtrlSetState ($radio1, $GUI_CHECKED)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $combo_laufwerkid = GUICtrlCreateCombo("", 679, 47, 65, 21)
    GUICtrlSetData(-1, "8|9|10|11", "8")
    GUICtrlSetTip(-1, "Laufwerk-ID auswählen")
    GUICtrlCreateLabel("Laufwerk:", 679, 385, 60, 18)
    GUICtrlSetFont(-1, 9, 600, 0)
    GUICtrlCreateLabel("Disk:", 679, 76, 34, 18)
    GUICtrlSetFont(-1, 9, 600, 0)
    $edit_name = GUICtrlCreateEdit("", 392, 47, 207, 21, $ES_READONLY)
    GUICtrlSetTip(-1, "Diskettenname")
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xEEDBCD)
    $edit_id = GUICtrlCreateEdit("", 603, 47, 71, 21, $ES_READONLY)
    GUICtrlSetTip(-1, "Disketten-ID")
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xEEDBCD)
    $edit_dir_list = GUICtrlCreateListView("Dateiname", 792, 72, 280, 334)
    $edit_dir = GUICtrlCreateEdit("", 392, 72, 282, 334, $ES_READONLY+$WS_VSCROLL)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xCDDAEE)
    $edit_status = GUICtrlCreateEdit("", 392, 410, 282, 21, $ES_READONLY)
    GUICtrlSetTip(-1, "Letzter Laufwerksstatus")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xCDDAEE)
    $edit_vorgang = GUICtrlCreateEdit("", 392, 438, 282, 21, $ES_READONLY)
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xD6EECD)
    $button_dir = GUICtrlCreateButton("Verzeichnis", 679, 98, 65, 25)
    GUICtrlSetTip(-1, "Verzeichnis im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " auslesen")
    GUICtrlSetOnEvent(-1, '_DirIEC')
    $button_format = GUICtrlCreateButton("Format", 679, 137, 65, 25)
    GUICtrlSetTip(-1, "Diskette im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " formatieren")
    GUICtrlSetOnEvent(-1, '_FormatIEC')
    $button_init = GUICtrlCreateButton("Initialisieren", 679, 165, 65, 25)
    GUICtrlSetTip(-1, "Laufwerk " & GUICtrlRead($combo_laufwerkid) & " initialisieren")
    GUICtrlSetOnEvent(-1, '_InitIEC')
    $button_valid = GUICtrlCreateButton("Überprüfen", 679, 193, 65, 25)
    GUICtrlSetTip(-1, "Dateisystem im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " auf Fehler überprüfen")
    GUICtrlSetOnEvent(-1, '_CheckIEC')
    $button_status = GUICtrlCreateButton("Status", 679, 408, 65, 25)
    GUICtrlSetTip(-1, "Fehlerkanal von Laufwerk " & GUICtrlRead($combo_laufwerkid) & " auslesen")
    GUICtrlSetOnEvent(-1, '_StatusIEC')
    $button_reset = GUICtrlCreateButton("Reset", 679, 436, 65, 25)
    GUICtrlSetTip(-1, "Laufwerk " & GUICtrlRead($combo_laufwerkid) & " zurücksetzen")
    GUICtrlSetOnEvent(-1, '_ResetIEC')
    $button_d64 = GUICtrlCreateButton("Image öffnen", 302, 300, 65, 25)
    GUICtrlSetOnEvent(-1, '_ImageOpen')
    $button_schreiben = GUICtrlCreateButton("Kopieren", 302, 420, 65, 25)
    GUICtrlSetOnEvent(-1, '_CopyIEC')
    ;GUI Format
    $gui_format = GUICreate("Diskette im Laufwerk " & GUICtrlRead($combo_laufwerkid) & " formatieren", 392, 136)
    $input_formatname = GUICtrlCreateInput("leer", 20, 48, 140, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetLimit(-1, 16)
    $input_formatid = GUICtrlCreateInput("01", 170, 48, 50, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetLimit(-1, 2)
    $button_formatok = GUICtrlCreateButton("OK", 8, 82, 89, 25)
    GUICtrlSetOnEvent(-1, '_FormatIECOK')
    $button_formatbeenden = GUICtrlCreateButton("Schließen", 288, 82, 89, 25)
    GUICtrlSetOnEvent(-1, '_FormatIECClose')
    ;starte mit HauptGUI
    GUISetState(@sw_show, $gui_main)
    WinWaitClose($gui_main)
    Exit
    Func _CloseGui()
    GUIDelete($gui_main)
    EndFunc
    Func _getDOSOutput($command)
    Local $text = "", $Pid = Run('"' & @ComSpec & '" /c ' & $command, "", @SW_HIDE, 2 + 4)
    While 1
    $text &= StdoutRead($Pid, False, False)
    If @error Then ExitLoop ;MsgBox(16, "Fehler", "Kein IEC-Gerät gefunden!", 0, $gui_main)
    Sleep(10)
    WEnd
    Return $text
    EndFunc
    Func _DirIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Verzeichnis auslesen ...")
    $dir = _getDOSOutput("cbmctrl.exe dir " & GUICtrlRead($combo_laufwerkid))
    $dir_status = StringMid($dir, StringInStr($dir, ",", 0, -3) - 2)
    If StringInStr($dir, "0 .") <> 0 Then
    $dir_name = StringUpper(StringMid($dir, StringInStr($dir, '"') + 1 , 16))
    GUICtrlSetData($edit_name, $dir_name)
    $dir_id = StringUpper(StringMid($dir, StringInStr($dir, '"', 0, 2) + 1 , 6))
    GUICtrlSetData($edit_id, $dir_id)
    $dir_kurz = StringAddCR(StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 29)))
    GUICtrlSetData($edit_dir, $dir_kurz)
    EndIf
    GUICtrlSetData($edit_status, $dir_status)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _FormatIEC()
    GUISetState(@SW_DISABLE, $gui_main)
    GUISetState(@SW_SHOW, $gui_format)
    EndFunc
    Func _FormatIECOK()
    _FormatIECClose()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Diskette formatieren ...")
    $format = _getDOSOutput("cbmformat.exe -s " & GUICtrlRead($combo_laufwerkid) & ' "' & GUICtrlRead($input_formatname) & '",' & GUICtrlRead($input_formatid))
    $format_status = StringMid($format, StringInStr($format, ",", 0, -3) - 2)
    GUICtrlSetData($edit_status, $format_status)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _FormatIECClose()
    GUISetState(@SW_ENABLE, $gui_main)
    GUISetState(@SW_HIDE, $gui_format)
    EndFunc
    Func _InitIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Laufwerk initialisieren ...")
    RunWait(@ComSpec & " /c cbmctrl.exe pcommand " & GUICtrlRead($combo_laufwerkid) & " i", "", @SW_HIDE)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _CheckIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Dateisystem überprüfen ...")
    RunWait(@ComSpec & " /c cbmctrl.exe pcommand " & GUICtrlRead($combo_laufwerkid) & " v", "", @SW_HIDE)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _StatusIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Fehlerkanal auslesen ...")
    $status = _getDOSOutput("cbmctrl.exe status " & GUICtrlRead($combo_laufwerkid))
    $status_kurz = StringMid($status, StringInStr($status, ",", 0, -3) - 2)
    GUICtrlSetData($edit_status, $status_kurz)
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _ResetIEC()
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Laufwerk zurücksetzen ...")
    RunWait(@ComSpec & " /c cbmctrl.exe reset", "", @SW_HIDE)
    Sleep (100)
    _StatusIEC()
    EndFunc
    Func _CopyIEC()
    Local $dateiauswahl, $ordnername = GUICtrlRead($input_ordnername)
    If $ordnername = "" Then Return MsgBox(16, "Fehler", "Es wurde kein Verzeichnispfad ausgewählt!", 0, $gui_main)
    $dateiauswahl = _GUICtrlListView_GetSelectedIndices($listview_dateiliste, True)
    If $dateiauswahl[0] = 0 Then Return MsgBox(16, "Fehler", "Es wurde keine Datei ausgewählt!", 0, $gui_main)
    _Feldvariablen()
    If GUICtrlRead($radio1) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t auto -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio2) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t original -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio3) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t serial1 -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio4) = $GUI_CHECKED Then
    $schreiben = "d64copy.exe -t serial2 -d " & GUICtrlRead($combo_typ) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '" ' & GUICtrlRead($combo_laufwerkid)
    ElseIf GUICtrlRead($radio5) = $GUI_CHECKED Then
    $schreiben = "nibwrite.exe -D" & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '"'
    EndIf
    $dir = _getDOSOutput($schreiben)
    GUICtrlSetData($edit_dir, $dir)
    EndFunc
    Func _AuswahlPfad()
    Local $ordnername
    $ordnername = FileSelectFolder("", "", 2, "", $gui_main)
    If Not FileExists($ordnername) Then Return
    GUICtrlSetData($input_ordnername, $ordnername)
    _DirOpen()
    EndFunc
    Func _DirOpen()
    Local $aFilelist, $ordnername = GUICtrlRead($input_ordnername)
    If StringRight($ordnername, 1) <> "\" Then $ordnername &= "\"
    $aFilelist = _FileListToArray($ordnername, "*.d64", 1)
    If @error Then Return
    _GUICtrlListView_DeleteAllItems($listview_dateiliste)
    For $i = 1 To $aFilelist[0]
    GUICtrlCreateListViewItem($aFilelist[$i], $listview_dateiliste)
    Next
    _GUICtrlListView_SetColumnWidth(GUICtrlGetHandle($listview_dateiliste), 0, $LVSCW_AUTOSIZE)
    EndFunc
    Func _ImageOpen()
    Local $dateiauswahl, $ordnername = GUICtrlRead($input_ordnername)
    If StringRight($ordnername, 1) <> "\" Then $ordnername &= "\"
    If $ordnername = "" Then Return MsgBox(16, "Fehler", "Es wurde kein Verzeichnispfad ausgewählt!", 0, $gui_main)
    $dateiauswahl = _GUICtrlListView_GetSelectedIndices($listview_dateiliste, True)
    If $dateiauswahl[0] = 0 Then Return MsgBox(16, "Fehler", "Es wurde keine Datei ausgewählt!", 0, $gui_main)
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Disketten-Image auslesen ...")
    For $i = 1 To $dateiauswahl[0]
    $dir = _getDOSOutput("c1541.exe " & '"' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste, $dateiauswahl[$i]) & '"' & " -list")
    $dir_name = StringUpper(StringMid($dir, 4, 16))
    $dir_id = StringUpper(StringMid($dir, 21, 6))
    $dir_kurz = StringAddCR(StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 27)))
    GUICtrlSetData($edit_name, $dir_name)
    GUICtrlSetData($edit_id, $dir_id)
    GUICtrlSetData($edit_dir, $dir_kurz)
    For $zeile = 1 To $dir_kurz Step 1
    GUICtrlCreateListViewItem($dir_kurz, $edit_dir_list)
    Next
    Next
    GUICtrlSetData($edit_vorgang, "")
    EndFunc
    Func _Feldvariablen()
    GUICtrlSetData($edit_name, "")
    GUICtrlSetData($edit_id, "")
    GUICtrlSetData($edit_dir, "")
    GUICtrlSetData($edit_status, "")
    GUICtrlSetData($edit_vorgang, "")
    EndFunc

    [/autoit]

    Dateien

    AutoIt.jpg 131,79 kB – 0 Downloads
  • ListViewItem mit Datei füllen

    • DerSchatten
    • 28. Juli 2011 um 22:31

    Scite bringt gar keinen Fehler.

    Wie müßte es denn richtig heißen?

  • ListViewItem mit Datei füllen

    • DerSchatten
    • 28. Juli 2011 um 14:32

    Helft mir doch bitte mal.

    Ich möchte ein ListViewItem mit dem Inhalt einer Variable füllen:

    [autoit]


    Func _ImageOpen()
    Local $dateiauswahl, $dir_kurz, $ordnername = GUICtrlRead($input_ordnername)
    If $ordnername = "" Then Return MsgBox(16, "Fehler", "Es wurde kein Verzeichnispfad ausgewählt!", 0, $gui_main)
    $dateiauswahl = _GUICtrlListView_GetSelectedIndices($listview_dateiliste, True)
    If $dateiauswahl[0] = 0 Then Return MsgBox(16, "Fehler", "Es wurde keine Datei ausgewählt!", 0, $gui_main)
    _Feldvariablen()
    GUICtrlSetData($edit_vorgang, "Disketten-Image auslesen ...")
    For $i = 1 To $dateiauswahl[0]
    $dir = _getDOSOutput("c1541.exe " & '"' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste, $dateiauswahl[$i]) & '"' & " -list")
    $dir_name = StringUpper(StringMid($dir, 4, 16))
    $dir_id = StringUpper(StringMid($dir, 21, 6))
    $dir_kurz = StringAddCR(StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 27)))
    GUICtrlSetData($edit_name, $dir_name)
    GUICtrlSetData($edit_id, $dir_id)
    GUICtrlSetData($edit_dir, $dir_kurz)

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

    For $zeile = 1 To $dir_kurz[0] Step 1
    GUICtrlCreateListViewItem($dir_kurz[$zeile], $edit_dir_list)
    Next

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

    Next
    GUICtrlSetData($edit_vorgang, "")
    EndFunc

    [/autoit]

    Er meint Subscript used with nun-Aray variable.

    Mit Local müßte der Wert doch ein Array sein oder?

  • StringInStr Funktion

    • DerSchatten
    • 27. Juli 2011 um 21:36

    Bräuchte mal hilfe.

    Ich möchte aus folgendem Text:

    Code
    found 4 busses 
    74,drive not ready,00,00

    Nur die unterste Zeile herausfiltern. Die Länge des Textes ist jedoch immer verschieden. Also kann ich nicht nach Anzahl der Zeichen filtern.

    Nachdem man jedoch suchen könnte wäre der Teil "74," Die Zahl kann jedoch ebenfalls immer eine andere sein, es sind jedoch immer 2 Stellen mit einem anschließenden Komma (,)

    Wonach man auch suchen könnte wäre, das von rechts immer 3 Kommas und 2 Stellen stehen.

    Kann mir da jemand weiterhelfen?

  • mehrzeiliges Textfeld zeigt Steuerzeichen

    • DerSchatten
    • 27. Juli 2011 um 12:47

    Perfekt! Mit StringAddCR() funktionierts!

    Hat das nun negative Auswirkungen unter Windows 7?

  • mehrzeiliges Textfeld zeigt Steuerzeichen

    • DerSchatten
    • 27. Juli 2011 um 12:23

    $ES_MULTILINE habe ich nicht verwendet.

    daran liegts aber anscheinend auch nicht.

    Hier mal der Teil vom code:

    [autoit]


    $edit_dir = GUICtrlCreateEdit("", 392, 72, 320, 334, $ES_READONLY+$WS_VSCROLL)
    GUICtrlSetData(-1, "")
    GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
    GUICtrlSetBkColor(-1, 0xCDDAEE)

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

    Func _StartOpen()
    Local $aSelectedItems, $sPath = GUICtrlRead($input_dateiname)
    If $sPath = '' Then Return MsgBox(16, 'Fehler', 'Bitte erst einen Zielpfad auswählen!', 0, $gui_main)
    $aSelectedItems = _GUICtrlListView_GetSelectedIndices($listview_dateiliste, True)
    If $aSelectedItems[0] = 0 Then Return MsgBox(16, 'Fehler', 'Bitte erst die Dateien markieren!', 0, $gui_main)
    GUICtrlSetData($edit_vorgang, "D64 Image auslesen ...")
    GUICtrlSetData($edit_name, "")
    GUICtrlSetData($edit_id, "")
    GUICtrlSetData($edit_dir, "")
    For $i = 1 To $aSelectedItems[0]
    $dir = _getDOSOutput("c1541.exe " & '"' & $sPath & _GUICtrlListView_GetItemTextString($listview_dateiliste, $aSelectedItems[$i]) & '"' & " -list")
    $dir_name = StringUpper(StringMid($dir, 4, 16))
    $dir_id = StringUpper(StringMid($dir, 21, 6))
    $dir_kurz = StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 27))
    GUICtrlSetData($edit_name, $dir_name)
    GUICtrlSetData($edit_id, $dir_id)
    GUICtrlSetData($edit_dir, $dir_kurz)
    msgbox(1,"test", StringUpper(StringTrimLeft(StringLeft($dir, StringInStr($dir, "free.") + 4), 27)))
    Next
    EndFunc

    [/autoit]

    Das dubiose dabei allerdings ist, das ich im Internet-Explorer auf den Funktionsreferenz-Seiten von AutoIt anstelle von Umlauten ebenfalls Quadrate angezeigt bekomme.

    Kann das irgendwie einen Zusammenhang haben?

    Dateien

    Steuerzeichen.jpg 147,09 kB – 0 Downloads
  • mehrzeiliges Textfeld zeigt Steuerzeichen

    • DerSchatten
    • 27. Juli 2011 um 11:23

    Ich habe folgendes Problem:

    In meinem Script verwende ich ein mehrzeiliges Textfeld das mir Daten aus einem DOS-Command anzeigen soll, die im Command-Fenster zb. so aussieht:

    Code
    0 "more.gore " 2001 
    32 "================" (NULL) 
    32 "= this game is =" (NULL) 
    32 "= (c) 2001 =" (NULL) 
    32 "= by more.gore =" (NULL) 
    32 "= software =" (NULL) 
    32 "= =" (NULL) 
    32 "= read the faq =" (NULL) 
    32 "= for details. =" (NULL) 
    32 "================" (NULL) 
    2 "spacebattle v2.3" prg 
    60 "runme (faq)" prg 
    31 "what's new 2.3" prg 
    32 "================" (NULL) 
    96 "space" prg 
    12 "spacecode" prg 
    9 "spacefont" prg 
    32 "================" (NULL) 
    393 blocks free.
    Alles anzeigen

    Wenn ich das ganze auf einem Windows 7 Gerät starte ist die Anzeige korrekt. Hier auf meinem Firmen-Gerät mit XP ist die Ausgabe verstümmelt. Statt Zeilenumbrüche werden Quadrate angezeigt und er schreibt alles in einer Wurst ins Textfeld.

    Gebe ich das ganze in einer msgbox aus, passt die Ausgabe allerdings (siehe Anhang)
    So wie es aussieht werden hier die Steuerzeichen (Zeilensprung) nicht korrekt interpretiert.
    Wo kann hier der fehler liegen?

    Dateien

    Programm.jpg 127,81 kB – 0 Downloads
  • dateilister mit GUICtrlCreateListView

    • DerSchatten
    • 26. Juli 2011 um 23:48

    Wow! Das Lob ich mir!

    Du bist mein Held! Vielen, vielen dank!

    Hübsch wäre noch, wenn gleich nach Auswahl des Suchpfades das Verzeichnis angezeigt wird.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™