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

Beiträge von TheLuBu

  • Auslesen einer MSG-Datei

    • TheLuBu
    • 9. Mai 2011 um 14:35

    misterspeed ja hast recht, hab eben mal gegoogelt, also du willst gespeicherte Emails auslesen und versenden.
    Die einfacherer Alternative wäre, die nachrichten direkt im HTML Format zu speichern. Falls das nicht geht,
    folgendes:

    Die MSgDateien enthalten immer mehrere Abschnitte.
    Wenn du nach

    Code
    Content-Type: text/html


    suchst, folgt der Abschnitt, in dem der HTML Code steht (mit <>)
    Ansonsten kannst du auch nach
    mit

    [autoit]

    _Stringbetween($hFile, "<html>", "</html>"

    [/autoit]

    den HTML text raussuchen

  • Auslesen einer MSG-Datei

    • TheLuBu
    • 9. Mai 2011 um 14:26

    was ist denn eine *.msg Datei?
    Und was heißt "wenig sinnvoll"?

  • WPI unter Windows 7 - Stop Running this Script?

    • TheLuBu
    • 2. Mai 2011 um 14:44

    eine Funktion (Func) kann irgendwo im Script stehen, es darf nur nicht verschachtelt werden.

    [autoit]

    Func Test()
    Sleep(100)
    Func Test2()
    Sleep(200)
    EndFunc
    EndFunc

    [/autoit]


    wird nicht funktionieren.

    Am einfachsten ist es, wenn du Funktionen immer ans Ende deines Scripts stellst, der Übersichtlichkeit wegen.
    Eine andere Möglichkeit wäre, du lagerst die Funktionen in ein 2tes Script aus und bindest sie über #include ein

  • WPI unter Windows 7 - Stop Running this Script?

    • TheLuBu
    • 2. Mai 2011 um 13:57

    Wenn du mit

    [autoit]

    Func (Check)
    If WinActive ("Wizard", "causing") Then
    ControlClick ("Wizard", "causing", "Button1")
    EndIf
    EndFunc

    [/autoit]


    Das Fenster mit dem Problem erreichst und den nein Button klickst, dann klappt es so, ja ;)

  • WPI unter Windows 7 - Stop Running this Script?

    • TheLuBu
    • 2. Mai 2011 um 13:43

    Müsstest du testen, da ich deinen gesamten Quellcode nicht kenne, aber du könntest es immer vor der Installation eines Programmes starten, und wenn es fertig ist, mit

    [autoit]

    AdlibUnregister(Check)

    [/autoit]


    wieder deaktivieren, um falsche Klicks zu vermeiden

  • WPI unter Windows 7 - Stop Running this Script?

    • TheLuBu
    • 2. Mai 2011 um 13:35

    Du könntest mit Adlibregister dein Script Quasi parallel prüfen lassen, ob das WPI Fenster erscheint.

    [autoit]

    Adlibregister("Check", 250)

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

    Func Check()
    If WinActive("WPI Fenstername mit INSTANZ oder CLASS") Then ControlClick("WPI Fenstername mit INSTANZ oder CLASS", "", NEINBUTTONID)
    EndFunc

    [/autoit]
  • MS SQL.au3

    • TheLuBu
    • 2. Mai 2011 um 08:22

    Tut mir leid, das ich erst so spät antworte, aber ich w ar übers Wochenende nicht in Reichweite eines PC´s ;)

    An sich könntest du auch _MSSQL_GetRecord nutzen mit $condition = "Limit 1"

    Ansonsten ist deine SQL Syntax falsch.
    Wenn du _MSSQL_Query nutzt musst du ein abschließendes ";" setzen, da sonst die Befehlszeile nicht vollständig ist, also

    [autoit]

    $wert = _MSSQL_Query($fsql,"SELECT Feld FROM Database LIMIT 1;")

    [/autoit]
  • Programm mit parametern ausführen und Werte in einer MySQL Datenbank oder als .ini speichern

    • TheLuBu
    • 28. April 2011 um 09:03

    Ich habe dir mal schnell ein Script gebastelt, ich denke es ist leicht verständlich
    Dabei müssen aber 2 Parameter übergeben werden.
    Zum einen welche Münze bzw. service_out oder remoute_in, und der Betrag

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    If Not FileExists(@ScriptDir & "\test.log") Then
    _FileCreate(@ScriptDir & "\test.log")
    $hFile = FileOpen(@ScriptDir & "\test.log", 1)
    Else
    $hFile = FileOpen(@ScriptDir & "\test.log", 1)
    EndIf

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

    If $CmdLine[2] = "service_out" Then
    FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&"0"&@TAB&$CmdLine[3])
    ElseIf $CmdLine[2] = "remoute_in" Then
    FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&$CmdLine[3]&@TAB&"0")
    ElseIf $CmdLine[2] = "ci_coin1_in" Then
    FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&$CmdLine[3]&@TAB&"0")
    ElseIf $CmdLine[2] = "ci_coin2_in" Then
    FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&$CmdLine[3]&@TAB&"0")
    ElseIf $CmdLine[2] = "ci_coin3_in" Then
    FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&$CmdLine[3]&@TAB&"0")
    ElseIf $CmdLine[2] = "ci_coin4_in" Then
    FileWriteLine($hFile, @MDAY&"."&@MON&"."&@YEAR&@TAB&@HOUR&":"&@MIN&@TAB&$CmdLine[3]&@TAB&"0")
    EndIf
    FileClose($hFile)

    [/autoit]
  • viele Texte speichern

    • TheLuBu
    • 28. April 2011 um 08:28
    [autoit]

    Stringsplit()

    [/autoit]

    liefert ein Array zurück,
    dieses Array wird von der Funktion selbst dimensioniert, also musst du es vorher nicht deklarieren.
    Bei fast allen Funktionen, die ein Array zurückliefern, musst du dir vorher keine Gedanken ums deklarieren machen.
    Deklarationen sind wichtig, wenn du selbst ein Array erstellst, um z.B. Buttons in einer GUI zusammen zu fassen oder Werte in einem Array im Code selbst speichern willst.

  • viele Texte speichern

    • TheLuBu
    • 27. April 2011 um 15:46

    Also das _arrayDisplay zeigt aber das Array so an, wie es sein soll?
    Also da stehen alle Werte drin?

    Kommt die MsgBox mit den Katzen denn?

    Bist du sicher, das der Wert im Array "Hunde" ist und nicht "Hunde " oder " Hunde"?

    Ansonsten ersetz mal die Schleife mit dem hier

    [autoit]


    For $i = 1 To Ubound($avArray) - 1 Step 2
    $AvArray[$i] = StringStripWS($AvArray[$i], 7)
    Next

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

    For $i = 1 To Ubound($avArray) - 1
    If $avArray[$i] = "Hunde" Then ; Dieser Text steht im Quelltext!
    MsgBox(0, "", $AvArray[$i]); diese Msgbox wird nicht gezeigt!
    Msgbox (0, "", "Quelltext Hunde gefunden in Arrayplatz "& $i + 1) ; Keine Msgbox!

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

    ElseIf $avArray[$i] = "Katzen" Then
    Msgbox (0, "", "Quelltext Katzen gefunden in Arrayplatz "& $i + 1)
    EndIf
    Next

    [/autoit]
  • 2 .txt Dateien miteinander vergleichen

    • TheLuBu
    • 27. April 2011 um 15:19

    Du kannst dir aber auch

    [autoit]

    InetRead()
    BinaryToString()

    [/autoit]


    ansehen

  • Bilder lassen sich nicht klicken

    • TheLuBu
    • 27. April 2011 um 15:18

    Kannst du ja mit dem Beispiel von Raupi weiter machen,
    Also bei

    [autoit]

    Func _FuncmitParametern($iPara)
    MsgBox(0, "Info", "Es wurde Button " & $iPara & " gedrückt")
    EndFunc ;==>_FuncmitParametern

    [/autoit]

    Nen bisschen mit

    [autoit]

    _GUICtrlButton_GetImage

    [/autoit]

    und

    [autoit]

    _GUICtrlButton_SetImage

    [/autoit]


    probieren

  • viele Texte speichern

    • TheLuBu
    • 27. April 2011 um 14:55

    jetzt hast du es wieder umgedreht,
    mit

    [autoit]

    _arrayDisplay()

    [/autoit]

    kannst du nur ein komplettes Array anzeigen, keinen einzelnen Wert.
    Quasi umgekehrt zur MsgBox
    Also in der Schleife beziehst du dich ja auf einen Wert des Arrays, den kannst du über

    [autoit]

    MsgBox(0, "", $AvArray[$i])

    [/autoit]

    anzeigen

    Also nochmal kurz und knapp:

    Ganzes Array anzeigen

    [autoit]

    _arrayDisplay($Avarray)

    [/autoit]


    Einen Wert aus einem Array anzeigen

    [autoit]

    MsgBox(0,"", $Avarray[$i])

    [/autoit]

    -EDIT-
    Deine Quelltextdatei ist "falsch", es fehlt ein Trennzeichen

    Spoiler anzeigen
    Code
    Hunde
    TheLuBuAutoit2011
    1
    2
    3
    4
    5
    6
    TheLuBuAutoit2011
    Katzen
    TheLuBuAutoit2011
    1
    2
    3
    Alles anzeigen
  • 2 .txt Dateien miteinander vergleichen

    • TheLuBu
    • 27. April 2011 um 14:52

    Nein, die Datei musst du erstmal mit InetGet oder über FTP runterladen und dann temporär einlesen

  • viele Texte speichern

    • TheLuBu
    • 27. April 2011 um 14:51

    Du kannst ja ein Array auch variabel deklarieren.
    Zum Beispiel liest du erst die Anzahl von Zeilen in einem Text mit

    [autoit]

    _FileCountLines()

    [/autoit]


    ein, damit hast du ja schonmal die Anzahl der Zeilen.
    Für Spalten ist es dann ähnlich.

    Ein Array kannst du also auch so deklarieren :

    [autoit]


    $Zeilen = _FileCountLines($Testdatei)
    Local $avarray [$Zeilen]

    [/autoit]
  • 2 .txt Dateien miteinander vergleichen

    • TheLuBu
    • 27. April 2011 um 14:09

    Mit FileRead öffnen und dann über stringinstr deine Datei überprüfen

    [autoit]

    $fFile = FileRead("FTPDatei.txt")
    $lFile = FileRead("LokaleDatei.txt")
    If NOT Stringinstr ( $fFile, $lFile) Then
    MsgBox (0, "FEHLER", "name wurde nicht gefunden")
    Else
    MsgBox (0, "ERFOLG", "Name wurde gefunden")
    EndIf

    [/autoit]
  • Problem 2. Verschieben in _MoveLVItem()

    • TheLuBu
    • 27. April 2011 um 14:02

    Also ich habe es grade mal ausprobiert und ein bisschen Debuggt, also er kommt mit den Indexzahlen durcheinander.

    Spoiler anzeigen
    [autoit]

    Func _MoveLVItem($ItemIndex, $StepWidth, $hLV)
    If ($ItemIndex + $StepWidth) < 0 Or _
    ($ItemIndex + $StepWidth) > _GUICtrlListView_GetItemCount($hLV) - 1 Then
    SetError(1)
    Return 0
    EndIf
    Local $txt2skip = _GUICtrlListView_GetItemText($hLV, $ItemIndex)

    If $StepWidth > 0 Then
    _GUICtrlListView_BeginUpdate($hLV)
    _GUICtrlListView_InsertItem($hLV, $txt2skip, $ItemIndex + $StepWidth + 1)
    ;msgbox(0,">0",$ItemIndex)
    ;msgbox(0,"",_GUICtrlListView_GetItemText($hLV, $ItemIndex))
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($hLV), $ItemIndex)
    _GUICtrlListView_EndUpdate($hLV)
    Else
    _GUICtrlListView_BeginUpdate($hLV)
    _GUICtrlListView_InsertItem($hLV, $txt2skip, $ItemIndex + $StepWidth)
    ;msgbox(0,"<=0",$ItemIndex & " +1")
    ;msgbox(0,"",_GUICtrlListView_GetItemText($hLV, $ItemIndex + 1))
    _GUICtrlListView_DeleteItem(GUICtrlGetHandle($hLV), $ItemIndex + 1)
    _GUICtrlListView_EndUpdate($hLV)
    EndIf
    Return -1
    EndFunc ;==>_MoveLVItem

    [/autoit]

    Aus der Hilfe von _GuictrlListView_DeleteItem:

    Zitat

    Falls diese Funktion mit einem Listview, welches durch die Funktion GUICtrlCreateListView erstellt wurde, angewendet wird, muss der Befehl _GUICtrlListView_DeleteItem(GUICtrlGetHandle($ListView), iIndex) heißen, da sonst eine Fehlermeldung erscheint. ($ListView ist die Variable wie das Listview heißt)

    Damit geht es bei mir

  • viele Texte speichern

    • TheLuBu
    • 27. April 2011 um 13:33

    Ilse
    Ich weiß nicht ob es dir hilft, aber stell dir ein Array als eine Exceltabelle vor.
    In jeder Zelle der Tabelle steht ein Wert, in diesem Fall die Quellcodes.

    Wenn du nun $Avarray alleine nimmst, hast du die gesamte Tabelle.
    Wenn du aber nur einen Wert aus der Tabelle haben willst, z.B. den Quelltext 1,
    musst du ja erstmal die "Zelle" auswählen, das machst du eben mit den Klammern [1]
    In der MsgBox oben hast du also die gesamte Tabelle ausgewählt, nicht einen Wert aus der Tabelle.

    Wenn es dir hilft, wenn du weißt, das du mit arrays arbeitest, benutz einfach

    [autoit]

    _arrayDisplay()

    [/autoit]

    Deine Tabelle( Array) sieht also so aus

    Code
    Zeile 1: [Hunde]
    Zeile 2: <div class="tt_for4wrapper">
                <p class="tt_for4Box1Headline">
    Zeile 3: [Katzen]
    Zeile 4:        <div class="tt_for4wrapper">
                <p class="tt_for4Box1Headline">
    Zeile 5:


    Der 5te Wert ist dabei leer, da hinter dem trennzeichen nix steht

  • FileWriteLine mal andersherum :-)

    • TheLuBu
    • 27. April 2011 um 12:57

    MIt

    [autoit]

    _FileWriteLog

    [/autoit]


    kannst du auch an den Anfang schreiben, hast dann aber auch Datum und Uhrzeit drin.
    Wenn du dir aber die File.au3 im Include Ordner ansiehst, solltest du da auch was draus basteln können

  • viele Texte speichern

    • TheLuBu
    • 27. April 2011 um 11:46
    Zitat von _DICE_

    Nimm doch einfach eine ini-Datei (wie Du selber schon schriebst).

    Code
    [seite 1]
    Quellcode=...
    [seite 2]
    Quellcode=...

    Die Sections (hier: seite 1, seite 2) benennst Du sinnvoll.
    Diese könntest Du zum Beispiel dann mit IniReadSectionNames() auslesen und in eine ComboBox einfügen.
    Über diese kannst Du dann die gewünschte Section auswählen und dir den Quellcode mit IniRead(Pfad, Section, "Quellcode", Default) ausgeben lassen.

    Das Problem an der Inidatei ist, das sie standartisiert ist.
    Kommt im Quelltext " vor, =, oder ähnliches, kann der Wert falsch interpretiert werden (muss nicht, kann aber), und du hast auf einmal eine Section Quellcode und eine weitere. Bei der Stringsplit Methode kann man sich einen Trennstring ausdenken, der nicht in dem Quelltext vorkommt. Bei einem Buchstaben- und Zahlensalat mit 18 stellen z.B ist die Wahrscheinlichkeit sehr gering, das genau dieser eine Wert vorkommt (siehe auch Passwortsicherheit), bei der inidatei ist es ein Zeichen ( = ) und es könnte falsch interpretiert werden.

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™