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

Beiträge von HansJ54

  • ConsoleWrite() rot färben und trotzdem per Zeilennummer ins Programm springen

    • HansJ54
    • 2. Juni 2021 um 17:39

    Danke Dir!

    Hast Du vielleicht zu diesem Punkt auch eine Idee?

    Makro zur Anzeige des aktuellen "Include" und der aktuellen Function - Hilfe & Unterstützung - AutoIt.de - Das deutschsprachige Forum.

    Da bisher niemand geantwortet hat, vermute ich, dass es keine Möglichkeit gibt.

    Schönen Feiertag!

  • ConsoleWrite() rot färben und trotzdem per Zeilennummer ins Programm springen

    • HansJ54
    • 28. Mai 2021 um 20:32
    Zitat von BugFix

    DAS ist überhaupt kein Problem, dazu kann ich eigene Sprungmarkendefinitionen erstellen. Weitaus problematischer ist die Farbgebung, da das nur mit Lexer möglich ist und ich wohl dazu versuchen müsste die styles umzubiegen.

    Was ich sicher hinbekomme:

    ConsoleWrite($sText, $bErr) ; $bErr=True(rot) / False(blau) bzw. auch die Farben der anderen style.errorlist.

    !@@ Debug(1234) : Text Fehler

    >@@ Debug(1234) : Text Sonstiges

    Ist dann mit Sprungmarke.

    Alles anzeigen

    Das wäre super. Vielleicht noch alternativ $iErr=0 <=> $bErr=False und $iErr<>0 <=> $bErr=True

  • ConsoleWrite() rot färben und trotzdem per Zeilennummer ins Programm springen

    • HansJ54
    • 28. Mai 2021 um 20:08
    Zitat von BugFix

    Wofür die einzelnen style.errorlist.n zuständig sind habe ich doch oben detailliert angeführt:

    n = 3 - Sprungmarke Fehler (Standard: rot)

    n = 9 - Sprungmarke Info (Standard: pink)

    n = 4, 10, 11, 12 - abhängig vom ersten Zeichen (z. B. ! - rot)

    Habe ich verstanden. Idee war nur, dass eine der nicht genannten n noch was Sinnvolles machen könnte. Ich habe gesucht, wo die Dinger definiert sind, aber nicht gefunden.

    Zitat von BugFix

    Wäre dir geholfen mit einer Funktion: ConsoleWriteColor($sText, $iColor) ?

    Sollte m.M. nach nicht allzu schwierig umzusetzen sein mithilfe des SciTEInterface.

    Damit wäre mir sehr geholfen ;) Ist aber, wie erwähnt, nur ein "Nice-To-Have" und erleichtert mir das Debuggen - falls nicht zu viel Aufwand ... Die müsste aber natürlich "Sprungmarke" beherrschen.

    Ein wenig Hintergrund: ich habe ein sehr umfangreiches Programm unter Nutzung von DanPs Webdriver.udf geschrieben und mit jeder neuen Version des Chromedrivers oder Änderungen auf den genutzten Webseiten tauchen wieder neue ominöse Fehler auf. Ich gebe zu, größtenteils meine ( ;) ) aber manchmal auch nicht.

  • Makro zur Anzeige des aktuellen "Include" und der aktuellen Function

    • HansJ54
    • 28. Mai 2021 um 19:18

    Noch eine Frage zur optischen Aufbereitung der Ausgaben in der Console zum Debuggen:

    Gibt es neben @ScriptName eine Möglichkeit, anzuzeigen in welchem Include und in welcher Function sich das Programm gerade befindet? Sollte in der Console dann so aussehen:

    Mit @ScriptName bekomme ich ja nur den Namen des Scripts, aber nicht, in welchem Bereich ich mich gerade befinde. Workaround für die Function() wäre als erste Zeile in jeder Function "$sFuncName=NameDerFunktion" zu setzen. Genauso könnte man dahinter noch "$sIncludeName=NameInclude.au3" setzen.

    Aber vielleicht gibt es ja eine bessere Möglichkeit?

  • ConsoleWrite() rot färben und trotzdem per Zeilennummer ins Programm springen

    • HansJ54
    • 28. Mai 2021 um 18:56

    Danke für die Info - mir fehlt allerdings das Hintergrundwissen zu den Möglichkeiten in SciTEUser.properties. "style.errorlist.3" etc. müssen ja irgendetwas an Programm dahinter haben, vielleicht ist ein"...x" das was ich suche?

    Ich habe verstanden, dass ich mit dem Voransetzen eines "Farb-Zeichens" wie z.B. "!" zwar eine Farbe in der Zeile beeinflusse, aber dass gleichzeitig die Sprungfunktion damit nicht mehr geht (richtig?).

    Was ich wollte ist an sich gleich aussehende Sprungzeilen verschieden einzufärben, also z.B. so:

    (gefaked, nicht irritieren lassen ;) .

    Vielleicht gibt es ja eine "style.errorlist.x", mit der man so etwas machen kann (oder anders)?

    Ist kein wirklich dramatisches Problem, im Moment erzeuge ich einfach eine rote Zwischenzeile bei $iErr<>0 und danach überlasse ich die Farben wieder sich selbst. Wäre trotzdem nice-to-have.

  • ConsoleWrite() rot färben und trotzdem per Zeilennummer ins Programm springen

    • HansJ54
    • 18. Mai 2021 um 15:23

    Neues Problem:

    Ich schreibe viele Debug-Zeilen zum Testen und würde die rot anzeigen wollen, bei denen $iErr <> 0 ist. Setze ich "!" an den Anfang dieser Zeilen, werden sie rot - aber ich kann nicht mehr mit Klick auf die Zeilennummer automatisch ins Programm springen.

    Gibt es eine Möglichkeit zum Färben unter Erhalt der Sprungfunktion?

  • Normierte Zahlenanzeige

    • HansJ54
    • 18. Mai 2021 um 13:56

    Vielen Dank für die Hilfe, funktioniert einwandfrei!

  • Normierte Zahlenanzeige

    • HansJ54
    • 17. Mai 2021 um 23:09

    Nachdem ich jetzt länger in der Hilfe und im Forum gesucht habe mit sicher falschen Suchbegriffen möchte ich abkürzen:

    Wie kann ich in AutoIt Zahlen mit Punkten und ggf. Kommas "schön" darstellen: 1234567,89 => 1.234.567,89 ?

    Geht sicher mit RegEx, aber vermutlich hat auch AutoIt eine fertige Funktion dafür!?

  • Speicheranzeige

    • HansJ54
    • 17. Mai 2021 um 22:49

    Ich sammle die Werte, sieht dann so aus wie im Screenshot nur mit größeren zeitlichen Abständen. Wenn ich sicher wäre, dass es Row 9 ist, würde ich eine neue Spalte nur bei jeder Änderung von Row 9 erzeugen.

    Ich habe nach wie vor einen Speicherzuwachs, allerdings gering, sieht man sogar bei diesen kurzen Intervallen und hat nichts mit dem Aufbau der Tabelle zu tun, ab Col10 schreibe ich nur noch in Col10 und auch dabei steigt Row 9 leicht an.

    pasted-from-clipboard.png

    Im laufenden Programm zeige ich mir den Wert von Row 9 auch an:

  • Speicheranzeige

    • HansJ54
    • 11. Mai 2021 um 19:47
    Zitat von Kanashius

    Im Zweifel das Programm in Abschnitte aufteilen (normalerweise hat man ja eh viele Funktionen,...) die einzeln getestet werden können und diese dann Härtetests unterziehen => Sehr oft ausführen und die Arbeitsspeichernutzung ansehen.

    Genau das versuche ich ja. Aber stundenlang etwas Klicken und dabei in den Taskmanager schauen ist langweilig. Daher der Gedanke, den genutzten Arbeitsspeicher an verschiedenen Stellen im Programm zu loggen und dann nach ein paar Stunden normaler Arbeit zu schauen, ob es in Summe an diesen Stellen aufwärts geht.

    Und dafür brauche ich einen sinnvollen Wert, den ich automatisch aus dem System ziehen kann. Der muss noch nicht mal der "echte" Wert sein, sondern nur die Speicherbedarf-Änderungen dokumentieren.

  • Speicheranzeige

    • HansJ54
    • 11. Mai 2021 um 12:40

    Zum Hintergrund:

    Ich habe ursprünglich in einer Endlosschleife ein GUI immer wieder neu definiert und damit laufend mehr Speicher verbraucht bis zum Platzen. Den Fehler habe ich gefunden. Jetzt ist aber immer noch ein stetiger geringer Speicherzuwachs geblieben, dem ich gerne auch auf die Spur kommen möchte. Inzwischen ist es so wenig, dass das Programm auch nach 8 Std. nicht abstürzt, aber mich interessiert halt, wieso [9] stetig steigt, dann gelegentlich mal wieder etwas runtergeht, in Summe aber trotzdem steigt.
    Nennen wir es "wissenschaftliches Interesse".

    Ich denke, die beiden Funktionen liefern tatsächlich nicht den Wert "Arbeitsspeicher" aus dem Taskmanager. Vielleicht bedeutet ein Anstieg in [9] auch nichts, da der Taskmanager andere Werte anzeigt. Aber es muss doch eine Möglichkeit geben, den Wert aus dem Taskmanager exakt zu bekommen!?

  • Speicheranzeige

    • HansJ54
    • 11. Mai 2021 um 12:28

    Ich möchte den Wert aus dem Taskmanager loggen:

    Hier sind die Ergebnisse von _WinAPI_GetProcessMemoryInfo() (0-9) und MemGetStats() (10-16), wobei [7] und [9] mit 46,45 MB (gerechnet wie oben) der Anzeige im Taskmanager mit 38,1 MB diesmal noch "unähnlicher" sind. Ich habe den Verdacht, der Taskmanager zieht andere Werte. Speziell ist er zwischen den beiden Abfragen von 44,1 MB auf 38,1 MB gewechselt, mein Log ist aber gleich geblieben:

    pasted-from-clipboard.png

  • Speicheranzeige

    • HansJ54
    • 11. Mai 2021 um 09:31

    Die 46616576 aus _WinAPI_GetProcessMemoryInfo() sind laut Hilfe Byte. Im Beispiel steht:

    Function _WinAPI_GetProcessMemoryInfo

    Code
    ConsoleWrite('Current private space: ' & $aData[9] & ' bytes' & @CRLF)

    Ich habe gerechnet 46616576 / 1024 / 1024 = 44,46. Deine Rechnung ausgehend von 44,46 verstehe ich daher nicht. Von diesem Wert noch mal umzurechnen macht doch keinen Sinn?

  • Speicheranzeige

    • HansJ54
    • 10. Mai 2021 um 18:45

    Noch mal zum Problem zurück, da neues Problem gefunden: Ich möchte den Verlauf der Arbeitsspeichernutzung eines Programms loggen.

    Ich ermittle die PID meines Programms mit:

    $iPid = WinGetProcess("AutoIt")

    dann hole ich die Speicherwerte mit

    $aData = _WinAPI_GetProcessMemoryInfo($iPid)

    und nehme den Wert 9

    $iMem = $aData[9] ; 'Current private space'

    Ich hätte jetzt gedacht, dass 'Current private space" der Wert ist, den der Taskmanager anzeigt unter Arbeitsspeicher, ist aber nicht so: Taskmanager 41,4MB und $iMem 44,46MB

    Was mache ich falsch? Ist 'Current private space' nicht der "Arbeitsspeicher" aus dem Taskmanager?


    pasted-from-clipboard.png

  • Verschlüsselte Elemente in csv-Datei (Problem mit ; und CR bzw. CRLF)

    • HansJ54
    • 16. August 2020 um 16:59

    Beides gute Ideen. Habe darüber xlsxNative.au3 gefunden, vielleicht bleibe ich dann gleich im Excel-Format (habe dabei aber nicht wie bei parseCSV auch noch "Schreiben" gefunden).

    Wenn es mir mal nicht so warm ist, teste ich die Alternativen.

    Vielen Dank!

  • Verschlüsselte Elemente in csv-Datei (Problem mit ; und CR bzw. CRLF)

    • HansJ54
    • 15. August 2020 um 18:49

    Ich habe bisher die komplette csv-Datei verschlüsselt, entschlüsselt und dann in eine Array eingelesen. Ich würde aber gerne nur einzelne Felder der csv-Datei verschlüsseln. Dann müsste ich die csv einlesen mit den verschlüsselten Feldern und dann entschlüsseln.

    Problem: beim Verschlüsseln könnte ein Semikolon oder ein CR entstehen und das macht das csv-Einlesen unmöglich.

    Hat jemand eine Idee, wie ich beim Verschlüsseln ";" und CR vermeiden kann?

    Eine Möglichkeit wäre, direkt beim Verschlüsseln ";" durch "#Semikolon#" und CR ähnlich umzuwandeln und beim Entschlüsseln das rückgängig zu machen. Aber vielleicht gibt es bessere Ideen?

  • Feststellen, ob Programm bereits gestartet

    • HansJ54
    • 11. August 2020 um 22:53

    Das hätte ich nie hinbekommen, danke!

  • Feststellen, ob Programm bereits gestartet

    • HansJ54
    • 11. August 2020 um 10:57

    Müsste ich dann über gespeicherte PIDs machen, also relativ umständlich.

    Genauer: Mein Script öffnet ein oder mehrere Chrome-Fenster mit speziellem Profil, wird irgendwie unkonventionell beendet (normales Beenden ist kein Problem, da alle geöffneten Fenster gelöscht werden) und Fenster mit dem speziellen Profil bleiben unangenehmerweise offen. Neuer Start vom Script: da ich bisher nicht geschafft habe, die Verbindung mit dem alten Webdriver wieder neu aufzunehmen, startet Chrome nicht mit diesem Profil, da "Chrome schon gestartet".

    Beste Lösung wäre neue Verbindung zum alten Webdriver, ansonsten Test, ob noch Chromes mit dem speziellen Profil offen sind und diese zu löschen. Alle Chromes löschen wäre nicht gut, da auch Chrome-Fenster mit dem Standard-Profil offen sein könnten, die nicht geschlossen werden sollen.

  • Feststellen, ob Programm bereits gestartet

    • HansJ54
    • 10. August 2020 um 12:18

    Passt nur so halb hierzu:
    Ich starte den Chrome mit 2 unterschiedlichen Profilen (1. vom Desktop, 2. aus Script) und will abfragen, ob und welcher davon gestartet ist, da ich ggf. den 2. aus dem Script beenden, den 1. aber unbehelligt lassen muss.

    Gibt es dazu auch einen Weg?

  • Feststellen, ob Programm bereits gestartet

    • HansJ54
    • 10. August 2020 um 12:16

    Auch hier fehlte mir einfach der Suchbegriff. Klappt auf Anhieb perfekt, vielen Dank!

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™