Gibt es eine Möglichkeit bereits nach dem verlassen einer ComboBox mit dem ausgewählten Wert eine Funktion auszulösen?
Beiträge von DerSchatten
-
-
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.
-
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?
-
Ich habe mir eine Funktion für eine ProgressBar erstellt die mit einer Schleife auf Zeit abläuft:
[autoit]
[/autoit][autoit][/autoit][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)Func _getDOSOutput($command, $zeitende)
[/autoit][autoit][/autoit][autoit]
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
EndFuncFunc _ReadIECOK()
[/autoit][autoit][/autoit][autoit]
_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)
EndFuncFunc _ProgressBarStart()
[/autoit][autoit][/autoit][autoit]
GUISetState(@SW_DISABLE, $gui_main)
GUISetState(@SW_SHOW, $gui_progressbar)
EndFunc
Func _ProgressBarStop()
GUISetState(@SW_ENABLE, $gui_main)
GUISetState(@SW_HIDE, $gui_progressbar)
EndFuncFunc _ProgressBar($zeit)
[/autoit]
_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()
EndFuncDas 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?
-
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. -
Jemand vielleicht noch eine Idee dazu?
habs inzwischen noch damit versucht:
[autoit]
[/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, "")
EndFuncIch denke das Problem ist das ich meinen String (dir_kurz) zuerst einmal in ein Array bringen muß. Zeilensprünge sind darin ebreits enthalten.
-
Ich bekomms einfach nicht hin. Verzweifel...
-
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) WEndBringt zuerst eine leere msg und nach ok das Inhaltsverzeichnis.
-
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]
[/autoit][autoit][/autoit][autoit]
$edit_dir = GUICtrlCreateEdit("", 404, 72, 282, 334, $ES_READONLY+$WS_VSCROLL)Func _getDOSOutput($command)
[/autoit][autoit][/autoit][autoit]
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$schreiben = "nibwrite.exe -D" & GUICtrlRead($combo_laufwerkid) & ' "' & $ordnername & _GUICtrlListView_GetItemTextString($listview_dateiliste) & '"'
[/autoit]
$dir = _getDOSOutput($schreiben)
GUICtrlSetData($edit_dir, $dir)Allerdings bekomme ich rein gar nichts angezeigt.
Bin ich hier am richtigen Wege oder geht das vielleicht gar nicht?
-
Oki,
hier nochmal das inzwischen etwas veränderte Script:
[autoit]
[/autoit][autoit][/autoit][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');GUI Format
[/autoit]
$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 -
Script sieht im großen und ganzen so aus:
[autoit]
[/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)
NextBekomme aber keine Ausgabe. Null, nichts...
In $dir_kurz ist folgendes enthalten:
-
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.
-
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]
[/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 -
Scite bringt gar keinen Fehler.
Wie müßte es denn richtig heißen?
-
Helft mir doch bitte mal.
Ich möchte ein ListViewItem mit dem Inhalt einer Variable füllen:
[autoit]
[/autoit][autoit][/autoit][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)For $zeile = 1 To $dir_kurz[0] Step 1
[/autoit][autoit][/autoit][autoit]
GUICtrlCreateListViewItem($dir_kurz[$zeile], $edit_dir_list)
NextNext
[/autoit]
GUICtrlSetData($edit_vorgang, "")
EndFuncEr meint Subscript used with nun-Aray variable.
Mit Local müßte der Wert doch ein Array sein oder?
-
Bräuchte mal hilfe.
Ich möchte aus folgendem Text:
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?
-
Perfekt! Mit StringAddCR() funktionierts!
Hat das nun negative Auswirkungen unter Windows 7?
-
$ES_MULTILINE habe ich nicht verwendet.
daran liegts aber anscheinend auch nicht.
Hier mal der Teil vom code:
[autoit]
[/autoit][autoit][/autoit][autoit]
$edit_dir = GUICtrlCreateEdit("", 392, 72, 320, 334, $ES_READONLY+$WS_VSCROLL)
GUICtrlSetData(-1, "")
GUICtrlSetFont(-1, 10, 400, 0, "Courier New")
GUICtrlSetBkColor(-1, 0xCDDAEE)Func _StartOpen()
[/autoit]
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
EndFuncDas 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?
-
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
Alles anzeigen0 "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.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? -
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.