Beiträge von autoBert

    Ich vermute mal, GUICtrlSetBkColor funktioniert wohl nur, wenn das Item mit GUICtrlCreateListViewItem erstellt wurde.

    Korrekt, daher folgender Lösungsvorschlag (C + P quer durch die Hilfe):

    Nimm anstelle von _SQLite_Query _SQLite_GetTable2d.

    • Wenn dann noch das SQL Statement analog zur LV aufebaut ist kannst du auch noch anstelle von GUICtrlCreateListViewItem(um eine LV-Zeile zu erstellen) _GUICtrlListView_AddArray verwenden und das komplette Egebnis auf eimal einzutragen.
      Schnellste Methode
    • Falls es aber das Egebnis nicht zulässt, musst du in einer Schleife durch das erhaltene Array (Ergebbnis von _SQLite_GetTable2d) gehen und GUICtrlCreateListViewItem verwenden.
      Selbst diese Methode ist noch deutlich schneller als dein Ansatz mit _SQLite_Query.

    Die LV-Farben kannst du auch auf einmal setzen:

    Code
    ; Set colors
    _GUICtrlListView_SetBkColor($idListview, $CLR_MONEYGREEN)
    _GUICtrlListView_SetTextColor($idListview, $CLR_BLACK)
    _GUICtrlListView_SetTextBkColor($idListview, $CLR_MONEYGREEN)

    dies sollte auch noch einmal (minimal) Zeit sparen.

    Wenn InetGet nicht unter allen Umständen funktioniert, dann betrifft das auch Oscars Code. Von daher halte ich es nicht für sinnvoll, einen eigenen Thread zu eröffnen.

    Ich schon, da das Problem nicht Oscars Skript betrifft und somit sein Thread unötig zumüllt aufbläht.

    Die SB wird jetzt überall vorangestellt, nervt (unnnötiger INet-Volumen Verbrauch)


    Gestern kam ich gar nicht auf autoit.de DieselWiesel.zip


    Heute nicht auf Pinger.zip Wobei, diese wohl nicht aktuell sein können (25/07/2014),

    ich denke mal da muss sogar das richtige Datum rein.

    wenn er nur mit der Zeit rechnen will genügt auch ein fiktives Datum. Für eine echte Arbeitszeiterfassung mit Dokumentation der Zeiten sind aber auch echte Daten erforderlich. Afair gibt es schon einige Skripte hierfür im Forum.

    - Warum läuft das Programm schneller, wenn die Maus bewegt wird? Hat das etwas mit Multiprocessing, bzw. Multithreading zu tun? Wenn ja, wie kann ich es beheben?

    Du handelst deine GUI im MessageLoop Modus (GuiGetMsg), wenn du auf den OnEvent Modus wechsels ist dies behoben. Die benötigten Funktionen sind:


    aber das Problem sind tatsächlich die Tage. Monate und Jahre lassen sich ja problemlos über _"DateDiff" bestimmen.

    Die "_DateDiff" - Funktion gibt auch die Tagesanzahl korrekt wieder (3405) - aber mir ist keine Formel bekannt, um sie korrekt in Jahre und Monate umzurechnen.

    mein Ansatz war und ist von der größten Einheit (Jahre) bis zur kleinsten Einheit (Sekunden) jeweils die Differenz zu ermitteln und diese mit _DateAdd zum Startdatum zu addieren. Da ich die endgültige Lösung erst danach hinei editiert habe und mitlerweile noch einmal für die Ausgabe angepasst habe, noch einnmal das Skript:

    obige Skript liefert mit deinen Orginaldaten: 9/3/26 4:58:27

    wenn ich die Uhr-Zeiten vertausche: 9/3/25 19:1:33. Die Ergebnisse sind Jahre/Monate/Tage Stunden:Minuten:Sekunden formatiert.

    Man kann also daran erkennen, daß die Macher der Date.au3 alles was nötig ist bereits berücksichtigt haben. Und falls du nicht die letzten Millisekunden bei der Berechnung herausquetschen musst/willst ist diese Art zu lösen die Bequemste.

    Ich würde alles den Funktionen _DateDiff + _DateAdd überlassen. Hier der angefangene Ansatz:

    da dies eine C & P (mit Search + Replace) Lösung wird ist sie leicht zu vervollständigen und du must dir keine Gedanken um Schaltjahre machen. Bei dieser Methode wird jeweils die ganzzahlige Differenz (in Jahren/Monaten/Tagen usw.) ermittelt und danach in der jeweiligen Einheit zum ältereren Datum addiert.


    Basierend auf diesem Ansatz hier eine kürzere Lösung:

    ch würde hier die Variante nehmen die sich schöner liest. Wenn der Wert sich nicht verändert: Local Const $I_SHORT_LOOP = 3000 / $iShortSleep.

    Du kannst es auch als Local Static deklarieren, und es wäre wohl "schneller", aber der Geschwindigkeitsschub ist infinitesimal klein.

    Da sich mir der Gedanke aufgrängt, daß die Variablen (*_Loop) innerhalb einer/mehrer Funktion(en) als Endbedingung eines Loop's benutzt werden sollen, kann ich keinen Nutzen einer Local Static Deklaration erkennen. Bei Benutzung in mehreren Funktionen würde ich sie allerdings einmalig Global Const deklarieren.

    Das Beispiel 1 in der Hilfe zu macht genau was du erreichen möchtest. Deine Sort-Zeile sollte also so aussehen:

    Code
    _Excel_RangeSort($oWorkbook, Default, "A1:D" & $oBook.Worksheets(1).UsedRange.Rows.Count), "A:A")

    vielleicht geht auch:

    Code
    _Excel_RangeSort($oWorkbook, Default, Default, "A:A")

    Mir ist bisher nicht bekannt, daß man ADO-DB und SQLite mischen könnte. Füge daher:

    Code
    If @error Then MsgBox(64, 'SQLite', 'Fehler: ' & @error)

    nach der Zeile (_SQLite_Exec ...) ein. Es sollte eine Fehlermeldung kommen, da die DB nicht für SQLite geöffnet wurde.

    Sollte es sich um eine SQLite-DB handeln empfehle ich _SQLite_* Funktionen zu arbeiten. Ansonsten suche dir einne passende UDF aus dieser Liste.


    mfg (auto)Bert

    Falls ich dein Problem (alle Dateipfade aus XML auslesen) richtig verstanden habe. würde ich so abändern:

    die Dateipfade mußt du nochmal prüfen und evtl. anpassen, denn ich verteile Daten von Tetsjripten ungern auf verschiedene Verzeichnisse.

    Mit dem Link willst Du mir aber nicht sagen, ich solle auf einem fremden Rechner !!! nicht unbedingt notwendige Einstellungen verändern!??

    Notwendig wären diese schon. Würde ich a deiner Stelle trotzdem nicht machen.


    Der Besitzer (Ehepartner des Users) würde sich schön bedanken, würde er plötzlich andere Einstellungen auf seinem Rechner vorfinden!

    Zurecht, du kannst sie aber dahin beinflussen:

    • sich in Win 10 einzulesen
    • bzw. einen Kurs z.B.: VHS zu besuchen

    autoBert Ab Office 2010 kann die Lizenznummer meines Wissens nach nicht mehr ausgelesen werden. Zumindest hab ich bisher noch keine Lösung gefunden

    Schade, unter 8.1 bis Win10 Home 1609 bekam ich im Info-Center noch die Benachrichtigung, daß sowohl OS als auch MS-Office 2013 durch Hersteller aktiviert sind und die Registrieungsschlüssel im Bios abgelegt haben. Seit einer Neuinstallation von Win 10 1803 Home und MS-Office klappt dies nicht mehr und nach ca. 3 Monaten deinstalliert mir dann MS mein MS-Office. Neuinstallation von Office klappt zwar, es nervt aber.

    Also ich bekomme bei meinem Skript immer 1 Fenster zu viel heraus, auf der Suche warum habe ich es nochmal abgehandelt:

    die Datei hat folgenden Inhalt:

    Code
    5|
    C:\Users\hB\AutoIt.MyAu3s\Test\a.au3 - SciTE [6 of 7] State:15|0x000C0298
    GlassWire State:7|0x0006034C
    Problem mit WinGetState - Hilfe & Unterstützung - AutoIt.de - Das deutschsprachige Forum. - Mozilla Firefox State:39|0x000705E6
    Administrator: C:\Windows\SYSTEM32\cmd.exe State:7|0x000302F0
    Program Manager State:7|0x001E06C4