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

Beiträge von BugFix

  • Script unterteilen

    • BugFix
    • 22. November 2008 um 15:40

    Ungetestet, aber sollte klappen:

    Spoiler anzeigen
    [autoit]

    Local $arFile[7] = ['.zip','.z01','.z02','.z03','.z04','.z05','.z06']
    Local $remote = 'http://wbi.eluhost.de/Partitionirer/Partitonirer'
    Local $local = 'C:\DOWNLOAD\partitonirer'
    Local $step = Int(100/7), $percent = 0
    DirCreate($local)
    Sleep(500)
    ProgressOn("Fortschritt", "geladen", "0 Prozent")
    For $i = 0 To UBound($arFile) -1
    $percent += $step
    ProgressSet($percent, $percent, ' Prozent')
    InetGet($remote & $arFile[$i], $local & $arFile[$i])
    Next
    ProgressSet(100 , "Fertig", "Komplett")
    sleep(1500)
    ProgressOff()
    Run("C:\WINDOWS\explorer.exe /root, C:\DOWNLOAD")

    [/autoit]
  • etwas kopieren und wieder ausgeben

    • BugFix
    • 22. November 2008 um 15:20

    Läßt sich der Text denn nicht, zB. anhand des Sourcecodes der Seite auffinden? Mausklickerei ist die denkbar schlechteste Lösung.

  • Script unterteilen

    • BugFix
    • 22. November 2008 um 15:15

    Die InetGet gehören in eine Schleife und vor oder nach jedem Schleifendurchlauf setzt du den neuen Progresswert.

  • Schleifen Problem

    • BugFix
    • 22. November 2008 um 15:13

    Warum erstellst du die GUI nicht am Anfang und weist je nach Auswahl unterschiedliche Label zu? Würde den Code um etwa 70 % kürzen und auch wesentlich übersichtlicher werden. Außerdem ist es kein sehr guter Stil Includes und GUI-Erstellung innerhalb von Schleifen auszuführen.

  • etwas kopieren und wieder ausgeben

    • BugFix
    • 22. November 2008 um 15:05
    Zitat von Pecadis

    immer an der exakt gleichen stelle


    Du liest (oder verstehst) nicht, was ich frage. Was soll ich bitte, mit dieser Antwort anfangen?
    Ich geb dir jetzt als Codezeile: MouseMove("immer an der exakt gleichen stelle") ??
    Also letzter Versuch: WAS macht diese Position eindeutig? Muß doch durch irgendwas charakterisiert sein. (Feldname, Position zwischen fixen Textbestandteilen etc.)

  • etwas kopieren und wieder ausgeben

    • BugFix
    • 22. November 2008 um 14:57
    Zitat von Pecadis

    dass mir des script an einer passage "beispieltext" des per mouseclick makiert


    Und woher soll das Skript wissen, was markiert werden soll? Wodurch ist dieser Text zu identifizieren?

  • Schleifen Problem

    • BugFix
    • 22. November 2008 um 14:45

    Mal am Rande: Ich weiß, dass es in einigen Sprachen als Standard gilt, nach jeder Codezeile eine Leerzeile einzufügen. Den Sinn dieses Tuns konnte ich noch nie erkennen. Damit zerstörst du jede Übersicht in einem Skript. Und wenn es dann sogar, wie hier, 2 Leerzeilen sind... :wacko:

  • etwas kopieren und wieder ausgeben

    • BugFix
    • 22. November 2008 um 14:41

    Wo steht Was? Aufgrund welcher Eigenschaften ist das Was zu identifizieren und soll kopiert werden?
    Fasse erst mal deine Gedanken in klare Strukturen und dann in uns verständliche Sätze. 8|

  • Stringregexp Frage

    • BugFix
    • 21. November 2008 um 22:56

    Hiermit kannst du alle Ziffern(Zahlen) aus dem String auslesen:

    [autoit]

    #include<array.au3>
    $str = 'jdh..(/6'
    $ret = StringRegExp($str, '\d+', 3)
    If IsArray($ret) Then _ArrayDisplay($ret)

    [/autoit]

    Oder mit Replace:

    [autoit]

    $str = 'jdh..(/6'
    $ret = StringRegExpReplace($str, '\D+', '')
    ConsoleWrite($ret & @crlf)

    [/autoit]
  • Die Radio Box

    • BugFix
    • 21. November 2008 um 20:13
    Zitat von RR04

    haben alle "50" den gleichen Namen ? :D


    Wer lesen kann ist klar im Vorteil :D
    GUICtrlCreateRadio("Radio " & $i+1.....

  • Geburtstags-Erinnerer

    • BugFix
    • 21. November 2008 um 19:23

    Ist eigentlich egal, geht beides (nicht syntaxgerecht - nur sinngemäß):
    If _DateAdd(GebTag_JahrAktuell, -TageErinnerung) = Aktuelles Datum Then ERINNERUNG
    oder
    If _DateDiff(GebTag_JahrAktuell, AktuellesDatum) = TageErinnerung Then ERINNERUNG

  • Geburtstags-Erinnerer

    • BugFix
    • 21. November 2008 um 18:31

    Also die bisherigen Lösungsvorschläge gehen eigentlich alle am Ziel vorbei. ;)
    Schau dir die Funktion _DateAdd() an. Das ist alles was du brauchst.
    Vom Ablauf wäre relativ einfach:
    - 2D-Array [n][0] = Geburtsdatum; [n][1] = Tage vorher erinnern
    - beim Programmstart in Schleife prüfen ob TT.MM. Geburtstag & aktuelles Jahr - Erinnerungstage = Heute

  • Anfängerfrage? zu '$oFSO.DeleteFolder("")'

    • BugFix
    • 21. November 2008 um 10:30

    Es geht auch mit AutoIt, wenn auch nicht mit einem direkten Wildcardbefehl für Ordner:

    [autoit]

    #include<file.au3>
    ;~ DirCreate(@ScriptDir & '\test_1')
    ;~ DirCreate(@ScriptDir & '\test_2')
    ;~ DirCreate(@ScriptDir & '\test_3')

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

    $BaseFolder = @ScriptDir & '\'
    $DelFolder = 'test_'
    $arFolder = _FileListToArray($BaseFolder, '*', 2)
    If @error Then Exit MsgBox(0, '', 'Keine Ordner in diesem Verzeichnis!')

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

    For $i = 1 To UBound($arFolder) -1
    If StringLeft($arFolder[$i], StringLen($DelFolder)) = $DelFolder Then DirRemove($BaseFolder & $arFolder[$i])
    Next

    [/autoit]

    Zu deinem Problem wgen FSO:

    Zitat

    FileSystemObject kann nur Ordner auf dem lokalen Computer erstellen.
    Um Ordner auf einem Remotecomputer zu erstellen kann das Objekt WshController verwendet werden
    (oder lokal erstellen und mit WMI verschieben)


    Das gilt analog für alle Operationen, da nicht per Remotezugriff das FileSystemObject referenziert werden kann.

  • Dateien kopieren, jedoch unterscheidung in Klein/Grossbuchstaben

    • BugFix
    • 21. November 2008 um 08:43

    Verstehe nicht ganz das Problem. Windows unterscheidet doch nicht in Groß-/Kleinschreibung.
    Wenn die Quelldatei "muster.txt" heißt, kannst du sie ebensogut mit "MuStEr.tXt" ansprechen. :S

  • FTP Downloader

    • BugFix
    • 20. November 2008 um 22:43

    Wo greifst du auf FTP zu? Das ist alles HTTP.
    Es ist ein gravierender Unterschied zwischen
    - FileTransferProtocol
    - HyperTextTransferProtocol
    ;)

  • Kleine Anfangshilfen bitte

    • BugFix
    • 20. November 2008 um 21:51

    Eine Bitte: Schau dir mal in der Hilfe zu den Funktionen die Bsp. an. Daraus kannst du schon eine Menge lernen. Wenn dann Fragen sind, poste deine Versuche und wir helfen weiter.

  • Kleine Anfangshilfen bitte

    • BugFix
    • 20. November 2008 um 20:51

    Schau dir mal diese Funktionen an:

    [autoit]

    PixelGetColor()
    PixelSearch()
    MouseMove()
    MouseClick()

    [/autoit]
  • Die Checkbox Teil II

    • BugFix
    • 20. November 2008 um 17:30
    Zitat von anno2008

    Ich hab an eine Checksum gedacht, basierend auf 2er Potenzen, aber die kommen auch öfter vor.


    Das geht recht gut - wenn auch nicht unbegrenzt ;)

    Spoiler anzeigen
    [autoit]

    ; Muster Checkbox-Bearbeitung
    ; Ziel: einfache Abfrage, welche CB aktiviert sind

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

    #include <GUIConstants.au3>
    Opt('GUIOnEventMode', 1)
    Opt("MustDeclareVars", 1)
    Global $bCheckAll, $bUnCheckAll, $GUI, $i, $str
    Global $arCB[20][2] ; Array für Handle und Dual-Wert der CB
    For $i = 0 To UBound($arCB) -1
    $arCB[$i][1] = 2^$i ; Zuweisung eindeutiger Wert
    Next
    Global $Checked = 0 ; Variable nimmt Status ALLER Checkboxen in einem Wert auf,
    ; Startstatus für alle: UNCHECKED
    Global $w = 500, $h = 20*30+40, $l = (@DesktopWidth-$w)/2, $t = (@DesktopHeight-$h)/2
    Global $top = -10
    $GUI = GUICreate('Test Checkbox', $w, $h, $l, $t)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
    For $i = 0 To UBound($arCB) -1
    $top += 30
    $arCB[$i][0] = GUICtrlCreateCheckbox('CheckBox_' & $i+1, 40, $top, 120)
    GUICtrlSetOnEvent(-1, '_ClickCB')
    Next
    $bCheckAll = GUICtrlCreateButton('Alle markieren', 250, 20, 150, 21)
    GUICtrlSetOnEvent(-1, '_CheckAll')
    $bUnCheckAll = GUICtrlCreateButton('Markierung aufheben', 250, 50, 150, 21)
    GUICtrlSetOnEvent(-1, '_UnCheckAll')
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _ClickCB()
    For $i = 0 To UBound($arCB) -1
    If $arCB[$i][0] = @GUI_CtrlId Then
    $Checked = BitXOR($Checked, $arCB[$i][1])
    _ReadCB()
    ExitLoop
    EndIf
    Next
    EndFunc

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

    Func _CheckAll()
    For $i = 0 To UBound($arCB) -1
    If Not BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_CHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _UnCheckAll()
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_UNCHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _ReadCB() ; Fkt. dient nur zur Ausgabe, welche CB markiert sind
    Local $str = 'Markiert: '
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= $i+1 & ', '
    Next
    WinSetTitle($GUI, '', StringTrimRight($str, 2))
    EndFunc

    [/autoit]
  • GUI anpassen an Label-Einträge

    • BugFix
    • 20. November 2008 um 15:05
    Zitat von Doddl

    die Einträge wie in einer Tabelle darstellen kann.


    Na dann verwende doch die Tabellendarstellung ==> ListView ist dafür ideal.

  • GUI anpassen an Label-Einträge

    • BugFix
    • 20. November 2008 um 14:52

    So wie ich das sehe, willst du irgendwo Daten auslesen und diese auf der GUI darstellen. Warum verwendest du keine Liste oder ListView?

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™