Beiträge von autoiter

    In den Energieoptionen meines Windows Betriebssystems ist unter "Netzschalter und Zuklappen" -> "Zuklappen" die Einstellung "Nichts unternehmen" aktiv.

    Wenn ich mein Laptop zuklappe, wird dadurch nur das Display deaktiviert. Eben habe ich es mit folgendem Skript getestet:

    Das Display ist und bleibt abgeschaltet.

    Hallo kakax

    Dann starte das Skript doch einfach über die Windows Aufgabenplanung..

    Oder schreibe die Zeit nicht fix in dein Skript, sondern benutze die Makros von AutoIt (@HOUR, @MIN, etc) und Funktionen wie _NowTime()..

    Bei beidem brauchst du keinen Startbutton, der immer noch dazu führen kann, dass du den Zeitpunkt verpasst. Der deutlich bessere Weg wäre die Aufgabenplanung.

    Guten Morgen De Rand Ere

    Ja, also dein Problem ist deine Verwendung von GUICtrlSetState(-1, $GUI_ONTOP).

    Damit setzt du einzelne Controls an die Spitze und änderst damit auch die Z-Reihenfolge der Controls. Das hat so wie ich das sehe nichts mit der Sichtbarkeit zu tun, ändert aber sehr wohl die Tab-Reihenfolge, Da du bei einigen Tab-Controls $GUI_ONTOP gesetzt hast, und bei anderen nicht, kommt das heraus.

    Ich glaube wirklich du hast das missverstanden und brauchst das hier überhaupt nicht.

    Ähm kann es sein, dass zweimal sortiert wird?

    Kommentiere mal _GUICtrlListView_RegisterSortCallBack( und _GUICtrlListView_UnRegisterSortCallBack aus.


    Entweder bin ich gerade verwirrt, oder diese Funktionen würden genau das bereitstellen was du im Codezweig Case $LVN_COLUMNCLICK machst..

    Also entweder oder. Wenn du in der _WM_NOTIFY-Funktion nur das machst, dann lass sie weg.

    Nicht schön, aber fast gar keine Arbeit beim ändern. Die Änderung ist einfach ein Funktionsaufruf..
    PS: Benutze vielleicht SciTE oder ISN zum coden. Dann kannst du dir den Code einfach formartieren lassen.

    Ach, warum probierst du denn meinen Code auch wirklich aus?!? 8o

    Ich hatte das aus einem anderen Testcode von mir rauskopiert und mir ist erst später aufgefallen, dass hier die Bedingung nicht gegeben ist für diesen Aufruf. Dann habe ich versucht es heimlich zu korrigieren. Aber du hast es nun ans Tageslicht gebracht ^^

    Schau dir meinen letzten Beitrag nochmal an. Der Code ist bei diesem Aufruf ein anderer, als zum Zeitpunkt, als du das kopiert hast. Sorry dafür.

    Hallo smaster123

    Das wäre mein Vorschlag für dein Skript, wenn du es auch noch etwas kürzer haben wolltest..

    Wenn dir das zu viel Aufwand ist, genügt es auch, wenn du unterste Schleife in deinen Code einbaust. Mit _GUICtrlHeader_SetItemFormat kann man den Pfeil entfernen. Das _GUICtrlListView_SortItems braucht es dann gar nicht mehr. Dennoch würde ich weiter beachten _GUICtrlListView_BeginUpdate und _GUICtrlListView_EndUpdate zu verwenden.

    Deine Suche ist aber ein langes Konstrukt. Das könnte man vllt. etwas kürzer machen, wenn du mit Arrays, Schleifen und evtl. Enum arbeitest.
    Warum du _GUICtrlListView_BeginUpdate und _GUICtrlListView_EndUpdate da brauchst, damit die Beschriftung nicht verschwindet weiß ich auch nicht.
    Allerdings solltest du es (wenn Zeit schon eine Rolle spielt so einsetzen, dass es dir auch Vorteile bringt. Bei größeren Manipulationen an der Listview solltest du das Bildschirmupdate der Listview als erstes abschalten mit _GUICtrlListView_BeginUpdate, dann deine Arbeit erledigen und danach mit _GUICtrlListView_EndUpdate das fertige Ergebnis anzeigen lassen. Das beschleunigt den Prozess enorm (bei _GUICtrlListView_AddArray ist das nicht notwendig). Das _GUICtrlListView_SortItems wird dann auch deutlich schneller sein.

    Allerdings findet sich bestimmt noch jemand, der eine sauberere Lösung weiß, als solch einen Workaround.

    Hmm, ich denke mit den ersten Tipps von alpines ist es getan. Die false-positive Meldung ist nicht nachhaltig. Das weiß ich aus leidiger Erfahrung.

    Das klappt mal und mal nicht und irgendwann ist es doch mal wieder bei dem AV Programm in der Liste...
    Das bringt nichts. Wenn du ein AutoIt-Programm verteilen möchtest, arbeite am besten mit einer Verknüpfung, auf dein Skript und eine mitgegebene AutoIt3.exe. Wenn es nur um die eigene Nutzung geht, verhindere den Zugriff des AV Programms auf deine kompilierten AutoIt Programme, wie alpines geraten hat.

    Hallo alpines und Tweaky

    Alles gut. Das kann alles so bleiben. alpines hat das missverstanden. Er muss nicht die Anzahl der Elemente in [0][0] eintragen. In der Funktion wird einfach davon ausgegangen, dass das Quell-Array meist vorher mit IniReadSection erstellt wurde und daher erst ab [1][0] losgeht. Was in [0][0] steht ist dann irrelevant. Wenn in [0][0] & [0][1] Werte stehen, die geschrieben werden sollen, dann muss man den Indexparameter verwenden (0). Das steht auch genau so in der Parameter-Beschreibung von Index.

    Ich hatte die verschiedenen Diskussionen nur überflogen und dachte, du startest beim SciTE Start auch externe AutoIt Skripte. Da dachte ich, du könntest beim letzten einfach am Ende das SciTE Fenster aktiv setzen oder aber eines starten, dass nichts anderes als das tut.

    Würde es dir helfen in SciTE die Option 'Always On Top' zu setzen, oder wäre das zuviel?
    EDIT: Ach, ich habe gesehen, du startest auch AutoIt Skripte? Könnte das letzte nicht einfach SciTE in den Vordergrund holen?