Beiträge von Moombas

    Japp, das ist der negative Bereich:

    0xFFFFFFF = -1 und geht bis 0x80000000 (-2147483648)


    Und aus meiner Sicht kein Fehler, sondern eine Möglichkeit Zahlen im Bereich von -2147483648 bis 2147483647 darzustellen.

    Evtl. gibt es einen Schalter mit dem man den negativen Bereich raus bekommt und den vollen positiven Bereich erhält, entzieht sich aber meiner Kenntnis.

    Versuch es mal so: https://www.autoitscript.com/autoit3/docs/functions/Dec.htm

    Aber irgendwie wird da auch ab 0x80000000 gekappt.


    Hilft dir ggf. das hier: https://www.autoitscript.com/f…s-on-hexadecimal-numbers/

    Bitnugger Leider muss ich dich korrigieren, seine Ursprungsaussage war falsch. Er will nicht 16 Sekunden, sondern 16 Minuten nach der vollen Stunde die Bat ausführen. Und ich verstehe nicht ganz warum du auf "And $iCurrentMin = 12" schaust aber scheinbar bekomme ich gerade dazu den Bezug nicht.


    $sCMD würde ich wenn schon sofort definiert, als Global Const setzen.


    Ich halte das mit dem fixen sleep für 1h für gefärlich aber ggf. bin ich da etwas gebrandmarkt von anderen Projekten, wo so etwas nicht hin haute (1h theoretischer sleep <> 1h Realität)? (Einfluss von PC-Auslastung etc.)

    War zumindest mein Grund das nicht zu nutzen.

    Desweiteren hat er ja ein "Ausführungsproblem" mit seiner Batch, das sie nicht macht was er will wenn sie über autoit gestartet wird. Das wurde hierbei nun auch nicht beachtet.


    diebratwurst Das script von bitnugger macht vom Prinzip nichts anderes als meins, wird also an deinem Problem nichts ändern.

    Des weiteren ist die ideale Verfahrensweise weiterhin die Aufgabenplanung.

    Du, ja aber das ausgeführte Programm, wenn durch die Exe aufgerufen wird, nicht unbedingt.

    Aber wie gesagt wenn du keine Informationen gibst, kann man auch nicht helfen.


    Ich schmeiße trotzdem mal was in den Raum für dich zur Selbstrecherche:

    #RequireAdmin

    Runas()


    P.s.: Berechtigungen sind auch "Datei ist im Zugriff",... , das hat nicht immer was mit Benutzerrechten zu tun. Aber du bist ja Administrator und kannst auch sicherlich trotz laufendem Windows das Windowsverzeichnis löschen...

    Zunächst einmal, die Lösung stammt von mir, gmmg hat nur eine Zeile auskommentiert, was auch noch falsch war. (S.o.)

    Nehme das normalerweise nicht so genau aber richtig stellen will ich das schon!


    Das die Batch nicht macht was sie soll ist eine fadenscheinige Aussage mit der hier keiner was anfangen kann.

    Da musst du schon genauer werden, was sie machen soll und was sie nicht macht.

    Ich vermute mal in den blauen Dunst, wie so oft, Berechtigungsprobleme. Aber halt nur aus der :Glaskugel:

    Das $Hour +=1 hat am Anfang immer die Zeit Automatisch hochgezählt, ehe es in die Batch Schleife gesprungen ist.

    Das hat auch einen Grund!

    Wenn ich um 12:17 das script starte würde er sonst bis 12:16 (also 23 Stunden und 59 Minuten) warten bevor es starten würde, daher +1, damit es das erste mal in der folgenden Stunde um 13:16 gestartet wird.

    Zum testen sollte man es natürlich auskommentieren...


    Man sollte also erst mal das ganze verstehen bevor man "einfach mal" etwas auskommentiert und sagt "hey das ist die Lösung"...

    Dein Skript kann nicht richtig laufen, da er nicht die richtige Zeit zu deiner Anforderung hat.

    Deine Anforderung X Stunden + 16 Sekunden.

    Deine Annahme ist aber: 01:16 = 1 Stunde und 16 Minuten!


    Im 12 Stunden Format hast du dennoch das Problem, das der Abstand zwischen 12:00 und 00:00 12 Stunden sind...


    Und bei einem Intervall von 100ms, könnte das Script theoretisch 10mal Pro Stunde laufen!


    Zu deiner Frage in Fett: Ja, er nimmt das Systemschema.

    ungetestet:

    Das kannst du doch selber am besten testen...

    Ich sehe aber ein Problem (evtl. aber gewollt):

    Zwischen den letzten beiden Ausführungen liegen 12 Stunden!?!


    Und wenn du wirklich Probleme mit der Zeitangabe vom PC hast verwende _NowTime(5) (24h Format mit Sekunden; siehe Hilfe) dann müsstest du mit deiner vorgehensweise aber 24 Einträge schreiben, was du wiederum kürzen könntest in dem du das in eine Funktion packst aber am besten wäre wirklich die Zeit in einer Datei zu speichern (Absturzsicherung) oder einer Variable (Inhalt nach Absturz weg), je nachdem was du brauchst.

    Warum schreibst du die letzte Ausführung nicht in eine Datei (z.B. Ini) und prüfst auf diese (+1h)?

    Dann sparst du dir diese ganzen Zeiten manuell einzutragen, wobei das mit der Aufgabenplanung durchaus am meisten Sinn macht.


    "Aus irgendwelchen Gründen" finde ich immer schwierig, evtl. kann man euch hier besser helfen wenn man den Grund dafür findet und behebt!?

    Das Resizing hat nur Einfluss auf die Abmessung des Labels, die Fontgröße hat damit nichts zu tun. Wenn du das zusätzlich anpassen möchtest, musst du WM_SIZING auswerten und im Verhältnis zur Größenänderung die Schriftgröße anpassen.

    Aber den Zahn kann ich dir gleich ziehen - denn das funktioniert einfach nicht!

    Ursache: Durch das Ermitteln des Verhältnisses musst du zwangsläufig runden. Die Rundungsdifferenzen führen dazu, dass bei mehrfacher Größenänderung du niemals zurück zur Anfangsgröße gelangst. Irgendwann wird die Schrift dann überproportional groß oder klein. Habe ich schon mal probiert.

    Jaein, wenn du die Standardfenstergröße als Default (Const) Wert nimmst wäre das doch egal.

    Sprich Standardfenstergröße (z.B. 1000px = 100%) zu neuer Fenstergröße (z.B. 768px = X%) ins Verhältnis setzen und dementsprechend die Standardschriftgröße vergrößern/verkleinern (Dreisatz). Faktor = X% / 100



    Ggf. musst du beides betrachten (Breite und Höhe) und dann den kleineren Wert wählen. Aber dadurch das du immer die Ausgangsgröße als Maßstab nimmst, müsste das Verhältnis immer passen (und auch immer wieder zum Startwert zurückkehren können).