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

Beiträge von Oscar

  • regwrite geht nicht

    • Oscar
    • 14. April 2009 um 16:10

    Dazu gibt es ein Makro: @CPUArch

  • Text zählen

    • Oscar
    • 14. April 2009 um 13:54

    Nee, ich denke, bei meiner Version ist es das ReDim, was so bremst.
    Könnte man vielleicht noch optimieren...
    Eine Version mit Scripting.Dictionary-Objekt könnte ich mir auch noch vorstellen.

  • Text zählen

    • Oscar
    • 13. April 2009 um 23:07

    Mist, schon wieder zu spät! ^^

    Aber ich poste trotzdem mal meine Variante:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Global $hFile = FileOpen(@ScriptDir & '\logdatei.log', 0)
    Global $iCount = 0
    If $hFile <> -1 Then
    Global $aIPAdress[$iCount + 1][2]
    While True
    $sTmp = FileReadLine($hFile)
    If @error Then ExitLoop
    For $i = 0 To UBound($aIPAdress) - 1
    If $sTmp = $aIPAdress[$i][0] Then
    $aIPAdress[$i][1] += 1
    ContinueLoop 2
    EndIf
    Next
    $aIPAdress[$iCount][0] = $sTmp
    $aIPAdress[$iCount][1] = 1
    $iCount += 1
    ReDim $aIPAdress[$iCount + 1][2]
    WEnd
    FileClose($hFile)
    ReDim $aIPAdress[$iCount][2]
    _ArraySort($aIPAdress, 1, 0, 0, 1)
    _ArrayDisplay($aIPAdress)
    EndIf

    [/autoit]


    Eigentlich ohne Includes. Hier nur zum sortieren und anzeigen des Arrays.

  • Senden an .. DVD-Brenner mit Autoit?

    • Oscar
    • 13. April 2009 um 15:57

    Versuch's doch mal mit einem Kommandozeilen-Brennprogramm. Zum Beispiel: CommandBurner
    Das läßt sich doch bestimmt zu einer Zusammenarbeit mit AutoIt "überreden". :)

  • If Abfragen Abarbeitung

    • Oscar
    • 13. April 2009 um 15:44

    Nein, er hat oben die Variable $Installer mit:

    [autoit]

    $Installer = "isobuster_all_lang.exe"

    [/autoit]


    belegt. Zwischen dem Befehl und den Parametern muss aber normalerweise ein Leerzeichen stehen.
    Also entweder am Ende der $Installer-Variablen oder beim ShellExecute-Aufruf.

  • If Abfragen Abarbeitung

    • Oscar
    • 13. April 2009 um 15:23

    Diese Zeile:

    [autoit]

    ShellExecuteWait($Source & $Installer,"/SILENT /NOCANCEL /DIR=" & '"' & $InstallDir & '"')

    [/autoit]


    sieht für mich etwas komisch aus, weil da nach dem Anführungszeichen (vor /SILENT) kein Leerzeichen steht.
    Mach doch mal in Zeile 32 eine MsgBox und schaue nach, ob die Installation bis dahin funktioniert.

  • Checkboxen checken und unchecken

    • Oscar
    • 13. April 2009 um 14:46

    @ChaosKeks: Ja, drei Checkboxen sind gerade so die Grenze, wo das Script mit Arrays noch etwas länger wird, weil die For...Next-Schleifen jeweils drei Zeilen in Anspruch nehmen, aber wenn man mehr Checkboxen (>3) abfragen will, ist die Array-Variante deutlich besser.

    Raupi : Ich weiß, dass sich Einsteiger mit Arrays immer etwas schwertun, aber ich denke gerade so ein einfaches Script ist für das Verständnis von Arrays doch eher förderlich. Gerade wenn man, wie hier, einen direkten Vergleich zu einem Script ohne Arrays hat.

  • If Abfragen Abarbeitung

    • Oscar
    • 13. April 2009 um 14:41

    Mit diesem Codeschnipsel kann niemand etwas anfangen. Poste doch bitte ein funktionsfähiges Beispiel.

  • Checkboxen checken und unchecken

    • Oscar
    • 13. April 2009 um 14:34

    Und hier eine Version mit Array:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ### Form=F:\downloads\autoit\scripts\Form1.kxf
    $Form1_1 = GUICreate("Form1", 291, 124, 193, 125)
    Global $Checkbox[4]
    $Checkbox[3] = GUICtrlCreateCheckbox("Checkbox4", 128, 56, 97, 17)
    $Group1 = GUICtrlCreateGroup("Group1", 16, 8, 97, 97)
    $Checkbox[0] = GUICtrlCreateCheckbox("Checkbox1", 24, 32, 97, 17)
    $Checkbox[1] = GUICtrlCreateCheckbox("Checkbox2", 24, 56, 97, 17)
    $Checkbox[2] = GUICtrlCreateCheckbox("Checkbox3", 24, 80, 97, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Checkbox[3]
    If BitAND(GUICtrlRead($Checkbox[3]), $GUI_CHECKED) Then
    For $i = 0 To 2
    GUICtrlSetState($Checkbox[$i], $GUI_CHECKED)
    Next
    Else
    For $i = 0 To 2
    GUICtrlSetState($Checkbox[$i], $GUI_UNCHECKED)
    Next
    EndIf
    Case $Checkbox[0], $Checkbox[1], $Checkbox[2]
    $check = 0
    For $i = 0 To 2
    If BitAND(GUICtrlRead($Checkbox[$i]), $GUI_CHECKED) Then $check += 1
    Next
    If $check = 3 Then
    GUICtrlSetState($Checkbox[3], $GUI_CHECKED)
    Else
    GUICtrlSetState($Checkbox[3], $GUI_UNCHECKED)
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Kumpel anbeepen

    • Oscar
    • 13. April 2009 um 13:54

    Und so nebenbei ist PopTray auch noch ein ganz nützliches Programm. Damit lösche ich den ganzen SPAM anhand Betreff/Absender bereits auf dem Server. Entweder per Regel oder von Hand anhand der Headerzeilen.
    Ist also nicht nur für obige Aufgabe geeignet. :thumbup:

  • zwei TXT Dateien vergleichen und Zeile löschen

    • Oscar
    • 13. April 2009 um 12:04

    Beide Dateien in jeweils ein Array einlesen (_FileReadToArray) und dann in einer For...Next-Schleife alle Array-Elemente durchgehen und testen, ob die Zahlen aus dem "2.txt"-Array in dem "1.txt"-Array enthalten sind (StringInStr). Wenn ja, dann die Zeile löschen.
    Abschließend das Array wieder abspeichern (_FileWriteFromArray).

  • SciTe

    • Oscar
    • 13. April 2009 um 10:53

    Wenn Du "SciTE4AutoIt3" installiert hast, kannst Du auch [STRG] + [1] drücken und dort noch weitere Einstellungen vornehmen.

  • Kumpel anbeepen

    • Oscar
    • 13. April 2009 um 09:38

    Warum so kompliziert?
    Dein Kumpel soll sich PopTray installieren und Du schickst ihm dann eine EMail mit einem bestimmten Betreff.
    Bei PopTray kann man eine einfache Regel erstellen und schon öffnet sich ein Fenster und/oder spielt ein Sound, wenn er eine EMail von Dir bekommt.

  • follow-Funktion aus less

    • Oscar
    • 12. April 2009 um 08:18

    Eine String-Variable kann bei AutoIt bis zu 2147483647 Zeichen enthalten. Dazu muss man nichts spezielles machen.

    Die Einschränkung von der Du hier sprichst, bezieht sich auf das Edit-Control. Wenn Du mehr als 30.000 Zeichen dort anzeigen lassen willst, musst Du mit GUICtrlSetLimit einen anderen Wert eintragen.

  • Steruma ProgrammBase - Chatt

    • Oscar
    • 12. April 2009 um 05:45
    Zitat von Scripter192

    hilft mir ma einer? Warum is in der neusten version beim starten des hauptfensters die liste so komisch ( man sieht nix, man muss erst die items anklicken oder ein anderes tab auswählen und zurrück wecheln) kaaaaan mir einer helfen?

    Also, das finde ich schon ein starkes Stück! :cursing:
    Nach knapp zwei Stunden rumspammen und nach Hilfe schreien und dann noch nichtmal das Script posten.

  • 2d-Array

    • Oscar
    • 12. April 2009 um 05:34

    Hallo Alina!
    Enthält Deine Datei keinerlei Zeilenumbrüche?

    Wenn doch, dann kannst Du die anhand des Zeilenumbruchs aufsplitten und in ein Array übernehmen:

    [autoit]


    #include <Array.au3>
    $sData = FileRead(@ScriptDir & '\daten.txt')
    $array = StringSplit($sData, @CRLF, 3)
    _ArrayDisplay($array)

    [/autoit]

    Wenn die ganzen Daten tatsächlich hintereinander stehen (ohne @CRLF), dann aufsplitten anhand der 37 Zeichen:

    [autoit]


    #include <Array.au3>
    $sData = FileRead(@ScriptDir & '\daten.txt')
    $array = StringRegExp($sData, '.{37}', 3)
    _ArrayDisplay($array)

    [/autoit]

    Zum Thema "keine Datei, Array im Script": Dazu müsstest Du das Array irgendwo am Anfang (vor der Benutzung) deklarieren und ihm die Werte zuweisen:

    [autoit]


    Global $array[37] = ['MGZIGNYTTXTTNODKPOLUUVFTPTOABUFIPEESF', 'TOWPXZRXOPNRTRMEIBWGXJWARVNXWYRXQFIJG', 'FIOYOYHVSCAFVRUZMSJUORHZVFFUOIFTFQSGP', 'SWQGUFFEXMHPQMYDCQSIKALDKWERGGOMSXUQV', 'QRJIHGFLWRGVHKGISANGUHTKTVHPJDCBIGEMN', 'YSQIPAGFZSDUQRDTONEMGWBGOYZITHGZFIOLN', 'MRTEKOERVUMYZCJUQFHXISPBVOKBEQZEKHZAO', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']

    [/autoit]


    So bräuchtest Du keine Datei. Ist allerdings recht mühsam das alles einzutragen.

  • Ini Datei online auslesen lassen

    • Oscar
    • 11. April 2009 um 04:34

    Ein auslesen direkt auf dem Server funktioniert nicht (weder HTTP noch FTP)!
    Du musst die Inidatei downloaden und dann mit IniRead auslesen.

  • GUI für Messanger

    • Oscar
    • 11. April 2009 um 04:33

    Bei Nachrichten von einem User = Username und in Klammern dahinter die Anzahl der Nachrichten
    oder halt ein Listview mit mehreren Spalten.

  • Chat

    • Oscar
    • 11. April 2009 um 04:27

    Server = Beispielscript zu TCPRecv

    Client = Beispielscript zu TCPSend

  • Nach drücken von STRG(rechts) eine bestimmte Mausposition anklicken

    • Oscar
    • 11. April 2009 um 04:22
    Zitat von eugen723674

    Mich würde nur noch Interessieren was die Pro's vorschlagen welche Version (siehe vorletzter Post) denn jetzt der "richtige"/bessere Ansatz ist.

    Zum abspielen von solchen kurzen (Windows-)Sounds würde ich immer SoundPlay benutzen.
    Allerdings würde ich das etwas ändern:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3>
    #include <Sound.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    If WinActive("MAGIX Video") Then
    If _IsPressed("A3", $dll) Then
    $pos = MouseGetPos()
    MouseClick("left", 1595, 390, 1, 0)
    MouseMove($pos[0], $pos[1], 0)
    SoundPlay(@WindowsDir & "\media\Windows-Standard.wav", 1)
    EndIf
    EndIf
    Sleep(50)
    WEnd

    [/autoit]


    Also mit ",1" am Ende, sodass SoundPlay auf das Abspielende wartet. Das spart Dir in diesem Fall das anschließende Sleep.

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™