1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden oder registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Ashpool

Beiträge von Ashpool

  • Autoit.de Spoiler-Reader V2.4

    • Ashpool
    • 22. Mai 2009 um 00:52
    Zitat von AutoBert

    Author und die Überschrift (ist bei #1 unbedingt nötig) aus dem Download ermitteln


    Hast du schon Code getestet? Sollte eigentlich nicht so schwierig sein!

  • Autoit.de Spoiler-Reader V2.4

    • Ashpool
    • 21. Mai 2009 um 17:29

    autoBert: Danke für dein Feedback!

    Das von dir bemängelte Fehlverhalten habe ich korrigiert und die neue Version mit den Posts aus diesem Thread getestet.

    Neue Version im Post 40!

    Freue mich über jede Kritik!

    Gruß Ashpool

    [edit] Mit den Skripten in diesem Post funktioniert es leider nicht, ich weiß aber, woran es liegt und arbeite daran. X(

  • Autoit.de Spoiler-Reader V2.4

    • Ashpool
    • 20. Mai 2009 um 22:39

    Hi funkey,

    ich finde dein Skript absolute Klasse :thumbup: und es hat mich angeregt, mal ein wenig rumzuprobieren.
    Habe deine V2.2 beta als Grundlage genommen und dabei ist eine Erweiterung deines Skripts um folgende Fähigkeiten herausgekommen:

    - Neben AutoIt-Quelltexten werden auch normale (mit dem Code-Button # eingefügte) Quelltexte ausgelesen (vor allem für ältere Posts sinnvoll).
    - Der Dateiname enthält den Thread-Titel.
    - Mehrere angehängte Dateien werden korrekt eingelesen.
    - Download auch von Zip- und Rar-Dateien.
    - Info-Tooltip über gefundene Dateien/Objekte.
    - Der heruntergeladene Code enthält einen Kommentarblock mit Adresse des Beitrags und Thread-Titel.

    Hab es mal als V2.3 Ashpool beta betitelt, um Verwechslungen zu vermeiden:

    Neue Version im Post 37

    Was halten du und die anderen AutoIt-ler davon? Sind das sinnvolle Ergänzungen oder eher nicht?
    Gibts Probleme mit dem Skript?

    Gruß Ashpool

  • variable geht verloren

    • Ashpool
    • 20. Mai 2009 um 21:48

    Die Funktion _calc() könnte man auch bedeutend eleganter schreiben, zumal dann auch automatisch auf die eingegebene Anzahl der Teams reagiert wird:

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>

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

    $x = 10
    $y = 10
    $GUI = GUICreate("Teams eingeben", 200, 70)
    $lbl = GUICtrlCreateLabel("Teams getrennt durch Kommas eingeben!", 5, 5, 200, 15)
    $OK = GUICtrlCreateButton("OK!", 80, 48, 40, 20)
    $teams = GUICtrlCreateInput("Team1,Team2", 10, 25, 180, 20)
    Global $team
    GUISetState(@SW_SHOW)

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

    While 1
    $guimsg = GUIGetMsg()
    Switch $guimsg
    Case $OK
    GUISetState(@SW_HIDE)
    _getvalues()
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _getvalues()
    $input = GUICtrlRead($teams)
    $team = StringSplit($input, ",")
    MsgBox(0, 0, $team[0])
    _calc()
    EndFunc ;==>_getvalues

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

    Func _calc()
    $ergebnis_Gui = GUICreate("Aufstellungen", 120, 200)
    $exit = GUICtrlCreateButton("OK!", 40, 170, 40, 25)
    For $i = 1 To $team[0] - 1
    For $j = $i+1 To $team[0]
    GUICtrlCreateLabel($team[$i] & " - " & $team[$j], 10, $y)
    $y = $y + 12
    Next
    Next

    GUISetState(@SW_SHOW, $ergebnis_Gui)
    Sleep(10000)
    Exit
    EndFunc ;==>_calc

    [/autoit]

    Die Message-Verarbeitung hab ich mal so gelassen, da musst du auch noch was machen. :)

    Gruß Ashpool

  • Unzuverlässige Steuerung durch AutoIT

    • Ashpool
    • 20. Mai 2009 um 19:21
    Zitat von MB0902

    Grundsätzlich würde mich interessieren, ob andere ähnliche Beobachtungen gemacht haben und ob es Möglichkeiten gibt, daß AutoIT die Programme zuverlässiger steuert - bzw. wo mein Fehler liegt.

    Ich hatte anfangs auch Probleme mit 'zufälligen' Ergebnissen meiner Installationsskripte. Inzwischen habe ich mir angewöhnt, Benutzereingaben vor einer Skriptaktion zu sperren und sicher zu stellen, dass das gewünschte Fenster auch wirklich aktiv ist. Außerdem verwende ich für Controlclicks so gut wie nie Mauskoordinaten. Seitdem gibts eigentlich kaum noch Probleme.

    Ich hab mal einen Ausschnitt deines FF-Skripts, in dem der Einstellungsdialog aufgerufen wird, beispielhaft in meinem Sinne geändert:

    [autoit]

    ShellExecute('firefox.exe') ; nur für meine Testzwecke

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

    BlockInput(1) ; Benutzereingaben sperren

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

    Opt("WinTitleMatchMode", 2) ;1=vom Anfang, 2=enthält, 3=genau, 4=fortgeschritten, -1 bis -4=Groß-/Klein ignorieren

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

    $FensterTitel = "Mozilla Firefox"

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

    If WinWait($FensterTitel, "", 3) = 1 Then ; Auf das Firefox-Fenster 3s warten
    If Not WinActive($FensterTitel, "") Then WinActivate($FensterTitel, "") ; wenn nicht aktiviert, dann aktivieren
    If Not WinWaitActive($FensterTitel, "", 2) Then ; wenn nach 2s immer noch nicht aktiv, dann Skript abbrechen
    BlockInput(0) ; Benutzereingaben freigeben
    Exit
    EndIf

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

    Opt("WinTitleMatchMode", 1) ;1=vom Anfang, 2=enthält, 3=genau, 4=fortgeschritten, -1 bis -4=Groß-/Klein ignorieren

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

    ;Fenster maximieren
    WinSetState($FensterTitel, "", @SW_MAXIMIZE)

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

    ;Einstellungen
    Send("!x") ;Extras
    Sleep(50)
    Send("e") ;Einstellungen

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

    ; ...

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

    EndIf

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

    BlockInput(0) ; Benutzereingaben freigeben

    [/autoit]

    Ich hoffe, das hilft ein wenig weiter.

    Gruß Ashpool

  • HELP!!! seite im GUI alle 5 sec aktualisieren aber wie?!

    • Ashpool
    • 18. Mai 2009 um 22:05
    Zitat von flobby

    will das so haben das die seite die mir im GUI angezeit wird alle 5 sec neu läd. bekomms aber irgendwie nicht hin ohne das bei mir dann alles abkackt.

    Präzisiere mal "abkackt" , bei mir funktioniert das Skript ohne Änderung wie gewünscht (lädt alle 10s neu) 8)

  • Fehlerhaftes Script

    • Ashpool
    • 18. Mai 2009 um 11:45
    Zitat von Jautois
    [autoit]

    Dim ... $lebewesenstart_x = Random(0, 59, 1), $lebewesenstart_y = Random(0, 89, 1)

    [/autoit]

    Du hast die Random-Obergrenzen für x und y vertauscht, in y-Richtung hast du nur 59 Blöcke, dein Random kann aber Werte bis 89 erzeugen.
    Damit wird bei Werten über 59 deine erste For-Schleife nicht mehr durchlaufen!

    Wenn du die Random-Parameter korrigierst, sollten immer Ameisen erscheinen. 8)

    Gruß Ashpool

  • Perle für alle LV-Benutzer gefunden, muss aber noch poliert werden

    • Ashpool
    • 18. Mai 2009 um 09:56
    Zitat von AutoBert

    Leider gibt es das Datum immer im Langen Format zurück

    Habe mal die Zeile 157 der UDF wie folgt geändert:

    [autoit]

    $lvDate = GUICtrlCreateDate($lvDataStart,0, 0, 1, 1, $DTS_SHORTDATEFORMAT,BitOr($WS_EX_CLIENTEDGE,$WS_EX_TOPMOST ))

    [/autoit]


    Damit wird dann das kurze Datum angezeigt.

    Im Original stand dort:

    [autoit]

    $lvDate = GUICtrlCreateDate($lvDataStart,0, 0, 1, 1,BitOR($GUI_SS_DEFAULT_DATE, $DTS_SHORTDATEFORMAT),BitOr($WS_EX_CLIENTEDGE,$WS_EX_TOPMOST ))

    [/autoit]


    und in der DateTimeConstants.au3 ist $GUI_SS_DEFAULT_DATE wie folgt definiert:

    [autoit]

    Global Const $GUI_SS_DEFAULT_DATE = $DTS_LONGDATEFORMAT

    [/autoit]

    Warum sollte man $DTS_LONGDATEFORMAT und $DTS_SHORTDATEFORMAT verodern?
    Ich hoffe, dass das das war, was du meintest :D

    Gruß Ashpool

  • Nutzer mit 0 Beiträgen, bzw. weniger Beteiligung...

    • Ashpool
    • 11. April 2009 um 21:14
    Zitat von MatthiasG.

    Ich auch, alle die über die 100 weg sind, dürften eigentlich zu den aktiveren gehören...


    Uh, da muss ich wohl noch ein paar Posts nachlegen, damit ich nicht durchs Raster falle... :D

    Gruß Ashpool

  • Beep durch lautsprecher

    • Ashpool
    • 8. April 2009 um 22:15
    Zitat von kloo

    bei mir geht das nicht :(


    Versuche mal bitte mit Folgendem davor:

    [autoit]

    MsgBox(0, "Beep Beispiel", "Dummy",1)

    [/autoit]

    Bei mir gings dann. Und bei dir?

    Gruß Ashpool

  • Beep geht net

    • Ashpool
    • 8. April 2009 um 21:25

    Ich hab gerade was merkwürdiges entdeckt.
    Setze ich vor die Beep-Ausgabe ein

    [autoit]

    MsgBox(0, "Beep Beispiel", "Dummy",1)

    [/autoit]


    dann höre ich die Töne, lasse ich es weg, bleibt der Läppi stumm.
    Wenn ich es einmal mit MsgBox gestartet habe, funktioniert es manchmal auch bei weiteren Versuchen ohne MsgBox, solange ich kein anderes Fenster im Vordergrund hatte.
    Kann das jemand nachvollziehen und/oder erklären? ?(

    Gruß Ashpool

  • Beep durch lautsprecher

    • Ashpool
    • 8. April 2009 um 21:25

    Schnuffel: Setze ich vor dein Skript ein

    [autoit]

    MsgBox(0, "Beep Beispiel", "Dummy",1)

    [/autoit]


    kann ich die Töne hören, sonst nicht.

    Hat da jemand 'ne Ahnung woran das liegt? ?(

    Gruß Ashpool

  • Abfrage - Wenn Task nicht exestiert...

    • Ashpool
    • 8. April 2009 um 19:20
    Zitat von Tecoist
    [autoit]

    If WinActivate("...","") Then

    [/autoit]

    Da hattest du dein Problem wohl etwas "unscharf" formuliert, wa? :D

  • Beep geht net

    • Ashpool
    • 8. April 2009 um 19:12

    Ich glaube, mal gelesen zu haben, dass man einen Beep-Treiber installieren muss, wenn man keinen Systemlautsprecher im Rechner hat und die Töne dann über die externen Schallwandler ausgeben will. Aber das hängt sicher auch vom Mainboard ab. Mein Laptop hat jedenfalls keinen internen Lsp, folglich höre ich da nix, aber der Große dudelt vor sich hin. :D

  • Abfrage - Wenn Task nicht exestiert...

    • Ashpool
    • 8. April 2009 um 19:04

    ProcessExists dürfte die Funktion deiner Wahl sein.

    [Mist] War wohl zu langsam. :|

  • Beep geht net

    • Ashpool
    • 8. April 2009 um 18:57
    Zitat von NoNever

    bei mir geht gar kein beep und ich weiß net warum


    Weil du vielleicht keinen Systemlautsprecher hast?!

  • Text per Drag&Dop verschieben

    • Ashpool
    • 8. April 2009 um 18:32

    Probier mal MouseClickDrag

    [edit] Tschuldigung, für dein Problem nicht ganz passend. :whistling:

  • Suchen eines Strings und Ersetzen der ganzen Zeile, dabei doppelte Einträge löschen

    • Ashpool
    • 8. April 2009 um 16:14

    Hab noch die Abfrage des $b_DeleteDuplicates-Parameters eingebaut: 8)

    Spoiler anzeigen
    [autoit]

    #include <File.au3>

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

    $srcfile = @ScriptDir & "\services"

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

    $replaceString = "sapmsFC1" & @TAB & "3680/tcp" & @TAB & "# SAP System Messaging Service Port"
    $searchString = "sapmsFC1"

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

    Search_And_Replace($srcfile, $searchString, $replaceString, 1) ; Ersetzen und Duplikate entfernen
    ;Search_And_Replace($srcfile, $searchString, $replaceString) ; Ersetzen, Duplikate behalten
    ;Search_And_Replace($srcfile, $searchString, $replaceString, 0) ; -- " --

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

    Func Search_And_Replace($s_file, $s_searchString, $s_replaceString, $b_DeleteDuplicates = 0)
    ; $s_file = filename
    ; $s_searchString = string to search in file
    ; $s_replaceString = string to replace the searched string in file
    ; $b_DeleteDuplicates = flag, value 0=no (default) or 1=yes, to deletes all duplicate lines of the search string or not,
    Local $stringCount = 0
    $sfile = FileOpen($s_file, 0)

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

    For $i = _FileCountLines($s_file) to 1 step -1
    $readline = FileReadLine($sfile, $i)
    If StringInStr($readline, $s_searchString, 2) Then
    $stringCount += 1
    ;MsgBox(0, "String found!", "The String " & $s_searchString & " is found in line: " & $i)
    If $stringCount > 1 and $b_DeleteDuplicates Then
    _FileWriteToLine($s_file, $i, "", 1)
    Else
    _FileWriteToLine($s_file, $i, $s_replaceString, 1)
    EndIf
    EndIf
    Next
    FileClose($sfile)
    EndFunc ;==>Search_And_Replace

    [/autoit]

    Gruß Ashpool

  • Suchen eines Strings und Ersetzen der ganzen Zeile, dabei doppelte Einträge löschen

    • Ashpool
    • 8. April 2009 um 14:56
    Zitat von ahe

    ein kleines Problem noch. So wie es aussieht, werden die Einträge zwar ersetzt, allerdings werden nicht alle doppelten Einträge gelöscht.


    Oh ja, wenn eine Zeile gelöscht wird, ist die nächste bearbeitete Zeile ja eigentlich erst die übernächste.
    Wenn wir die Zeilen von hinten durchgehen, sollte das Problem gelöst sein.

    [autoit]

    For $i = _FileCountLines($s_file) to 1 step -1

    [/autoit]

    Probier mal!

    Gruß Ashpool

  • Suchen eines Strings und Ersetzen der ganzen Zeile, dabei doppelte Einträge löschen

    • Ashpool
    • 8. April 2009 um 14:23

    Keine Ursache, gern geschehen. :)

    Eine Kleinigkeit ist mir noch aufgefallen, die Reservierung der Variablen $StringCount sollte besser so aussehen:

    [autoit]

    Local $stringCount = 0

    [/autoit]


    um $StringCount mit dem Wert 0 zu initialisieren, sonst könnte es bei einer möglichen Erweiterung, die auf den Wert 0 testet, zu unerwarteten Problemen kommen.

    Gruß Ashpool

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™