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

  • ListviewItem nach best. Spalte sortieren

    • autoBert
    • 23. Januar 2013 um 14:08
    Zitat von crdy

    ich möchte ja nur abfallend auf eine spezielle spalte sortieren und zwar nachdem ich das listview erstellt habe. Nicht erst wenn ich Spaltenkopf angeklickt habe.


    Dann schau dir das von BugFix bereitserwähnte

    [autoit]

    _GUICtrlListView_SimpleSort

    [/autoit]

    in sw Hilfe an.

    mfg autoBert

  • Quellcode durchsuchen/Stringregexp richtig benutzen

    • autoBert
    • 23. Januar 2013 um 13:50
    Zitat von Norman Bates

    Ich möchte ja nur wissen warum er nicht den quellcode ausliest obwohl er die richtige URL bekommt.


    Bei mir wird der Quellcode ausgelesen. Da es nicht das komplette Skript ist vermute ich das die Datei (ebay1.txt) nicht beschreibar ist, z.B. weil FileClose vergessen.

    Im übrigen verstöst du gegen die AGB von eBay

    Zitat

    § 18 Systemintegrität und Störung der eBay-Website

    4. Die auf der eBay-Website abgelegten Inhalte dürfen ohne vorherige Zustimmung der Rechteinhaber weder kopiert oder verbreitet, noch in sonstiger Weise genutzt oder vervielfältigt werden. Dies gilt auch für ein Kopieren im Wege von "Robot/Crawler"-Suchmaschinentechnologien oder durch sonstige automatische Mechanismen.

    und damit gegen die Forenregeln.

    Daher vote for close

    mfg autoBert

  • IE.au3 neues Pop-up handlen

    • autoBert
    • 22. Januar 2013 um 02:26
    Zitat von Royal

    (Daher muss IE im Admin Mode gestartet werden, damit er protected mode nicht verlässt, daher # RequireAdmin)


    Imho Schwachsinn,der Admin-Account schützt nicht besser vor Angriffen, im Gegenteil im Falle eines solchen braucht sich der Angreifer bei angemeldetem Admin keine Admin-Rechte erschleichen und kann gleich sein Werk beginnen. Wenn man allerdings im eigenen IntraNet mit Angriffen rechnen muss sollte man besser den IntraNet-Server gleich ausschalten denn dann ist er gesichert.

    mfg autoBert

  • Liniendiagramm erstellen

    • autoBert
    • 22. Januar 2013 um 02:07

    Schau dir dazu [ offen ] Grafische Auswertung in Autoit an, besonders das erwähnte rmChart scheint intersant zu sein. Aber auch ohne zusätzliche UDF ist soetwas lösbar,siehe dazu Post #7.

  • Progressbar für FileCopy

    • autoBert
    • 22. Januar 2013 um 00:43

    Einfach mit Int dafür sorgen das nur ganzzahlige Ergbnisse herauskommen:

    [autoit]

    $iPercent = Int($i / $aToCopy[0] * 100)

    [/autoit]

    mfg autoBert

  • Kaufberatung Tablet PC AutoIT

    • autoBert
    • 21. Januar 2013 um 18:54
    Zitat von dreamer68

    falls jemand Vorteile und Nachteile des Tab Smart Me400 kennt darf er sie mir gerne mitteilen^^


    Wie bei allen Tablets ist der Speicherplatz sehr begrenzt, während Netbooks üblicherweise > 250 GB Festplatten haben hast du hier nur 64 GB Flashspeicher. Ob der Gewichtsvorteil (~600 g) und der Touchscreen dies und den doppelten Preis ausgleichen must du anhand deiner Nutzungsgewohnheiten selbst entscheiden.

    mfg autoBert

  • Progressbar für FileCopy

    • autoBert
    • 21. Januar 2013 um 18:41
    Zitat von dieselwiesel

    Allerdings addiert es bei der Ausgabe dazu, wenn man erneut den LW Button drückt. Kann man da den "Zwischenspeicher" löschen ( _ArrayDelete() )?


    Einfach die Elemente für die Summen auf 0 setzen:

    Spoiler anzeigen
    [autoit]

    Func _prog($sLW)
    Local $aToCopy[1]
    For $i = 0 To UBound($dir) - 1
    $dir[$i][1] = 0
    Next
    If Not FileExists($alle) Then
    MsgBox(64, "Info", "Keine Dateien gefunden in " & @ScriptDir)
    ElseIf FileExists($sLW & "\meinprogramm\meine.exe") Then
    For $i = 0 To UBound($data) - 1
    $aPath = _SplitPath($data[$i])
    $aTmp = _FileListToArray($aPath[0], $aPath[1])
    _ArrayConcatenate($aToCopy, $aTmp, 1)
    Next
    $aToCopy[0] = UBound($aToCopy) - 1
    ;_ArrayDisplay($aToCopy)
    For $i = 1 To $aToCopy[0]
    For $j = 0 To UBound($data) - 1
    If @ScriptDir & "\" & StringLeft($aToCopy[$i], 6) & "*.zip" = $data[$j] Then
    ConsoleWrite(@ScriptDir & "\" & $aToCopy[$i] & " ==> " & $sLW & $dir[$j][0] & $aToCopy[$i] & @TAB)
    If FileCopy(@ScriptDir & "\" & $aToCopy[$i], $sLW & $dir[$j][0] & $aToCopy[$i], 1) Then
    ConsoleWrite("OK" & @CRLF)
    $dir[$j][1] += 1
    Else
    ConsoleWrite("FAILED" & @CRLF)
    EndIf
    EndIf
    Next
    $iPercent = $i / $aToCopy[0] * 100
    GUICtrlSetData($Progress1, $iPercent)
    Next
    _ArrayDisplay($dir)
    Else
    MsgBox(64, "Fehler", "Meinprog.exe nicht gefunden")
    EndIf
    EndFunc ;==>_prog

    [/autoit]

    mfg autoBert

  • Progressbar für FileCopy

    • autoBert
    • 21. Januar 2013 um 14:05
    Zitat von dieselwiesel

    Versuche jetzt noch, ob in der MsgBox angezeigt werden kann wieviele Dateien wohin kopiert wurden.


    Eine einfache Übung:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("MeinProgramm", 314, 196, 192, 114)
    $cprog = GUICtrlCreateButton("C:", 72, 45, 75, 25)
    $dprog = GUICtrlCreateButton("D:", 166, 45, 75, 25)
    $eprog = GUICtrlCreateButton("E:", 72, 77, 75, 25)
    $fprog = GUICtrlCreateButton("F:", 166, 77, 75, 25)
    $Progress1 = GUICtrlCreateProgress(82, 130, 150, 16)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $data[4]
    $data[0] = @ScriptDir & '\dateiA*.zip' ;Die Updatedateien sind fortlaufend numeriert, also dateiA001...002...003 usw. darum eine Wildcard wenn mehrere vorhanden sind.
    $data[1] = @ScriptDir & '\dateiB*.zip' ;Sie sollen auch nur Dateien kopiert werden, die in der ScriptDir sind.
    $data[2] = @ScriptDir & '\dateiC*.zip'
    $data[3] = @ScriptDir & '\dateiD*.zip'
    $alle = @ScriptDir & '\datei*.zip'
    Global $dir[4][2]
    $dir[0][0] = '\meinprogramm\1\update\'
    $dir[1][0] = '\meinprogramm\2\update\'
    $dir[2][0] = '\meinprogramm\3\update\'
    $dir[3][0] = '\meinprogramm\4\update\'

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

    Func _SplitPath($sPath)
    ;splittet in DateiPfad und Datei (-filter)
    ;Autor autoBert
    Local $aLocalPath = StringSplit($sPath, "\")
    Local $aRet[2]
    If $aLocalPath[0] > 1 Then
    Local $sTmp = $aLocalPath[1] & "\"
    For $i = 2 To $aLocalPath[0] - 1
    $sTmp &= $aLocalPath[$i]
    $sTmp &= "\"
    Next
    $aRet[1] = $aLocalPath[$aLocalPath[0]]
    $aRet[0] = $sTmp
    EndIf
    Return $aRet
    EndFunc ;==>_SplitPath

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

    Func _prog($sLW)
    Local $aToCopy[1]
    If Not FileExists($alle) Then
    MsgBox(64, "Info", "Keine Dateien gefunden in " & @ScriptDir)
    ElseIf FileExists($sLW & "\meinprogramm\meine.exe") Then
    For $i = 0 To UBound($data) - 1
    $aPath = _SplitPath($data[$i])
    $aTmp = _FileListToArray($aPath[0], $aPath[1])
    _ArrayConcatenate($aToCopy, $aTmp, 1)
    Next
    $aToCopy[0] = UBound($aToCopy) - 1
    ;_ArrayDisplay($aToCopy)
    For $i = 1 To $aToCopy[0]
    For $j = 0 To UBound($data) - 1
    If @ScriptDir & "\" & StringLeft($aToCopy[$i], 6) & "*.zip" = $data[$j] Then
    ConsoleWrite(@ScriptDir & "\" & $aToCopy[$i] & " ==> " & $sLW & $dir[$j][0] & $aToCopy[$i] & @TAB)
    If FileCopy(@ScriptDir & "\" & $aToCopy[$i], $sLW & $dir[$j][0] & $aToCopy[$i], 1) Then
    ConsoleWrite("OK" & @CRLF)
    $dir[$j][1]+=1
    Else
    ConsoleWrite("FAILED" & @CRLF)
    EndIf
    EndIf
    Next
    $iPercent = $i / $aToCopy[0] * 100
    GUICtrlSetData($Progress1, $iPercent)
    Next
    _ArrayDisplay($dir)
    Else
    MsgBox(64, "Fehler", "Meinprog.exe nicht gefunden")
    EndIf
    EndFunc ;==>_prog

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $cprog
    _prog("c:")
    Case $dprog
    _prog("d:")
    Case $eprog
    _prog("e:")
    Case $fprog
    _prog("f:")
    EndSwitch
    WEnd

    [/autoit]

    Die Ausgabe kannst du aus dem jetzt 2-dimensinalen Array $Dir generieren.

    mfg autoBert

  • Farben ändern

    • autoBert
    • 21. Januar 2013 um 09:59
    Zitat von Turbolocke

    ich versteh zwar nicht warum es jetzt klappt
    ...
    du hast doch nur an der Erkennung der farbe gebastelt, aber da sich mein mauszeiger beim testen an die positionen bewegt hat sollte er das doch auch gemacht haben O.o verstehe ich nicht warum das bei mir nicht geklappt hat... Hätte eig gedacht es liegt an der set pixel funktion bzw dem handle oder so


    Genau beim Handle hast du auch einen Untrschied:

    [autoit]

    SetPixel(0x000C0258, $x, $y, 0xFBF18F)

    [/autoit]

    Du benutzt nicht das ermittelte Handle sondern einen fixen Wert. Handles werden aber beim Erzeugen des Fensters vergeben, es ist Zufall wenn dieses bei Neustart des Programms gleich ist. Du hast also im Nirgendwo oder einem anderen Fenster die Farben verändert.

    mfg autoBert

  • Kaufberatung Tablet PC AutoIT

    • autoBert
    • 21. Januar 2013 um 08:06

    Kauf dir besser ein Note- oder Netbook. Bei den Tabletts reicht dein Budget nicht. Selbst das wohl günstigste Vivo Tab Smart ME400 kommt lt. http://www.golem.de/news/asus-vivo…1301-96920.html zusammen mit Tastatur auf 610 €. Bei den Netbooks mit gleichem Prozessor (Atom Z2760) fährst du um die Hälfte günstiger und bei Notebooks bis 500 € sind deutlich leistungsfähigere Prozessoren verbaut.

    mfg autoBert

  • Ich scheitere an Stringauswertung /-ausgabe

    • autoBert
    • 21. Januar 2013 um 06:49

    Ich würde es so lösen:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include "Array.au3"
    #include "GUIConstantsEx.au3"

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

    Global $aIPs[2][2]
    $aIPs[0][0] = "178.63.84.143"
    $aIPs[0][1] = "28963"
    $aIPs[1][0] = "178.254.20.92"
    $aIPs[1][1] = "28960"

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

    Global $hGUI = GUICreate("Infos", 455, 175, 100, 200, -1)
    Global $idLV_Server = GUICtrlCreateListView("IP/Port|Servername|Gametype|Hardcore|Spieler|Map|Serverversion", 0, 0, 450, 170)
    GUISetState(@SW_SHOW)
    UDPStartup()
    For $i = 0 To UBound($aIPs) - 1
    $aInfo = _GetServerInfo($aIPs[$i][0], $aIPs[$i][1], 10000) ;TimeOut evtl. anpassen
    $sItem = $aInfo[0] & "/" & $aInfo[1] & "|" & $aInfo[2] & "|" & $aInfo[5] & "|" & $aInfo[7] & "|" & $aInfo[8] & " von " & $aInfo[9] & "|" & $aInfo[6] & "|" & $aInfo[3] & " v" & $aInfo[4]
    GUICtrlCreateListViewItem($sItem, $idLV_Server)
    _ArrayDisplay($aInfo)
    Next
    UDPShutdown()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd

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

    Func _GetServerInfo($IP, $PORT, $iTimeOut)
    Local $aRaw, $iStart = TimerInit()
    Local $aRet[10]
    #cs
    0 = IP
    1 = Port
    2 = Servername
    3 = Gamename
    4 = (Server)shortversion
    5 = Gametype
    6 = Map
    7 = Hardcore
    8 = Spieler derzeit
    9 = Spieler max
    #ce
    $aRet[0] = $IP
    $aRet[1] = $PORT
    $aRet[2] = "antwortet nicht"

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

    $hSOCKET = UDPOpen($IP, $PORT)
    UDPSend($hSOCKET, "ÿÿÿÿ getinfo")
    Do
    $sRECV = UDPRecv($hSOCKET, 2048)
    Until $sRECV <> "" Or TimerDiff($iStart) > $iTimeOut
    UDPCloseSocket($hSOCKET)
    If $sRECV <> "" Then
    $aRaw = StringSplit(BinaryToString($sRECV), "\")
    ;_ArrayDisplay($aRaw)
    For $i = 2 To $aRaw[0] - 1 Step 2
    ConsoleWrite($aRaw[$i] & "=" & $aRaw[$i + 1] & @CRLF)
    Switch $aRaw[$i]
    Case "hostname"
    $aRet[2] = StringRegExpReplace($aRaw[$i + 1], "\^\d{1}", "") ;hier sind noch Zeichen enthalten welche die Formatierung der LV zerstören
    $aRet[2] = "Server " & $i
    Case "gamename"
    $aRet[3] = StringStripWS($aRaw[$i + 1], 7)
    Case "shortversion"
    $aRet[4] = StringStripWS($aRaw[$i + 1], 7)
    Case "gametype"
    $aRet[5] = _GetGameTyp(StringStripWS($aRaw[$i + 1], 7))
    Case "mapname"
    $aRet[6] = _GetMapName(StringStripWS($aRaw[$i + 1], 7))
    Case "hc"
    $aRet[7] = _GetHardCore(StringStripWS($aRaw[$i + 1], 7))
    Case "clients"
    $aRet[8] = StringStripWS($aRaw[$i + 1], 7)
    Case "sv_maxclients"
    $aRet[9] = StringStripWS($aRaw[$i + 1], 7)
    EndSwitch
    Next
    EndIf
    Return $aRet
    EndFunc ;==>_GetServerInfo

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

    Func _GetMapName($sMap)
    Local $sRet = $sMap
    Switch $sMap
    Case "mp_afghan"
    $sRet = "Afghan"
    Case "mp_boneyard"
    $sRet = "Scrapyard"
    Case "mp_brecourt"
    $sRet = "Wasteland"
    Case "mp_derail"
    $sRet = "Derail"
    Case "mp_estate"
    $sRet = "Estate"
    Case "mp_favela"
    $sRet = "Favela"
    Case "mp_invasion"
    $sRet = "Invasion"
    Case "mp_nightshift"
    $sRet = "Skidrow"
    Case "mp_quarry"
    $sRet = "Quarry"
    Case "mp_rundown"
    $sRet = "Rundown"
    Case "mp_subbase"
    $sRet = "Subbase"
    Case "mp_terminal"
    $sRet = "Terminal"
    Case "mp_underpass"
    $sRet = "Underpass"
    Case "mp_abandon"
    $sRet = "? Abandon"
    Case "mp_compact"
    $sRet = "? Compact"
    Case "mp_complex"
    $sRet = "? Complex"
    Case "mp_crash"
    $sRet = "Crash"
    Case "mp_fuel2"
    $sRet = "Fuel"
    Case "mp_overgrown"
    $sRet = "Overgrown"
    Case "mp_storm"
    $sRet = "? Storm"
    Case "mp_strike"
    $sRet = "Strike"
    Case "mp_trailerpark"
    $sRet = "Trailer Park"
    Case "mp_vacant"
    $sRet = "Vacant"
    Case "mp_highrise"
    $sRet = "Highrise"
    ;Case Else
    ; $sRet = $sARRAY[17]
    EndSwitch
    Return $sRet
    EndFunc ;==>_GetMapName

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

    Func _GetGameTyp($sGT)
    Local $sRet = $sGT
    Switch $sGT
    Case "ctf"
    $sRet = "Capture The Flag"
    Case "dd"
    $sRet = "Sprengkommando"
    Case "dom"
    $sRet = "Herrschaft"
    Case "sd"
    $sRet = "Suchen Und Zerstören"
    Case "war"
    $sRet = "Team Deathmatch"
    Case "dm"
    $sRet = "Frei Für Alle"
    Case "sab"
    $sRet = "Sabotage"
    Case "koth"
    $sRet = "Hauptquartier"
    Case "gtnw"
    $sRet = "Thermonuklearer Krieg"
    Case "oitc"
    $sRet = "One In The Chamber"
    Case "oneflag"
    $sRet = "Eine Flagge"
    Case "arena"
    $sRet = "Arena"
    Case "gg"
    $sRet = "GunGame"
    Case "ss"
    $sRet = "Sharpshooter"
    EndSwitch
    ConsoleWrite($sGT & "==> " & $sRet & @CRLF)
    Return $sRet
    EndFunc ;==>_GetGameTyp

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

    Func _GetHardCore($sHC)
    Local $sRet
    If $sHC = "1" Then
    $sRet = "ja"
    Else
    $sRet = "nein"
    EndIf
    Return $sRet
    EndFunc ;==>_GetHardCore

    [/autoit]

    Bis auf den Schönheitsfehler das der Servername noch Zeichen enthält die die Formatierung der LV zerschiessen klappt alles. Bei deiner Darstellungsform kann es ncht vorkommen.

    mfg autoBert

  • [RichEdit] Mehrere RichEdit erstellen nicht möglich

    • autoBert
    • 20. Januar 2013 um 14:05
    Zitat von Joriktos

    Edit: Okay, es klappt immernoch nicht. Welche AutoIt- und/oder SciTE-Version verwendet ihr?


    Ich benutze AutoIt 3.6.6.1 und SciTE Version 1.78.

    mfg autoBert

  • [RichEdit] Mehrere RichEdit erstellen nicht möglich

    • autoBert
    • 20. Januar 2013 um 10:02

    Auch ich kann mehrere Richedits in einem Skript erstellen:

    Spoiler anzeigen
    [autoit]

    #include <GuiRichEdit.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1)
    $hRichEdit1 = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 110, _
    BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AppendText($hRichEdit1, @CR & "This is more text")
    $hRichEdit2 = _GUICtrlRichEdit_Create($hGui, "This is another test.", 10, 130, 350, 120, _
    BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AppendText($hRichEdit2, @CR & "aaaaaaaaaaaaaa")
    $hButton = GUICtrlCreateButton("Gui &2", 10, 270, 80, 25)
    $hGui2 = GUICreate("GUI 2 (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, 40, 140)
    $hRichEdit2 = _GUICtrlRichEdit_Create($hGui2, "This is text on the 2. GUI.", 10, 10, 300, 110, _
    BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
    _GUICtrlRichEdit_AppendText($hRichEdit1, @CR & "This is more text")
    $hButton2 = GUICtrlCreateButton("&Zurück", 10, 270, 80, 25)
    GUISetState(@SW_HIDE, $hGui2)
    GUISetState(@SW_SHOW, $hGui)

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

    While True
    $iMsg = GUIGetMsg(1)
    Switch $iMsg[1]
    Case $hGui
    Switch $iMsg[0]
    Case $GUI_EVENT_CLOSE
    GUIDelete($hGui2)
    GUIDelete($hGui)
    Exit
    Case $hButton
    GUISetState(@SW_SHOW, $hGui2)
    GUISetState(@SW_DISABLE, $hGui)
    EndSwitch
    Case $hGui2
    Switch $iMsg[0]
    Case $GUI_EVENT_CLOSE, $hButton2
    GUISetState(@SW_HIDE, $hGui2)
    GUISetState(@SW_ENABLE, $hGui)
    WinActivate($hGui)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]

    Du hast einen Fehler in deinem Skript wenn es bei dir nicht klappt.

    mfg autoBert

  • Progressbar für FileCopy

    • autoBert
    • 20. Januar 2013 um 08:25
    Zitat von dieselwiesel

    bist ein ganz schöner Schlingel :D hab gefunden woran es lag - Zeile 61 Spalte 69, der Count von StringTrimRight für den Dateinamen (in dem Fall)... bin echt erstaunt was nicht alles für Blödsinn zu machen geht (wenn man Ahnung davon hat) :rofl: Könnte man das auch "abstellen" (nur interessehalber)?

    Auf Grund deines Kommentars bin ich von 3stelligen Nr.'n ausgegangen. Man kann StringTrimRight($aToCopy[$i], 7) gegen StringLeft($aToCopy[$i], 6) tauschen (wie du es bereits getan hast), dies ist sogar günstiger da dann nicht nur 3stellige Nr. berücksichtigt werden.

    Zitat von dieselwiesel

    Hab mal die Zeile 58 gelöscht, damit das Array ListView nicht angezeigt wird.

    War ja nur zur Kontrolle.

    Zitat von dieselwiesel

    Das mit den Dir erstellen wenn sie nicht das sind ist leicht unvorteilhaft, interessanter wär es nicht zu kopieren wenn die Dir nicht exsistiert.

    Du kannst den Parameter von FileCopy auf 1 setzen. Dann sollte allerdings auch der Dateiname mit übergeben werden:

    Spoiler anzeigen
    [autoit]

    Func _prog($sLW)
    Local $aToCopy[1]
    If Not FileExists($alle) Then
    MsgBox(64, "Info", "Keine Dateien gefunden in " & @ScriptDir)
    ElseIf FileExists($sLW & "\meinprogramm\meine.exe") Then
    For $i = 0 To UBound($data) - 1
    $aPath = _SplitPath($data[$i])
    $aTmp = _FileListToArray($aPath[0], $aPath[1])
    _ArrayConcatenate($aToCopy, $aTmp, 1)
    Next
    $aToCopy[0] = UBound($aToCopy) - 1
    ;_ArrayDisplay($aToCopy)
    For $i = 1 To $aToCopy[0]
    For $j = 0 To UBound($data) - 1
    If @ScriptDir & "\" & StringLeft($aToCopy[$i], 6) & "*.zip" = $data[$j] Then
    ConsoleWrite(@ScriptDir & "\" & $aToCopy[$i] & " ==> " & $sLW & $dir[$j] & $aToCopy[$i] & @TAB)
    If FileCopy(@ScriptDir & "\" & $aToCopy[$i], $sLW & $dir[$j] & $aToCopy[$i], 1) Then
    ConsoleWrite("OK" & @CRLF)
    Else
    ConsoleWrite("FAILED" & @CRLF)
    EndIf
    EndIf
    Next
    $iPercent = $i / $aToCopy[0] * 100
    GUICtrlSetData($Progress1, $iPercent)
    Next
    Else
    MsgBox(64, "Fehler", "Meinprog.exe nicht gefunden")
    EndIf
    EndFunc ;==>_prog

    [/autoit]

    mfg autoBert

  • Progressbar für FileCopy

    • autoBert
    • 19. Januar 2013 um 18:40

    Mein Skript funktioniert einwandfrei wenn die Zielverzeichnisstruktur erstellt werden kann oder bereits korrekt existiert. Da aber dein Skript wenn die Unterkaloge Update nicht existieren jeweils eine Datei Update erstellt funktioniert meines danach nicht mehr da die Zielverzeichnisstruktur weder erstellt werden kann nooch bereits korrekt existiert. Teste also mein Skript einmal nur mit bestehendem Hauptverzeichnis(LW:\meinprogramm)mit der EXE welche ja vorhanden sein muss.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("MeinProgramm", 314, 196, 192, 114)
    $cprog = GUICtrlCreateButton("C:", 72, 45, 75, 25)
    $dprog = GUICtrlCreateButton("D:", 166, 45, 75, 25)
    $eprog = GUICtrlCreateButton("E:", 72, 77, 75, 25)
    $fprog = GUICtrlCreateButton("F:", 166, 77, 75, 25)
    $Progress1 = GUICtrlCreateProgress(82, 130, 150, 16)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $data[4]
    $data[0] = @ScriptDir & '\dateiA*.zip' ;Die Updatedateien sind fortlaufend numeriert, also dateiA001...002...003 usw. darum eine Wildcard wenn mehrere vorhanden sind.
    $data[1] = @ScriptDir & '\dateiB*.zip' ;Sie sollen auch nur Dateien kopiert werden, die in der ScriptDir sind.
    $data[2] = @ScriptDir & '\dateiC*.zip'
    $data[3] = @ScriptDir & '\dateiD*.zip'
    $alle = @ScriptDir & '\datei*.zip'
    Global $dir[4]
    $dir[0] = '\meinprogramm\1\update\'
    $dir[1] = '\meinprogramm\2\update\'
    $dir[2] = '\meinprogramm\3\update\'
    $dir[3] = '\meinprogramm\4\update\'

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

    Func _SplitPath($sPath)
    ;splittet in DateiPfad und Datei (-filter)
    ;Autor autoBert
    Local $aLocalPath = StringSplit($sPath, "\")
    Local $aRet[2]
    If $aLocalPath[0] > 1 Then
    Local $sTmp = $aLocalPath[1] & "\"
    For $i = 2 To $aLocalPath[0] - 1
    $sTmp &= $aLocalPath[$i]
    $sTmp &= "\"
    Next
    $aRet[1] = $aLocalPath[$aLocalPath[0]]
    $aRet[0] = $sTmp
    EndIf
    Return $aRet
    EndFunc ;==>_SplitPath

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

    Func _prog($sLW)
    Local $aToCopy[1]
    If Not FileExists($alle) Then
    MsgBox(64, "Info", "Keine Dateien gefunden in " & @ScriptDir)
    ElseIf FileExists($sLW & "\meinprogramm\meine.exe") Then
    For $i = 0 To UBound($data) - 1
    $aPath = _SplitPath($data[$i])
    $aTmp = _FileListToArray($aPath[0], $aPath[1])
    _ArrayConcatenate($aToCopy, $aTmp, 1)
    Next
    $aToCopy[0] = UBound($aToCopy) - 1
    _ArrayDisplay($aToCopy)
    For $i = 1 To $aToCopy[0]
    For $j = 0 To UBound($data) - 1
    If @ScriptDir & "\" & StringTrimRight($aToCopy[$i], 7) & "*.zip" = $data[$j] Then
    ConsoleWrite(@ScriptDir & "\" & $aToCopy[$i] & " ==> " & $sLW & $dir[$j] & $aToCopy[$i] & @TAB)
    If FileCopy(@ScriptDir & "\" & $aToCopy[$i], $sLW & $dir[$j], 9) Then
    ConsoleWrite("OK" & @CRLF)
    Else
    ConsoleWrite("FAILED" & @CRLF)
    EndIf
    EndIf
    Next
    $iPercent = $i / $aToCopy[0] * 100
    GUICtrlSetData($Progress1, $iPercent)
    ;Sleep(Random(100, 1000, 1)) ;diese Zeile wieder löschen
    Next
    Else
    MsgBox(64, "Fehler", "Meinprog.exe nicht gefunden")
    EndIf
    EndFunc ;==>_prog

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $cprog
    _prog("c:")
    Case $dprog
    _prog("d:")
    Case $eprog
    _prog("e:")
    Case $fprog
    _prog("f:")
    EndSwitch
    WEnd

    [/autoit]

    mfg autoBert

  • AutoIT PNG Bilder ausgeben

    • autoBert
    • 18. Januar 2013 um 06:49

    Hallo SevenTM,

    das 3. Beispiel zu GUICtrlCreatePic zeigt wie man PNG-Bilder auf der GUI ausgeben kann. Am einfachsten ist es imho jedoch mit der [UDF] GUICtrlPic - Update am 27.12.2010.

    mfg autoBert

  • Welchen E-Mail Anbieter nutzt ihr?

    • autoBert
    • 17. Januar 2013 um 13:26

    Bei der Abstimmung sind ja Mehrfachnennungen möglich. Wenn man davon ausgeht das "Insgesamt 35 Stimmen" "Insgesamt 35 Teilnehmer" heisen soll stimmen auch die 57% für (mittlerweile) 20 Stimmen.

    mfg autoBert

  • Englisches Tastaturlayout in deutsches "Autoitlayout"

    • autoBert
    • 17. Januar 2013 um 01:06

    Die Lösung ist ganz einfach: er muss das dt. Tastaturlayout laden und dann herausfinden wo sich äöüß etc.befinden. Für eine von dir angestrebte Softwarelösung kannst du hier keine Hilfe erwarten, denn diese wäre im Prinzip ein Keylogger (für einen Teilbereich der Tastatur) und kollidiert damit mit den Forenregeln.

    PS.: In zukünftigen Hilfethemen solltest du das Skript einstellen, denn von Bildern abtippen macht niemand gerne.

    mfg autoBert

  • Exel Daten (.xls / .xlsx) in .txt Daten umwandeln

    • autoBert
    • 16. Januar 2013 um 11:40
    Zitat von ru642

    Kann geclosed werden


    Geclosed werden hier nur Themen die gegen die Forenregeln verstossen. Du solltest es allerdings auf gelöst setzen.
    Dazu einfach den Eröffnungsbeitrag bearbeiten und den Präfix (nähe) Überschrift auf gelöst setzen und absenden.

    danke autoBert

  • Progressbar für FileCopy

    • autoBert
    • 14. Januar 2013 um 02:54

    Hallo dieselwiesel,

    hier das Skript mit dem eingebautem Fotschritt:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("MeinProgramm", 314, 196, 192, 114)
    $cprog = GUICtrlCreateButton("C:", 72, 45, 75, 25)
    $dprog = GUICtrlCreateButton("D:", 166, 45, 75, 25)
    $eprog = GUICtrlCreateButton("E:", 72, 77, 75, 25)
    $fprog = GUICtrlCreateButton("F:", 166, 77, 75, 25)
    $Progress1 = GUICtrlCreateProgress(82, 130, 150, 16)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    Global $data[4]
    $data[0] = @ScriptDir & '\dateiA*.zip' ;Die Updatedateien sind fortlaufend numeriert, also dateiA001...002...003 usw. darum eine Wildcard wenn mehrere vorhanden sind.
    $data[1] = @ScriptDir & '\dateiB*.zip' ;Sie sollen auch nur Dateien kopiert werden, die in der ScriptDir sind.
    $data[2] = @ScriptDir & '\dateiC*.zip'
    $data[3] = @ScriptDir & '\dateiD*.zip'
    $alle = @ScriptDir & '\datei*.zip'
    Global $dir[4]
    $dir[0] = '\meinprogramm\1\update\'
    $dir[1] = '\meinprogramm\2\update\'
    $dir[2] = '\meinprogramm\3\update\'
    $dir[3] = '\meinprogramm\4\update\'

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

    Func _SplitPath($sPath)
    ;splittet in DateiPfad und Datei (-filter)
    ;Autor autoBert
    Local $aLocalPath = StringSplit($sPath, "\")
    Local $aRet[2]
    If $aLocalPath[0] > 1 Then
    Local $sTmp = $aLocalPath[1] & "\"
    For $i = 2 To $aLocalPath[0] - 1
    $sTmp &= $aLocalPath[$i]
    $sTmp &= "\"
    Next
    $aRet[1] = $aLocalPath[$aLocalPath[0]]
    $aRet[0] = $sTmp
    EndIf
    Return $aRet
    EndFunc ;==>_SplitPath

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

    Func _prog($sLW)
    Local $aToCopy[1]
    If Not FileExists($alle) Then
    MsgBox(64, "Info", "Keine Dateien gefunden in " & @ScriptDir)
    ElseIf FileExists($sLW & "\meinprogramm\meine.exe") Then
    For $i = 0 To UBound($data) - 1
    $aPath = _SplitPath($data[$i])
    $aTmp = _FileListToArray($aPath[0], $aPath[1])
    _ArrayConcatenate($aToCopy, $aTmp, 1)
    Next
    $aToCopy[0] = UBound($aToCopy) - 1
    For $i = 1 To $aToCopy[0]
    For $j = 0 To UBound($data) - 1
    If @ScriptDir & "\"&StringTrimRight($aToCopy[$i], 7) & "*.zip" = $data[$j] Then
    ConsoleWrite(@ScriptDir & "\"&$aToCopy[$i] & " ==> " & $sLW & $dir[$j] & &$aToCopy[$i] @CRLF)
    FileCopy(@ScriptDir & "\"&$aToCopy[$i], $sLW & $dir[$j], 9)
    EndIf
    Next
    $iPercent = $i / $aToCopy[0] * 100
    GUICtrlSetData($Progress1, $iPercent)
    ;Sleep(Random(100, 1000, 1)) ;diese Zeile wieder löschen
    Next
    Else
    MsgBox(64, "Fehler", "Meinprog.exe nicht gefunden")
    EndIf
    EndFunc ;==>_prog

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $cprog
    _prog("c:")
    Case $dprog
    _prog("d:")
    Case $eprog
    _prog("e:")
    Case $fprog
    _prog("f:")
    EndSwitch
    WEnd

    [/autoit]

    du solltest dir alle verwendeten Funtionen in _prog und SplitPath in der Hilfe anschauen.

    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™