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

Beiträge von BugFix

  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 17. Juni 2015 um 15:07
    Zitat von AutoTim

    _GUICtrlListView_AddColumn hinzu, weil ich deren Breite dann gleich mit angeben kann.

    Was ist das für eine Logik?
    Das erledigt man doch beim Erstellen mit:

    AutoIt
    $hLV = GuiCtrlCreateListView('Spalte_1|Spalte_2', 5, 50, 495, 500)
    _GUICtrlListView_SetColumnWidth($hLV, 0, 240)
    _GUICtrlListView_SetColumnWidth($hLV, 1, $LVSCW_AUTOSIZE_USEHEADER)  ; Restbreite
  • Details .mkv auslesen

    • BugFix
    • 17. Juni 2015 um 13:20

    Die technischen Spezifikationen dieses Containers findest du hier. Also leg los.

  • SciTE - eigene Properties-Dateien update-sicher speichern.

    • BugFix
    • 17. Juni 2015 um 12:06

    Wenn man für seine PlugIns oder auch generell für seine Änderungen die Properties in einer eigenen Datei speichern möchte muß man einiges beachten.

    • Der Speicherort der Datei muss im selben Ordner (oder rekursiv) gespeichert sein, wie die Datei, aus der der import-Befehl ausgelöst wird.
    • Standardmäßig speichert SciTE im Pfad: ..\SciTE\Properties\
    • Etwa seit AutoIt v3.10 werden zusätzliche Properties (Abbrevs etc.) im Pfad ..\AppData\Local\AutoIt v3\SciTE\ abgelegt.
    • Bei einem Update wird der Inhalt von ..\SciTE\Properties\ kpl. überschrieben.

    Daraus resultiert, man sollte eigene Properties im AppData-Pfad speichern. Dadurch kann ich dann auch den Aufruf in der SciTEUser.properties unterbringen. Diese wird bei einem Update glücklicherweise nicht angefasst.
    Da der AppData-Pfad von Windows etwas versteckt wird, empfehle ich die eigenen Propertie-Dateien in einem Ordner des USER-Verzeichnisses abzulegen und von dort in das AppData-Verzeichnis per Hardlink zu verlinken.

    AutoIt
    ; -- *.properties Datei im Userpfad, Properties-Ordner erstellen
    ; -- z.B.
    $sPathPropsUser = @UserProfileDir & '\Properties.User\sample.properties'
    
    
    ; -- Die Datei per Hardlink in den Ordner mit der "SciTEUser.properties" verlinken
    $sPathAppDataLocal = @UserProfileDir & '\AppData\Local\AutoIt v3\SciTE'
    FileCreateNTFSLink($sPathPropsUser, $sPathAppDataLocal & '\sample.properties')
    
    
    ; -- das Laden der *.properties kann jetzt innerhalb der "SciTEUser.properties" erfolgen
    ; -- da aus demselben Ordner geladen wird, ist keine weitere Pfadangabe erforderlich
    ; -- die Endung (.properties) wird beim Import nicht angegeben
    import sample
    Alles anzeigen

    Nun kann man problemlos updaten und sofort mit all den eigenen Änderungen wieder loslegen.

    Vorteilhaft ist dies auch um etwas Ordnung in die SciTEUser.properties zu bekommen. Ich habe dort z.B. User-Settings für Lua, Python, SQL etc.. Die habe ich jetzt jeweils ausgelagert in eine eigene Datei (lua_user.properties, python_user.properties ...) und lade diese Dateien mit import am Beginn der SciTEUser.properties. Somit haben sie auch die gleiche Priorität wie diese.

  • GuiListView zeigt ScrollBar erst nach reinklicken und scrollen an

    • BugFix
    • 17. Juni 2015 um 09:25

    Du mußt das Listview erzeugen bevor du die GUI auf SHOW setzt. Andere Variante wäre, nach dem Erstellen des LV ein Neuzeichnen zu erzwingen (_WinAPI_RedrawWindow).
    Dein GUICtrlCreateListView("", 2, 2, 796, 300) ist beim besten Willen noch kein LV, das entsteht erst duch das Hinzufügen der Spalten (warum erstellst du diese nicht sofort?).

  • in .xml Datei Werte ändern

    • BugFix
    • 17. Juni 2015 um 09:13
    Zitat von Harald654

    und zwar mit "StringRegExpReplace"

    Das wäre in dem Fall mit Kanonen auf Spatzen schießen. :P
    Hier reicht doch StringReplace völlig aus.

    AutoIt
    $sSearch = '<screenmode default="true">DESKTOP</screenmode>'
    $sReplace = '<screenmode>10192001080060.00000pstd</screenmode>'
    
    
    $sRead = FileRead('XML-Datei')
    If StringInStr($sRead, $sSearch) Then
    	$fH = FileOpen('XML-Datei', 2)
    	FileWrite($fH, StringReplace($sRead, $sSearch, $sReplace)) 
    	FileClose($fH)
    EndIf
  • Icondatei mit mehreren Icongrößen mit GDI+ laden

    • BugFix
    • 16. Juni 2015 um 19:10

    Ich habe die portable Version geladen - schon beim DL schlägt der Malware-Scanner an.

  • Icondatei mit mehreren Icongrößen mit GDI+ laden

    • BugFix
    • 16. Juni 2015 um 18:26
    Zitat von bernd670

    dem kann ich Greenfish Icon Editor Pro empfehlen.

    Was mich jetzt etwas verwundert, dass ein OpenSource-Programm Adware auf den PC schaufelt. <X
    Aus meiner Sicht nicht empfehlenswert.

  • Fragen zur Firefox UDF

    • BugFix
    • 16. Juni 2015 um 17:36
    Zitat von Fr34k.

    Naja, bin mir nicht sicher ob dies wirklich so gewollt ist, denn auf der Webseite sowie auch im Source-Code werden die Umlaute korrekt dargestellt.

    Die Website ist wahrscheinlich in UTF8 codiert und SciTE? - Genau: Win1252.
    Beide Codes können zwar Umlaute/Sonderzeichen darstellen, aber wenn du in UTF8 geschriebene Umlaute in einer Win1252-Umgebung ausgibst, siehst du nur noch Fragezeichen, weil die Zeichen nicht zugeordnet werden können.

    Das ist das leidige Problem, dass es zwar UTF8 schon eine gefühlte Ewigkeit gibt, aber es bis heute noch nicht Standard ist.
    Du kannst ja mal in SciTE über <Datei><Kodierung> auf UTF8 umschalten. Wenn du dann die Ausgaben lesen kannst, weißt du was zu tun ist.

  • Array - Eintrag entfernen bei Bedingung (RemoveIf)

    • BugFix
    • 16. Juni 2015 um 16:30

    Nach langem mal wieder was zum Thema Array. (Nur was Kleines)
    In manchen Sprachen gibt es RemoveIf als native Funktion, hier mal für AutoIt anzuwenden auf 1D-Arrays.

    AutoIt
    ;~ ============================================================ Bsp. ===
    #include <Array.au3>
    
    
    Func _NotEven($a)
    	Return Mod($a, 2)
    EndFunc
    
    
    $NotEven = _NotEven
    Local $a[] = [1,2,3,4,5,6,7,8,9,10]
    
    
    $aEven = _Array_RemoveIf($NotEven, $a)
    _ArrayDisplay($aEven)
    ;~ ====================================================================
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _Array_RemoveIf
    ; Description ...:
    ; Syntax ........: _Array_RemoveIf($_ConditionFunc, $_Array[, $_iStart = 0])
    ; Parameters ....: $_ConditionFunc      - Funktion die die Arrayelemente auf eine Bedingung prüft
    ;                  $_Array              - das Array mit allen zu prüfenden Elementen
    ;                  $_iStart             - [optional] Der Startindex. Standard ist 0.
    ; Return values .: Erfolg               - Array ohne die Elemente, auf die die Bedingung zutrifft
    ;                  Fehler               - das Ursprungsarray, @error 1
    ; Author ........: BugFix ( autoit@bug-fix.info )
    ; ===============================================================================================================================
    Func _Array_RemoveIf($_ConditionFunc, $_Array, $_iStart=0)
    	If Not IsFunc($_ConditionFunc) Then Return SetError(1,0,$_Array)
    	Local $aNew[UBound($_Array)], $n = $_iStart
    	If $_iStart > 0 Then
    		For $i = 0 To $_iStart -1
    			$aNew[$i] = $_Array[$i]
    		Next
    	EndIf
    	For $i = $_iStart To UBound($_Array) -1
    		If Not $_ConditionFunc($_Array[$i]) Then
    			$aNew[$n] = $_Array[$i]
    			$n += 1
    		EndIf
    	Next
    	ReDim $aNew[($_iStart = 0  ? ($n > $_iStart ? $n : 1) : ($n > $_iStart ? $n : $_iStart))]
    	Return $aNew
    EndFunc
    Alles anzeigen
  • Checkboxen auslesen und in MSG Box ausgeben

    • BugFix
    • 16. Juni 2015 um 16:27

    Wieso klatscht du ihm jetzt was Fertiges hin? Wie soll man dabei lernen?
    Meine Hinweise enthielten alles Wesentliche um den Code zu erstellen. Bedenkt bei eurer Hilfe, dass nur Hilfe zur Selbsthilfe was bringt.
    Das andere heißt "Arm-aus-der-Sonne-legen" und wird nicht gewünscht. X(

  • Checkboxen auslesen und in MSG Box ausgeben

    • BugFix
    • 16. Juni 2015 um 15:24
    AutoIt
    If BitAND(GUICtrlRead($ID_Checkbox), $GUI_CHECKED) Then ; -- Checkbox ist aktiviert
    
    
    $sCaption = ControlGetText($HandleGUI, '', $ID_Checkbox) ; -- so liest du den Checkbox Text

    Das ganze per Button zu starten schaffst du ja wohl.

  • Können Controls bei einem (nicht Autoit) Programm nach einem Neustart unterschiedliche Instance Nummern aufweisen

    • BugFix
    • 14. Juni 2015 um 22:28

    Ich kann mich erinnern, dass ich solch ein Szenario vor Jahren mit irgendeinem Verwaltungsprogramm hatte. Da war kein gescheiter Zugriff, ich konnte nur die Menüleiste referenzieren. Aber die Untermenüs wurden erst zur Laufzeit generiert. Dadurch hing die Instance davon ab, welches Menü in welcher Reihenfolge erstmalig geöffnet wurde.
    Somit ist es durchaus denkbar, dass der TE ein ähnliches Problem hat.
    Wie geht man damit um? - Nun, man sucht nach eindeutigen Identifizierungsmerkmalen (z.B. Fenstertitel + Fenstertext) um darüber zu adressieren. Wenn Fenster erkannt werden, was bei dir der Fall ist, dann gibt es auch immer eine Möglichkeit diese zweifelsfrei zu identifizieren, selbst wenn die Instance von Elementen wechselt. Wenn du mehrere gleichartige Controls hast, dann kannst du diese per Enumeration auflisten und prüfen ob bei jedem Start gleiche Eigenschaften vorhanden sind. Mußt du halt etwas probieren.

  • Gefilterte Eingabe: InputFilter.au3 (1.1)

    • BugFix
    • 13. Juni 2015 um 09:30
    Zitat von Friesel

    Entschuldigung für meine Off-Topic-Frage, aber kann man bei GUICtrlCreateDate auch einstellen, dass bei Benutzung der UpDown-Controls mit den Sekunden begonnen wird? Standardmässig gehts nämlich bei Stunden los.

    Wenn es per Flag nicht geht (kann es gerade nicht prüfen), bleibt die Variante die Up/Down Message abzufangen und die Werte selbst zu setzen.
    Eventuell kannst du auch den Fokus verschieben. Zwischen den Positionen kannst du mit Shift+Pfeil wechseln.

  • ConsoleWrite (Zeilennummer) und nach langem Pfad Zeilenumbruch einfügen in die Console

    • BugFix
    • 10. Juni 2015 um 17:31

    Dann solltest du schon genauer erklären, was du meinst. Ich hatte es so verstanden, dass du die Errorausgabe ändern willst, tatsächlich geht es dir aber darum, dass überlange Zeilen automatisch umgebrochen werden in der Konsole (Autowrap).
    Dazu öffne die SciTEUser.properties (Optionen - Benutzereinstellungen öffnen) und trage dort ein:
    output.wrap=1
    Dann SciTE neu starten und fertig.

  • Datum / Ostersonntag.

    • BugFix
    • 10. Juni 2015 um 15:52
    Zitat von AutoMit

    #include <Date.au3> ; Datum und Zeit - brauche ich das?

    Schau in die UDF - ausschliesslich native Funktionen. Somit sind keinerlei Includes erforderlich.

    Und du musst schon den Return der Funktion auffangen.

    AutoIt
    $EasterDate = _Easter(@YEAR)
    ConsoleWrite($EasterDate & @CRLF)
    
    
    ; oder:
    ConsoleWrite(_Easter(@YEAR) & @CRLF)
  • ConsoleWrite (Zeilennummer) und nach langem Pfad Zeilenumbruch einfügen in die Console

    • BugFix
    • 10. Juni 2015 um 13:16
    Zitat von AutoMit

    Wie heißt die Variable mit der Zeilennummer, wenn man eine .au3 Datei im SciTE-Editor ausführt?

    Habe ich schon mehrfach genannt: Makro @ScriptLineNumber

    Zitat von AutoMit

    hier geht es darum, ins Innere vom SciTE-Editor einzugreifen, da ja irgendwo die Ausgabe für die Console gescriptet sein muss .

    Das Errorhandling ist m.W. in der .exe verankert, somit kannst du da nicht eingreifen. Vielleicht solltest du dir deine Monsterpfade (bei mir ist keiner länger als 30-40 Zeichen) einfach auf kürzere Pfade linken.

  • „Koda Form Designer“ - Array, Hilfe und mehr

    • BugFix
    • 10. Juni 2015 um 12:19
    Zitat von Kanashius

    Was mich nervt ist, dass ohne speichern das F1 zum springen in die Hilfe nicht funzt...

    Du bist lustig, wenn SciTE nicht weiß, was für eine Datei du bearbeitest kann auch nicht die passende Hilfedatei aufgerufen werden. SciTE ist kein "ausschliesslich-AutoIt-Editor".

  • ConsoleWrite (Zeilennummer) und nach langem Pfad Zeilenumbruch einfügen in die Console

    • BugFix
    • 10. Juni 2015 um 12:13
    AutoIt
    ConsoleWrite('Zeilennummer = ' & @ScriptLineNumber & @CRLF)
    
    
    ; einfügen Umbruch
    ConsoleWrite($Ausgabe_Teil1 & @CRLF & $Ausgabe_Teil2 & @CRLF)

    Ach, du willst die automatischen SciTE-Ausgaben ändern - dann musst du schon die Funktionen in SciTE anpassen oder dir eigene Errorhandler schreiben.

  • Welche #include - Dateien sind notwendig

    • BugFix
    • 10. Juni 2015 um 10:25
    Zitat von Tweaky

    Dieser erkennt z. B. die oben angesprochenen includes in den includes.

    Nun, das ist aber kein Merkmal besonderer Güte, da es völlig wurscht ist, wenn man Includes einbindet, die ihrerseits von Includes bereits eingebunden werden. Dort wird überall #include-once genutz und somit zusätzlicher Overhead vermieden.
    Ich habe ja mal einen IncludeManager in Lua geschrieben. Das Problem Include-in-Include läßt sich sowieso nicht sauber auflösen, weil es nicht DIE Minimal-Include-Lösung gibt. Dadurch das verschiedene Includes innerhalb anderer Includes mehrfach auftauchen und diese wiederum andere Includes einbinden können beißt man sich beim rekursiven parsen der Dateien tatsächlich in den eigenen Hintern ;). Man muß den Includes eine Wertigkeit zuweisen um da eine Struktur zu bekommen.
    Ich habe das Programm allerdings nicht fertig gestellt, weil es damals Änderungen gab, wo die Strukturen dauernd geändert wurden.

  • „Koda Form Designer“ - Array, Hilfe und mehr

    • BugFix
    • 10. Juni 2015 um 09:37
    Zitat von x0r

    hat er vermutlich das Script nicht gespeichert..

    Deswegen mein Hinweis, dass man vor Beginn der ersten Codezeile das Skript speichern sollte. Sonst steht einem ja keine Funktionalität des Editors zur Verfügung.

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™