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. autoBert

Beiträge von autoBert

  • Own_Tab UDF Problem

    • autoBert
    • 27. Februar 2013 um 12:50
    Zitat von TheLuBu

    ich kann aber das gesamte Script aus Datenschutzgründen und Länge ( ~10k Zeilen ohne Includes) nicht posten.


    Dann mach ein Beispielskript in dem der Fehler auch auftritt.

    Zitat von TheLuBu

    Kann sich jemand das erklären / mir helfen?


    Ohne Skript wohl kaum.

    mfg autoBert

  • Leere Elemente aus einem (Ergebnis) Array löschen

    • autoBert
    • 26. Februar 2013 um 13:35
    Zitat von Mars

    Edit: Mit ArraySearch und ArrayDelete würde das min. 10x so lange dauern...


    und da:

    Zitat von Mars

    Läuft aber nur mit 1D Arrays.

    ist es für diesen Fall unbrauchbar.

    Hier ein Beispiel wie du es lösen kannst:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    Global $a2D[1000][4]

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

    For $i = 1 To UBound($a2D) - 1
    For $j = 0 To UBound($a2D, 2) - 1
    $k = Random(0, 26, 1)
    Switch $k
    Case 0
    ;do nothing
    Case Else
    $a2D[$i][$j] = Chr($k + 96)
    EndSwitch
    Next
    Next
    $a2D[0][0] = UBound($a2D)
    _ArrayDisplay($a2D, "Original")

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

    $iMSec = TimerInit()
    If _DeleteEmpty($a2D, 1) Then
    $iMSec = TimerDiff($iMSec)
    ConsoleWrite($iMSec & @CRLF)
    _ArrayDisplay($a2D, "Leere in Col" & $i & " gelöscht in " & $iMSec)
    Else
    ConsoleWrite('Fehler: ' & @error & @CRLF)
    EndIf

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

    $iMSec = TimerInit()
    If _DeleteEmpty($a2D, 5) Then
    $iMSec = TimerDiff($iMSec)
    ConsoleWrite($iMSec & @CRLF)
    _ArrayDisplay($a2D, "Leere in Col" & $i & " gelöscht in " & $iMSec)
    Else
    ConsoleWrite('Fehler: ' & @error & @CRLF)
    EndIf

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

    $iMSec = TimerInit()
    If _DeleteEmpty($a2D, -1) Then
    $iMSec = TimerDiff($iMSec)
    ConsoleWrite($iMSec & @CRLF)
    _ArrayDisplay($a2D, "Leere in allen weiteren Cols gelöscht in " & $iMSec)
    Else
    ConsoleWrite('Fehler: ' & @error & @CRLF)
    EndIf

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

    Func _DeleteEmpty(ByRef $aArray, $iCol)
    If $iCol > UBound($aArray, 2) - 1 Then
    SetError(1, 0, 0)
    Return
    EndIf
    For $i = UBound($aArray) - 1 To 1 Step -1
    If $iCol = -1 Then
    For $j = UBound($aArray, 2) - 1 To 0 Step -1
    If $aArray[$i][$j] = '' Then _ArrayDelete($aArray, $i)
    Next
    Else
    If $aArray[$i][$iCol] = '' Then _ArrayDelete($aArray, $i)
    EndIf
    Next
    $aArray[0][0] = UBound($aArray)
    Return 1
    EndFunc ;==>_DeleteEmpty

    [/autoit]

    Edit: Fehlerbehandlung eingebaut

    mfg autoBert

  • Verständnisproblem StringUpper und <>

    • autoBert
    • 26. Februar 2013 um 02:16

    Warum gibt dieses Skript

    Spoiler anzeigen
    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    ConsoleWrite('Returned (_StripAugly): ' & _StripAugly('L<b,/', True, '<|/|(|,') & @CRLF)

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

    Func _StripAugly($sRaw, $bStripLower, $sAugly)
    ConsoleWrite($sRaw & @CRLF)
    Local $aAugly = StringSplit($sAugly, "|"), $aRaw
    For $i = 1 To $aAugly[0]
    $sRaw = StringReplace($sRaw, $aAugly[$i], "")
    Next
    If $bStripLower Then
    $aRaw = StringSplit($sRaw, "")
    _ArrayDisplay($aRaw)
    For $i = 1 To $aRaw[0]
    ConsoleWrite($i & ": " & StringUpper($aRaw[$i]) & " <> " & $aRaw[$i] & " = ")
    Switch $aRaw[$i]
    Case 'Ä', 'Ö', 'Ü'
    ;do nothing
    Case Else
    ConsoleWrite(StringUpper($aRaw[$i]) <> $aRaw[$i] & @CRLF & @CRLF)
    If StringUpper($aRaw[$i]) <> $aRaw[$i] Then $sRaw = StringReplace($sRaw, $aRaw[$i], "")
    ConsoleWrite(@CRLF & "==>" & $sRaw & @CRLF)
    EndSwitch
    Next
    EndIf
    Return $sRaw
    EndFunc ;==>_StripAugly

    [/autoit]

    den erwarteten String zurück? Auch die Consolenausgaben sind rätzelhaft:

    Code
    >"D:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Programme\AutoIt3\MyDemos\HeimatkundeQuiz\augly.au3" /autoit3dir "D:\Programme\AutoIt3" /UserParams    
    +>02:12:34 Starting AutoIt3Wrapper v.2.0.0.1    Environment(Language:0407  Keyboard:00000407  OS:WIN_XP/Service Pack 3  CPU:X86 OS:X86)
    >Running AU3Check (1.54.19.0)  from:D:\Programme\AutoIt3
    +>02:12:34 AU3Check ended.rc:0
    >Running:(3.3.6.1):D:\Programme\AutoIt3\autoit3.exe "D:\Programme\AutoIt3\MyDemos\HeimatkundeQuiz\augly.au3"    
    L<b,/
    1: L <> L = True
    ==>b
    2: B <> b = True
    ==>
    Returned (_StripAugly): 
    +>02:12:37 AutoIT3.exe ended.rc:0
    +>02:12:38 AutoIt3Wrapper Finished
    >Exit code: 0    Time: 4.612
    Alles anzeigen

    Das Problem ist zwar schon mit StringIsLower gelöst mich würde aber interessieren wo der Logikfehler ist.

    Edit: der von mir so oft empfohlene Blick in die Hilfe hätte das Thema erspart:

    Zitat

    <> Prüft, ob zwei Werte nicht gleich sind. Groß- und Kleinschreibung wird nicht berücksichtigt, falls Strings verwendet werden. Um die Ungleichheit unter Beachtung der Groß- und Kleinschreibung festzustellen, ist Not ("string1" == "string2") zu verwenden

    mfg autoBert

  • Datei mit Wert vergleichen

    • autoBert
    • 24. Februar 2013 um 19:02

    Schau dir dazu

    [autoit]

    _ReplaceStringInFile

    [/autoit]

    an.

    mfg autoBert

  • Maus bewegen in Anwendung

    • autoBert
    • 24. Februar 2013 um 16:59

    Da du anscheinend kein echtes Interesse hast die Anwendung (3D Diagramm, welches man im Raum drehen kann) wirklich zuverlässig zu automatisieren, sonst hättest du sie benannt: Vote for Close

    mfg autoBert

  • HotKeySet reagiert nicht immer

    • autoBert
    • 24. Februar 2013 um 14:34
    Zitat von chesstiger

    Du kannst nicht einfach die Message-Variable ändern...


    Du siehst doch dass er kann. Sollte $nMsg wie allgemein üblich die Message von GuiGetMsg aufnehmen gibt dies Probleme.

    dabronko1: ohne dein komplettes Skript kann man nur [Blockierte Grafik: http://i079.radikal.ru/0912/d2/5e1f601a025f.gif]

    mfg autoBert

  • Maus bewegen in Anwendung

    • autoBert
    • 24. Februar 2013 um 13:39

    Um dir effektiv zu helfen muss man schon die Anwendung kennen die du automatisieren willst. Nicht nur dass es meistens bessere Lösungen gibt als PixelSearch & Co. Ohne die Anwendung zu kennen wird es zu
    [Blockierte Grafik: http://i079.radikal.ru/0912/d2/5e1f601a025f.gif]
    und bringt keine brauchbare Lösung.

    mfg autoBert

  • GUICtrlStatusBar animiert

    • autoBert
    • 24. Februar 2013 um 13:29

    Hallo AnnaM,

    ich habe bei diesem Testskript:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; *** Start added by AutoIt3Wrapper ***
    #include <WindowsConstants.au3>
    ; *** End added by AutoIt3Wrapper ***
    #include <GuiConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <SendMessage.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_SB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()

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

    Local $hGUI, $hAni, $hInput, $input, $ani, $hStatus, $msg
    Local $aParts[4] = [80, 160, 300, -1]

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

    ; Create GUI
    $hGUI = GUICreate("StatusBar Embed Control", 400, 300)

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

    ;===============================================================================
    ; defaults to 1 part, no text
    $hStatus = _GUICtrlStatusBar_Create($hGUI)
    _GUICtrlStatusBar_SetMinHeight($hStatus, 20)

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

    ;===============================================================================
    GUISetState()

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

    ; Initialize parts
    _GUICtrlStatusBar_SetParts($hStatus, $aParts)
    _GUICtrlStatusBar_SetText($hStatus, "Part 1")
    _GUICtrlStatusBar_SetText($hStatus, "Part 2", 1)

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

    $input = GUICtrlCreateInput("This is Embeded", 0, 0, 100)
    $hInput = GUICtrlGetHandle($input)
    _GUICtrlStatusBar_EmbedControl($hStatus, 2, $hInput, 2)

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

    ; Embed a avi
    $ani = GUICtrlCreateAvi("Load.AVI", 0, 0, 0, 16, 16)
    $hAni = GUICtrlGetHandle($ani)
    _GUICtrlStatusBar_EmbedControl($hStatus, 3, $hAni, 3)
    GUICtrlSetState($ani, $GUI_AVISTART)

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

    ; Loop until user exits
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_RESTORE
    _GUICtrlStatusBar_EmbedControl($hStatus, 3, $hAni, 3)
    _GUICtrlStatusBar_EmbedControl($hStatus, 2, $hInput, 2)
    Case $GUI_EVENT_CLOSE
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete()
    EndFunc ;==>_Main

    [/autoit]

    keine Probleme.

    mfg autoBert

  • _FTP_FilePut auch mit geöffneten Datein?

    • autoBert
    • 23. Februar 2013 um 18:24
    Zitat von samy123

    Gibt es kein Lösungsweg oder hat sich nur noch niemand gefunden der einen kennt? =)


    Es gibt keine Lösung gelockte Dateien zu übertragen, zumindest ist mir keine bekannt. Du kannst aber die zu übertragenden Dateien in einem Array oder DB speichern und dort nur bei erfolgreicher Übertragung löschen. Die zu übertragenden Dateien gehst du immer wieder durch bis keine Datei mehr zu übertragen ist. Dieses Verfahren ist bei von einander abhängigen Dateien aber nicht zu empfehlen. Sauberer ist es das Skript zu einer Zeit zu starten wenn keine Benutzer mehr arbeiten.

    mfg autoBert

  • Anzeigeproblem mit IE

    • autoBert
    • 22. Februar 2013 um 20:30

    Die Funktionen von Progandy sind schon die richtigen. Nur ist das Beispiel etwas unglücklich, setzt es doch das Ausführen der Brain.exe voraus. Teste einmal dieses Beispiel:

    [autoit]

    $sURI ="Müller"
    $sEncodedURI=_URIEncode($sURI)
    MsgBox(0, 'Encode', $sEncodedURI)
    $sDecodedURI=_URIDecode($sEncodedURI)
    MsgBox(0, 'Decode', $sDecodedURI)

    [/autoit]

    Danach verstehst du, dass du es als Browsereingabe so verwenden musst:

    [autoit]

    _IENavigate($IE, "https://search.fumgroup.com/Seiten/results.aspx?k=" & _URIEncode($Suchbegriff))

    [/autoit]

    umgedreht wenn du eine codierte URI in Klarschrift haben willst aber so:

    [autoit]

    $sURI = _URIDecode(_IEPropertyGet($oIE, "locationurl"))

    [/autoit]

    mfg autoBert

  • IE@Create Problem

    • autoBert
    • 21. Februar 2013 um 22:06

    für eine so allgemein gehaltene Anforderung

    Zitat von Croco1984

    Es ist vollkommen egal welche URL ich da nehme.
    Von mir aus kann es die https://autoit.de/www.autoit.de sein. Mir geht es darum nach der erfolgreichen anmeldung,

    eine genauso allgemeine Antwort: mit den _IE...-Funkionen, speziell _IEFormElementSetValue

    mfg autoBert

  • IE@Create Problem

    • autoBert
    • 21. Februar 2013 um 19:29

    Da Anmeldeprozeduren sich von Site zu Site unterscheiden müsstest du schon die URL nennen bei der du Probleme hast.

    mfg autoBert

  • Exitloop zerstört alle schleifen...??

    • autoBert
    • 21. Februar 2013 um 18:52

    ExitLoop macht (auch in deinem Skript)genau das wofür es vorgesehen ist: "Beendet eine While-, Do- oder For-Schleife."

    mfg autoBert

  • Quizfrage (dt. Städte)

    • autoBert
    • 16. Februar 2013 um 12:51
    Zitat von chip

    Ich weiß noch was sie gemeinsam haben. Sie bringem mindesten drei PU + ein Mod dazu darüber nachzudenken was sie gemeinsam haben :D.


    Ich habe mir letzte Nacht auch einige Zeit den Kopf darüber zerbrochen was sie denn gemeinsam haben. Danach habe ich beschlossen den Quellcode der Seiteauf der sie alle vorkommen (wie 2050 andere auch) genauer zu analysieren. Kurz gesagt, sie passten nicht in das Schema das ich für die Tabellenzeile erkannt hatte:

    Spoiler anzeigen
    [autoit]

    $aSplit = StringSplit($aTmp[$i], ' title=', 1) ;in wikiLink und Rest splitten
    If $aSplit[0] > 1 Then ;ist hier immer der Fall
    ;_ArrayDisplay($aSplit)
    $j += 1
    $aStaedte[5] = StringReplace($aSplit[1], '"', '')
    $aTmp2 = _StringBetween($aSplit[2], '">', '</a>') ;Stadtname extrahieren
    If IsArray($aTmp2) Then $aStaedte[1] = $aTmp2[0]
    $aTmp2 = _StringBetween($aSplit[2], '</a> (', ')') ;Bundesland extrahieren
    If IsArray($aTmp2) Then $aStaedte[2] = $aTmp2[0]
    $aSql &= 'INSERT INTO Staedte (Name,BL,wiki) VALUES (' & _SQLite_Escape($aStaedte[1]) & "," & _SQLite_Escape($aStaedte[2]) & "," & _SQLite_Escape($aStaedte[5]) & ');' & @CRLF
    EndIf

    [/autoit]

    mit dem ich die Daten auswerten wollte da der Quellcode für sie so aussieht:

    Code
    <dd><a href="/wiki/Anklam" title="Anklam">Anklam</a>, Hansestadt (MV)</dd>
    ...
    <dd><a href="/wiki/Lutherstadt_Eisleben" title="Lutherstadt Eisleben">Eisleben</a>, Lutherstadt (ST)</dd>

    . Die Idee einfach den Startstring bei Stringbetween für das etxrahieren des Bundeslandes anzupassen scheiterte an Einträgen wie

    Code
    <dd><a href="/wiki/Erfurt" title="Erfurt">Erfurt</a> (TH, Landeshauptstadt)</dd>

    so dass mein Algo jetzt so aussieht:

    Spoiler anzeigen
    [autoit]

    ;[0]|"/wiki/Aach_(Hegau)" title="Aach (Hegau)">Aach</a> (BW)
    $aSplit = StringSplit($aTmp[$i], ' title=', 1) ;in wikiLink und Rest splitten
    If $aSplit[0] > 1 Then ;ist hier immer der Fall
    ;_ArrayDisplay($aSplit)
    $j += 1
    $aStaedte[5] = StringReplace($aSplit[1], '"', '')
    $aTmp2 = _StringBetween($aSplit[2], '">', '</a>') ;Stadtname extrahieren
    If IsArray($aTmp2) Then $aStaedte[1] = $aTmp2[0]
    $aTmp2 = _StringBetween($aSplit[2], '</a> (', ')') ;Bundesland extrahieren
    If IsArray($aTmp2) Then $aStaedte[2] = $aTmp2[0]
    If $aStaedte[2] = '' Then $aStaedte[2] = StringReplace(StringRight($aTmp[$i], 3), ')', '') ;;Bundesland extrahieren Sonderfälle
    If StringInStr($aStaedte[2], 'Landeshauptstadt') Or $aStaedte[1] = 'Hamburg'Then
    $aStaedte[2] = StringLeft($aStaedte[2], 2)
    $aStaedte[1] &= ', Landeshauptstadt'
    EndIf
    If StringInStr($aStaedte[2], 'Bundesstadt') Then
    $aStaedte[2] = StringLeft($aStaedte[2], 2)
    $aStaedte[1] &= ', Bundesstadt'
    EndIf
    If StringInStr($aStaedte[2], 'Bundeshauptstadt') Then
    $aStaedte[2] = StringLeft($aStaedte[2], 2)
    $aStaedte[1] &= ', Bundeshauptstadt'
    EndIf
    If $aStaedte[1] = '' Or $aStaedte[2] = '' Then FileWriteLine($hFailure, $aTmp[$i])
    $aSql &= 'INSERT INTO Staedte (Name,BL,wiki) VALUES (' & _SQLite_Escape($aStaedte[1]) & "," & _SQLite_Escape($aStaedte[2]) & "," & _SQLite_Escape($aStaedte[5]) & ');' & @CRLF
    EndIf

    [/autoit]

    Er funktioniert tadellos die Fehlerdatei hat 0 Byte auch ein Query auf die DB:

    Code
    Select  Staedte.BL, count(Staedte.BL) AS Anzahl from Staedte left join BL on Staedte.BL = BL.ID Group by BL.ID Order by Anzahl

    bringt die richtige Anzahl Städte pro Bundesland.

    chip: ich erkläre dich damit zum 1. denn du hast (bis auf den kleinen Unterschied dass es der Ersteller der Wikipediaseite nicht aus versehen getan hat) alles erkannt, die Liste enthält Hansestädte und die Lutherstadt Eisleben.
    Andy: dich erkläre ich zum 2. denn die Städte haben (wenn auch auf andere Art) alle etwas mit AutoIt zu tun. Und wenn man ausser den Stadtnamen noch wiki dazu nimmt gibt es nur 104.000 Ergebnisse bei der die Seite nach der du sicher gesucht hast an 3. Stelle steht.

    Ein schönes Rest-Wochenende wünscht autoBert

  • Quizfrage (dt. Städte)

    • autoBert
    • 16. Februar 2013 um 06:55

    Was haben diese Städte:

    Code
    Anklam
    Bremen
    Demmin
    Eisleben
    Greifswald
    Hamburg
    Lübeck
    Lüneburg
    Rostock
    Salzwedel
    Stralsund
    Wismar
    Alles anzeigen

    gemeinsam?

    Zwischenfragen die mit Ja oder Nein zu beantworten sind werden (hoffentlich zeitnah) beantwortet.

    mfg autoBert

  • string split problem

    • autoBert
    • 15. Februar 2013 um 14:30

    Hier noch eine Alternative, die bei grossen Dateien etwas schneller sein sollte:

    Spoiler anzeigen
    [autoit]

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

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

    $bzpath = @ScriptDir & "\Städte.txt"
    FileReadToArrayVersion()

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

    Func FileReadToArrayVersion()
    Local $aCSV, $i
    _FileReadToArray($bzpath, $aCSV)
    MsgBox(0, "FileReadToArrayVersion", $aCSV[0])
    Local $aCSV2D[$aCSV[0] + 1][2]
    For $j = 1 To $aCSV[0]
    $aSplit = StringSplit($aCSV[$j], ";")
    If $aSplit[0] > 1 Then
    $i += 1
    $aCSV2D[$i][0] = $aSplit[1]
    $aCSV2D[$i][1] = $aSplit[2]
    EndIf
    Next
    $aCSV2D[0][0] = $i
    _ArrayDisplay($aCSV2D, "FileReadToArrayVersion")
    ;Return $aCSV2D
    EndFunc ;==>FileReadToArrayVersion

    [/autoit]

    mfg autoBert

    Dateien

    St 33 Byte – 352 Downloads
  • Anzeige in Listbox

    • autoBert
    • 14. Februar 2013 um 20:58

    Da du selbst kein Skript gepostet hast, hier ein allgemeines Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <ListBoxConstants.au3>
    #include <WindowsConstants.au3>
    #include <ButtonConstants.au3>
    #include <GuiComboBox.au3>
    #include <GUIConstantsEx.au3>
    #include <array.au3>
    #include <File.au3>

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

    Const $sCSV = @ScriptDir & "\2cbo.TXT"
    Const $sElect = "bitte auswählen"
    Dim $a_sCSV, $aSplit, $scboChr = ""
    _FileReadToArray($sCSV, $a_sCSV)
    Dim $aCSV[$a_sCSV[0]][2]
    For $i = 1 To UBound($a_sCSV) - 1
    ConsoleWrite($i & $a_sCSV[$i] & @CRLF)
    $aSplit = StringSplit($a_sCSV[$i], ";")
    If Not StringInStr($scboChr, $aSplit[1]) Then $scboChr &= $aSplit[1] & "|"
    $aCSV[$i - 1][0] = $aSplit[1]
    $aCSV[$i - 1][1] = $aSplit[2]
    Next
    ConsoleWrite($scboChr & @CRLF)

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

    $hGui = GUICreate("2 Listen aus 1er CSV", 250, 140, 302, 218)
    $idListChr = GUICtrlCreateList($sElect, 8, 8, 200, 50,BitOR($WS_BORDER, $WS_VSCROLL, $WS_TABSTOP, $LBS_NOTIFY))
    GUICtrlSetData(-1, $scboChr)
    $idListChrNr = GUICtrlCreateList("", 8, 60, 200, 50)
    $idBtnExit = GUICtrlCreateButton("Be&enden", 8, 110)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $idBtnExit
    Exit
    Case $idListChr
    $sVal = GUICtrlRead($idListChr)
    GUICtrlSetData($idListChrNr, "")
    If $sVal <> $sElect Then
    $aSplit = _ArrayFindAll($aCSV, $sVal, 0, 0, True, True, 0)
    $scboChr = ""
    For $i = 0 To UBound($aSplit) - 1
    $scboChr &= $aCSV[$aSplit[$i]][1] & "|"
    Next
    ConsoleWrite($scboChr & @CRLF)
    GUICtrlSetData($idListChrNr, $scboChr)
    _GUICtrlComboBox_SetCurSel($idListChrNr, 0)
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Dafür benötigst du noch: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    mfg autoBert

    Dateien

    2cbo.txt 110 Byte – 174 Downloads
  • warum geht das fenster immer zu

    • autoBert
    • 14. Februar 2013 um 20:27
    Zitat von misterspeed

    Doch mittlerweile seh ich ein guisetstate... irgendwo zwischen den Funktionen versteckt. Recht weit unten findet sich dann auch noch eine Endlosschleife im globalen Kontext.


    Dank dir habe ich jetzt auch beides gefunden. Da sich in der Endlosschleife trotz

    [autoit]

    Opt('GUIOnEventMode', 1)

    [/autoit]

    GuiGetMsg befindet rate ich dem TE sich mit den Grundlagen speziell 'GUI-Referenz - GUI-Konzepte' zu beschägtigen.

    mfg autoBert

  • FileOpenDialog: Filter = keine Dateiendung ?

    • autoBert
    • 14. Februar 2013 um 20:16

    Natürlich geht das, einfach keine Endung angeben:

    [autoit]

    $message = "Um mehrere Dateien auszuwählen, ist die Strg-Taste oder die Shift-Taste zu drücken."

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

    $var = FileOpenDialog($message, @WindowsDir & "", "Dateien ohne Dateiendung (*.)", 1 + 4 )

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

    If @error Then
    MsgBox(4096,"","No File(s) chosen")
    Else
    $var = StringReplace($var, "|", @CRLF)
    MsgBox(4096,"","Es wurde(n) " & $var & " ausgewählt.")
    EndIf

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

    Der Punkt ist allerdings Pflicht.

    mfg autoBert

  • warum geht das fenster immer zu

    • autoBert
    • 14. Februar 2013 um 19:10

    Dies

    Zitat von autoBert

    Wenn du schon ein Skript einsellst sollte dieses, bis auf den Fehler, auch lauffähig sein:

    gilt leider immer noch, denn

    C
    >"D:\Programme\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Programme\AutoIt3\Test\asdfb.au3" /autoit3dir "D:\Programme\AutoIt3" /UserParams    
    +>19:04:32 Starting AutoIt3Wrapper v.2.0.0.1    Environment(Language:0407  Keyboard:00000407  OS:WIN_XP/Service Pack 3  CPU:X86 OS:X86)
    >Running Tidy (2.0.28.3)  from:D:\Programme\AutoIt3\SciTE\tidy
    +>19:04:33 Tidy ended.rc:0
    >Running AU3Check (1.54.19.0)  from:D:\Programme\AutoIt3
    D:\Programme\AutoIt3\Test\asdfb.au3(31,10) : ERROR: can't open include file <BkPic.au3>
    #include <BkPic.au3>
    ~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(77,28) : WARNING: $Base64String: possibly used before declaration.
    _Base64Decode($Base64String)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(77,28) : ERROR: $Base64String: undeclared global variable.
    _Base64Decode($Base64String)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(76,35) : ERROR: _Base64String(): undefined function.
    _Base64String($bSaveBinary = False)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3(77,28) : ERROR: _Base64Decode(): undefined function.
    _Base64Decode($Base64String)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    D:\Programme\AutoIt3\Test\asdfb.au3 - 4 error(s), 1 warning(s)
    !>19:04:34 AU3Check ended.rc:2
    +>19:05:04 AutoIt3Wrapper Finished
    >Exit code: 0    Time: 31.799
    Alles anzeigen

    jetzt ist allerdings deutlich zu erkennen:

    Zitat von misterspeed

    das guisetstate fehlt scheinbar... ausserdem sehe ich keine Endlossschleife, die das Programm am Leben halten würde

    mfg autoBert

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™