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

  • Internet-Kommunikation - Nervige PopUp-Fenster

    • BugFix
    • 2. Juni 2022 um 10:40
    Zitat von Moombas

    Ggf. wäre die Frage auch: Warum immer noch XP?

    Ich denke, das kann auch ich beantworten.

    Bei vielen Anwendern (vor allem im medizinischen Bereich) sind noch XP-Rechner im Einsatz, die dort seit inzwischen Jahrzehnten genau das tun, was sie sollen: Eine bestimmte Software ausführen. Oft existiert der Softwarehersteller nicht mehr oder das Produkt wird in der Form nicht mehr supported. Die Nutzerlizenz ist über einen Hardware-Dongle gegeben, der ausschließlich unter XP funktioniert.

    Natürlich bieten die Softwarehäuser an, eine weiterentwickelte Software auf neuestem OS und toller Hardware zu installieren. Dem Zeitgeist entsprechend natürlich im Abo! Man will ja seine Kunden ordentlich schröpfen und es ist ja auch absolut nicht hinnehmbar, dass vor zig Jahren entwickelte Software so gut ist, dass sie heute noch läuft. Schließlich sind die Investitionen dafür beim Kunden lääängst abgeschrieben und es wird Zeit Kosten zu generieren, um nicht zu viel Steuern zu zahlen (und nebenbei die Softwarehäuser fett zu machen). <X

    So ähnlich wird es wohl sein.

    Windows XP mit SP3 ist auch heute noch eines der stabilsten Windows-Systeme. Natürlich ist in sicherheitsrelevanter Umgebung ein Einsatz nicht mehr machbar. Wer aber z.B. sinnvoller Weise seine Produktiv-PC vom Internet fernhält (Intranet), kann auch weiterhin solch alte Systeme nutzen. Bei uns in der Firma läuft z.B. noch Windows 2000 Server. Und kein User kann von seinem PC ins Internet, das ist einfach nur traumhaftes Arbeiten. ;)

  • Nimble oder nim c

    • BugFix
    • 2. Juni 2022 um 07:30
    Zitat

    Also ist es eine Möglichkeit die man machen kann aber ihrer Meinung nach überflüssig ist?

    Erst mal: Im Forum ist das Du üblich. ;)Wenn man eine identische Struktur in allen Projekten wünscht, ist die Init-Variante sinnvoll. Für professionelles Arbeiten würde ich es wohl auch nutzen.

    Für uns Hobby-Coder ist wohl der minimalistische Weg üblich: Nur das, was muss.

    Grundsätzlich sollte man den Weg wählen, mit dem man sich am Wohlsten fühlt. Es "richtig" zu machen ist nur dort sinnvoll, wo eindeutige Regeln existieren. (z. B. in Python, wo man gesteinigt wird, wenn eine Skriptzeile länger als 80 Zeichen ist. 8o)

    Sich nach den gängigen Konventionen zu richten ist sicher nicht verkehrt. Ich lege aber das Hauptaugenmerk auf die Lesbarkeit des Skripts. So verzichte ich auch mal auf den Typpräfix bei Variablennamen, wenn durch den Kontext eindeutig klar ist, welchem Zweck die Variable dient.

    EDIT:

    Oder noch mal klar auf den Punkt gebracht: Wenn Du selbst packages erstellen möchtest um diese zu veröffentlichen, dann ist Nimble das Werkzeug Deiner Wahl. Im normalen Alltag verwendet man Nimble, um packages zu installieren.

  • Nimble oder nim c

    • BugFix
    • 1. Juni 2022 um 22:46

    Man kann natürlich diese automatische Projektverzeichniserstellung verwenden, ich bin kein Freund davon, ist zuviel unnützes Zeugs bei.

    Ich lege einen Ordner an, erstelle darin meine *.nim und bearbeite diese im Editor (VSCodium). Ggf. erforderliche Sourcen, die ich mit ausliefern will, landen im selben Ordner.

  • Kommentare aus der Dateiliste auslesen

    • BugFix
    • 1. Juni 2022 um 14:04

    Erweiterte Dateieigenschaften kannst Du so abfragen:

    AutoIt
    Local $sDir = "C:\Users\Public\Pictures\Sample Pictures"
    Local $sFile = "Desert.jpg"
    
    With ObjCreate("Shell.Application").Namespace($sDir)
        For $i = 0 To 200
            ConsoleWrite(  StringFormat('%-40s', .GetDetailsOf(.Items, $i)))
            ConsoleWrite( .GetDetailsOf(.Items.Item($sFile), $i) & @CRLF)
        Next
    EndWith

    Mit Funktion gehts besser:

    AutoIt
    #include <Array.au3>
    
    Local $File = "C:\Users\Public\Pictures\Sample Pictures\Desert.jpg"
    Local $sProperty = 'Name'  ; 'Kommentare' / 'comments' --> ID=24
    
    ;~ ConsoleWrite(_GetExProperty($File, $sProperty) & @CRLF)
    Local $aProp = _GetExProperty($File)
    _ArrayDisplay($aProp)
    
    ; #FUNCTION# =======================================================================================
    ; Name ..........: GetExProperty
    ; Description ...: Get extended file information of one/all properties
    ; Parameter(s)...: $_sFile       The file path
    ; ....[optional].: $_NameOrID    The name or ID of the property. (Default: -1, get all prop-val-pairs as 2D-array)
    ; ....[optional].: $_iHoleCount  The number of unused consecutive ID values. (Default: 5) Currently unused: ID 287-290
    ; Return values .: Success       Value of the asked property or 2D-array with all property-value-pairs,
    ; ...............:               [0][0]=count of used properties - NOT count of array item!, [[ ID, property-name, value ]]
    ; ...............: Failure       Null    @error=1    passed file does'nt exist
    ; ...............:               Null    @error=2    passed property ID or name does'nt exist
    ; Author ........: BugFix
    ; ==================================================================================================
    Func _GetExProperty($_sFile, $_NameOrID=-1, $_iHoleCount=5)
        If not FileExists($_sFile) Then Return SetError(1,0,Null)
        Local $sDir = StringLeft($_sFile, StringInStr($_sFile, '\', 0, -1) -1)
        Local $sFileName = StringTrimLeft($_sFile, StringLen($sDir) +1)
        Local $aOut[200][3] = [[0]], $sProp, $vVal, $iSkip, $iUnused = 0
        With ObjCreate("Shell.Application").Namespace($sDir)
            If IsNumber($_NameOrID) And $_NameOrID > -1 Then
                $sProp = .GetDetailsOf(.Items, $_NameOrID)
                Return SetError(($sProp = '' ? 2 : 0),0, ($sProp = '' ? Null : .GetDetailsOf(.Items.Item($sFileName), $_NameOrID)))
            EndIf
            Do
                $sProp = .GetDetailsOf(.Items, $aOut[0][0])
                $iSkip = $sProp = '' ? $iSkip +1 : 0
                $vVal = .GetDetailsOf(.Items.Item($sFileName), $aOut[0][0])
                If $_NameOrID = -1 Then
                    $aOut[0][0] += 1
                    If $aOut[0][0] = UBound($aOut) Then ReDim $aOut[$aOut[0][0]+100][3]
                    $aOut[$aOut[0][0]][0] = $aOut[0][0] -1 ; ID
                    $aOut[$aOut[0][0]][1] = $iSkip = 0 ? $sProp : '[not used]'
                    $iUnused += ($iSkip = 0 ? 0 : 1)
                    $aOut[$aOut[0][0]][2] = $vVal
                Else
                    If $sProp = $_NameOrID Then Return $vVal
                EndIf
            Until $iSkip = $_iHoleCount
            If $_NameOrID = -1 Then
                ReDim $aOut[$aOut[0][0]+1-$_iHoleCount][3]
                $aOut[0][0] -= $iUnused ; also includes $_iHoleCount (Termination condition of the Do-Until loop)
                Return $aOut
            Else
                Return SetError(2,0,Null)
            EndIf
        EndWith
    EndFunc  ;==>_GetExProperty
    Alles anzeigen

    EDIT

    Hier mal eine (nicht komplette) Liste der Eigenschaften. Das ändert sich aber recht schnell. Vor einigen Jahren war da bei ca. 90 Schluß. Aktuell werden mir 287 Eigenschaften angezeigt.

    Code
    Name                                  
    Größe                                 
    Elementtyp                            
    Änderungsdatum                        
    Erstelldatum                          
    Letzter Zugriff                       
    Attribute                             
    Offlinestatus                         
    Offline verfügbar                     
    Erkannter Typ                         
    Besitzer                              
    Art                                   
    Aufnahmedatum                         
    Mitwirkende Interpreten               
    Album                                 
    Jahr                                  
    Genre                                 
    Dirigenten                            
    Markierungen                          
    Bewertung                             
    Autoren                               
    Titel                                 
    Thema                                 
    Kategorien                            
    Kommentare                            
    Copyright                             
    Titelnummer                           
    Länge                                 
    Bitrate                               
    Geschützt                             
    Kameramodell                          
    Abmessungen                           
    Kamerahersteller                      
    Firma                                 
    Dateibeschreibung                     
    Programmname                          
    Dauer                                 
    Ist online                            
    Periodisch wiederkehrend              
    Ort                                   
    Adressen der optionalen Teilnehmer    
    Optionale Teilnehmer                  
    Organisatoradresse                    
    Organisatorname                       
    Erinnerungszeit                       
    Adressen der erforderlichen Teilnehmer
    Erforderliche Teilnehmer              
    Ressourcen                            
    Besprechungsstatus                    
    Status frei/besetzt                   
    Gesamtgröße                            
    Kontoname                             
    Aufgabenstatus                        
    Computer                              
    Jahrestag                             
    Name des Assistenten                  
    Telefonnummer des Assistenten         
    Geburtstag                            
    Geschäftsadresse                      
    Ort (geschäftlich)                    
    Land/Region (geschäftlich)            
    Postfach (geschäftlich)               
    Postleitzahl (geschäftlich)           
    Bundesland/Kanton (geschäftlich)      
    Straße (geschäftlich)                 
    Fax (geschäftlich)                    
    Homepage (geschäftlich)               
    Rufnummer (geschäftlich)              
    Rückrufnummer                         
    Autotelefon                           
    Kinder                                
    Zentrale Firmenrufnummer              
    Abteilung                             
    E-Mail-Adresse                        
    E-Mail2                               
    E-Mail3                               
    E-Mail-Liste                          
    E-Mail-Anzeigename                    
    Speichern unter                       
    Vorname                               
    Vollständiger Name                    
    Geschlecht                            
    Gegebener Name                        
    Hobbies                               
    Privatadresse                         
    Ort (privat)                          
    Land/Region (privat)                  
    Postfach (privat)                     
    Postleitzahl (privat)                 
    Bundesland/Kanton (privat)            
    Straße (privat)                       
    Fax (privat)                          
    Rufnummer (privat)                    
    IM-Adressen                           
    Initialen                             
    Position                              
    Bezeichnung                           
    Nachname                              
    Adresse                               
    Zweiter Vorname                       
    Mobiltelefon                          
    Spitzname                             
    Bürostandort                          
    Weitere Adresse                       
    Andere Stadt                          
    Anderes Land/Region                   
    Anderes Postfach                      
    Andere Postleitzahl                   
    Anderes Bundesland bzw. Kanton        
    Andere Straße                         
    Pager                                 
    Persönlicher Titel                    
    Stadt                                 
    Land/Region                           
    Postfach                              
    Postleitzahl                          
    Bundesland/Kanton                     
    Straße                                
    Primäre E-Mail                        
    Primäre Telefonnummer                 
    Beruf                                 
    Ehepartner/Partner                    
    Suffix                                
    TTY/TTD-Telefon                       
    Telex                                 
    Webseite                              
    Inhaltstatus                          
    Inhaltstyp                            
    Erfassungsdatum                       
    Archivierungsdatum                    
    Vollendungsdatum                      
    Gerätekategorie                       
    Verbindung hergestellt                
    Erkennungsmethode                     
    Anzeigename                           
    Lokaler Computer                      
    Hersteller                            
    Modell                                
    Paarweise                             
    Klassifizierung                       
    Gerätestatus                          
    Clientkennung                         
    Mitwirkende                           
    Inhalt erstellt                       
    Zuletzt gedruckt                      
    Letzte Speicherung                    
    Hauptabteilung                        
    Dokument-ID                           
    Seiten                                
    Folien                                
    Gesamtbearbeitungszeit                
    Wortanzahl                            
    Fällig am                             
    Enddatum                              
    Dateianzahl                           
    Dateiname                             
    Dateiversion                          
    Kennzeichnungsfarbe                   
    Kennzeichnungsstatus                  
    Freier Speicherplatz                  
    Bittiefe                              
    Horizontale Auflösung                 
    Breite                                
    Vertikale Auflösung                   
    Höhe                                  
    Wichtigkeit                           
    Anlage?                               
    Ist gelöscht                          
    Verschlüsselungsstatus                
    Kennzeichnung vorhanden               
    Wurde beendet                         
    Unvollständig                         
    Lesestatus                            
    Freigegeben                           
    Ersteller                             
    Datum                                 
    Ordnername                            
    Ordnerpfad                            
    Ordner                                
    Teilnehmer                            
    Pfad                                  
    Nach Ort                              
    Typ                                   
    Kontaktnamen                          
    Eintragstyp                           
    Sprache                               
    Letzter Besuch                        
    Beschreibung                          
    Verknüpfungsstatus                    
    Verknüpfungsziel                      
    URL                                   
    Medium erstellt                       
    Veröffentlichungsdatum                
    Codiert durch                         
    Produzenten                           
    Herausgeber                           
    Untertitel                            
    Benutzerweb-URL                       
    Texter                                
    Anlagen                               
    BCC-Adressen                          
    Alles anzeigen
  • Hilfe - Ersatz: Linksammlung Doku Nim-Module

    • BugFix
    • 1. Juni 2022 um 13:29

    Da es mir zu mühsam war immer die ganze Doku durchzuwühlen um mal schnell eine Funktionsbeschreibung zu bekommen, habe ich eine Linksammlung zum direkten Anspringen der Modul-Doku erstellt. Gegliedert nach Bereichen als html-Datei. Zum Download als zip.

    EDIT: Grr, das ist schon nicht mehr aktuell. 13 Links sind tot. Da werde ich nochmal aktualisieren müssen.

    EDIT #2: Aktualisiert

    Nim_Modules_Docs.png

    Dateien

    Nim_Modules.zip 2,72 kB – 386 Downloads
  • Kommentare aus der Dateiliste auslesen

    • BugFix
    • 1. Juni 2022 um 09:54

    Ich verstehe nur Bahnhof.

    Was für Dateien?

    Was für Kommentare?

    Woran sind die Kommentare erkennbar?

    :?::?::?:

  • [offen] Kompilieren für x86 ?

    • BugFix
    • 31. Mai 2022 um 12:30
    Zitat von BugFix

    Ich habe jetzt mal gesucht, Ursache ist der Linker, der hier die Namen vergibt. Aber ich habe noch keine Möglichkeit gefunden das zu ändern.

    Ich habe mich mal wieder mit dem Thema beschäftigt.

    Die Namenskonvention sieht vor, dass standardmäßig als Suffix "@" und die Größe der übergeben Parameter an den Funktionsnamen angehängt wird. In C/C++ kann man das dann mit einem .DEF -File umrouten auf den gewünschten Exportnamen. Bei den Nim Pragmas habe ich da aber keine Einstellung für gefunden.

    Also bin ich mal von der anderen Seite rangegangen: Automatische Namenskonvertierung beim Aufruf.

    Dazu wird die Dll-Funktion mit dem intern verwendeten Namen aufgerufen. Bei x64 ist alles schick. Bei x86 bekomme ich den Fehler "Dll Funktion nicht gefunden". Dann frage ich die Größe der übergebenen Parameter ab und bilde somit den Suffix für den Funktionsnamen und rufe diese erneut auf.

    Aufruf, Parameterreihenfolge und Return sind an der Original DllCall-Funktion orientiert. Unterschied: Bei einem Fehler gebe ich als Returnwert "Null" zurück.

    Die Funktion kann 6 Parameter übernehmen. Kann man bei Bedarf auch anpassen.

    AutoIt
    $sDll = @ScriptDir & "\math32.dll"
    ConsoleWrite(_CallDLL($sDll, 'int', 'addiere', 'int', 25, 'int', 125)[0] & @CRLF)
    
    Func _CallDll($_vDll, $_RetType, $_sFunc, $_type1=Null, $_param1=Null, $_type2=Null, $_param2=Null, _
                  $_type3=Null, $_param3=Null, $_type4=Null, $_param4=Null, $_type5=Null, $_param5=Null, $_type6=Null, $_param6=Null)
        Local $aType[] = [$_type1,$_type2,$_type3,$_type4,$_type5,$_type6]
        Local $countParam = 0, $sStruct = '', $aRes, $error, $tParam
        For $i = 0 To UBound($aType) -1
            If $aType[$i] <> Null Then
                $countParam += 1
                $sStruct &= $aType[$i] & ';'
            Else
                ExitLoop
            EndIf
        Next
        Switch $countParam
            Case 0
                $aRes = DllCall($_vDll, $_RetType, $_sFunc)
            Case 1
                $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1)
            Case 2
                $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2)
            Case 3
                $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3)
            Case 4
                $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3, $_type4, $_param4)
            Case 5
                $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3, $_type4, $_param4, $_type5, $_param5)
            Case 6
                $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3, $_type4, $_param4, $_type5, $_param5, $_type6, $_param6)
        EndSwitch
        $error = @error
        If Not $error Then Return $aRes
        If $error = 3 Then  ; "function" not found in the DLL file
            $tParam = DllStructCreate($sStruct)
            $_sFunc &= '@' & String(DllStructGetSize($tParam))
            Switch $countParam
                Case 0
                    $aRes = DllCall($_vDll, $_RetType, $_sFunc)
                Case 1
                    $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1)
                Case 2
                    $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2)
                Case 3
                    $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3)
                Case 4
                    $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3, $_type4, $_param4)
                Case 5
                    $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3, $_type4, $_param4, $_type5, $_param5)
                Case 6
                    $aRes = DllCall($_vDll, $_RetType, $_sFunc, $_type1, $_param1, $_type2, $_param2, $_type3, $_param3, $_type4, $_param4, $_type5, $_param5, $_type6, $_param6)
            EndSwitch
            $error = @error
            If Not $error Then Return $aRes
            Return SetError($error,0,Null)
        Else
            Return SetError($error,0,Null)
        EndIf
    EndFunc
    Alles anzeigen
  • Internet-Kommunikation - Nervige PopUp-Fenster

    • BugFix
    • 30. Mai 2022 um 10:35
    Zitat von PSblnkd

    Trotz Sperre von PopUp-Fenstern im FF poppen beim Laden vieler Webseiten neuerdings immer mehr dieser nervigen Cookie-Einverständniserklärung-Fenster auf.

    Das ist eines dieser typischen Beispiele von "Gut gedacht - Scheiße gemacht". Es soll ja den Datenschutz erhöhen und den Anwender vor sinnlosen Cookies schützen.

    Die richtige Umsetzung hätte also sein sollen:

    - Seite wird geladen nur mit essentiellen Cookies

    - Eine Schaltfläche (KEIN Popup) bietet das Speichern zusätzlicher Cookies an.

    Sowas verstehe ich unter Datenschutz!

    Leider ist die übliche Praxis in der deutlichen Mehrzahl der Webseiten:

    - Seite wird mit Popup geladen

    - ALLE Cookies sind aktiviert - Standard-Button ist "Erlauben"

    - jetzt muss ich händisch jedes Cookie einzeln deaktivieren und dann "Einstellungen speichern" (nur vereinzelt wird "Alles Ablehnen" angeboten).

    Diese Cookie-Zustimmung ist vom Gesetzgeber vorgeschrieben, nicht die Art der Umsetzung. Darum wählen die Anbieter selbstverständlich das nervige Popup, damit der genervte Anwender das schnell weghaben will und mit dem Default-Button allen Cookies zustimmt. Ein Schelm, wer Böses dabei denkt.

    Um auf den Kern deiner Frage zurückzukommen:

    Einen derartigen Popup-Filter zu gestalten dürfte recht schwierig werden, da diese ja keiner Normierung unterliegen.

    Vielleicht über einen Filter, der auf eingetragene Inhalte zurückgreift. Ähnlich wie ein Spam-Filter, man kann händisch die Inhalte hinzufügen.

  • Zeichensatz-Probleme beim Schreiben in MariaDB

    • BugFix
    • 26. Mai 2022 um 14:23

    Guck die Daten im Array NICHT mit ArrayDisplay an, sondern schreibe sie in einer Schleife in die Konsole - dann passt es.

  • LuaRunner

    • BugFix
    • 21. Mai 2022 um 07:32
    Zitat von Bitnugger

    Strg+Alt+L funktioniert zumindest bei mir nicht...

    Strg+.. war auch falsch. :Face:

    Im Original hatte ich alles in englisch geschrieben und hierfür der Einfachheit halber en bloc durch den Übersetzer gejagt. Das hatte ich dann beim Korrigieren übersehen.

    Ja, das ist immer ein Gefrickel noch nutzbare Shortcuts zu finden.

    Ich habe das in meiner selbst erstellten LuaUser.properties definiert, die ich ziemlich zum Schluß lade.

    Kann sein, dass in der Reihenfolge der Properties das später von dir ungewollt überschrieben wird.

  • LuaRunner

    • BugFix
    • 20. Mai 2022 um 17:35

    Ich wollte zusätzlich zum SciTE-internen Lua gerne alternativ Lua-Code /-Dateien mit einem externen Lua ausführen. Zum Aufruf aus SciTE ließe sich auch ein command-Aufruf ohne den Runner konfigurieren, so ist es aber etwas flexibler.

    Der LuaRunner kann auch aus AutoIt-Skripten heraus aufgerufen und somit z.B. in Projekten verwendet werden.

    Eine Bsp-Datei ist mit angehängt.

    Code
        ÜBER
            1.
            Ausführen von Lua-Skripten oder einzelnen Lua-Befehlen aus SciTE unter Verwendung einer externen Lua-Installation.
            Die Rückgabewerte werden auf der SciTE-Konsole ausgegeben. Vor der Ausführung wird eine Syntaxprüfung durchgeführt.
            Lua-Dateien können in SciTE auf die gleiche Weise wie AutoIt-Dateien mit Parametern aufgerufen werden.
            Es können also bis zu 4 Parameter zum Testen in SciTE übergeben werden.
    
            2.
            Ausführen von Lua-Skripten oder einzelnen Lua-Befehlen aus einem Au3-Skript.
            Die Rückgabewerte werden in die Datei ausgegeben: @ScriptDir & '\LuaRunner_Result.txt'.
            Vor der Ausführung wird eine Syntaxprüfung durchgeführt.
            Die Anzahl der Parameter, die an eine Lua-Datei übergeben werden können, ist nur durch Lua selbst begrenzt.
            Anwendung:
            Füge LuaRunner.exe und den Lua-Ordner zum Autot-Projektverzeichnis hinzu.
            Führe das Skript in au3 mit einem Befehl wie in BEISPIEL aus.
    
            LuaRunner erkennt, ob es aus SciTE aufgerufen wurde oder nicht. Es wird also die richtige Ausgabeform gewählt.
    
        VORAUSSETZUNGEN
            Ein Ordner mit allen Lua-Ordnern und Dateien (\bin\*, \doc\*, \include\*)
            Falls irgendwo gespeichert, weise diesen Pfad dem "Global $pathLua" zu.
            Oder speichere ihn in demselben Verzeichnis wie "LuaRunner.exe".
    
            Füge den User.properties hinzu (Befehlsnummer, Pfad und Verknüpfung müssen angepasst werden.):
                # 49 Lua-Datei mit externem Lua ausführen
                command.name.49.$(file.patterns.lua)=Lua-Aufruf mit Parametern
                command.49.$(file.patterns.lua)="C:\CODE\AutoIt\TOOLS\LuaRunner.exe" "-f" "$(FilePath)" $(1) $(2) $(3) $(4)
                command.mode.49.$(file.patterns.lua)=subsystem:0,savebefore:no
                command.shortcut.49.$(file.patterns.lua)=Ctrl+Alt+L
    
        AUFRUF
            LuaRunner.exe -f File.lua [P1] [P2] ... [Pn]
            LuaRunner.exe -l "Lua-Skriptzeile"
    
        PARAMETER
            -f                 Eine Lua-Datei wird ausgeführt.
            -fs                Eine Lua-Datei wird im stillen Modus ausgeführt. Es werden nur Fehlermeldungen und das Ergebnis angezeigt.
            File.lua           Die Datei, die ausgeführt werden soll.
            [P1] [P2] ... [Pn] optional: Parameter, die an die Datei File.lua übergeben werden
            -l                 Eine Lua-Skriptzeile wird ausgeführt
            -ls                Eine Lua-Skriptzeile wird im stillen Modus ausgeführt. Es werden nur Fehlermeldungen und das Ergebnis angezeigt.
            "Lua-Skriptzeile"  Die Lua-Skriptzeile
    
        BEISPIEL
            LuaRunner.exe -f "C:\Code\Lua\example.lua" "some\file\path.txt" "2nd-param"
            LuaRunner.exe -l "print('Hallo Welt!')"
    
        HINWEIS
            Um beim Aufruf einer Lua-Datei auf die übergebenen Parameter zuzugreifen, wird im Lua-Skript das Table "arg" verwendet.
            Im Gegensatz zu normalen Lua-Table hat dieses einen Wert an Index 0: den Pfad der Lua-Datei. Für jeden übergebenen Parameter gibt es einen weiteren Eintrag.
    Alles anzeigen

    Dateien

    LuaRunner.au3 8,15 kB – 210 Downloads LuaRunnerExample.au3 1,83 kB – 220 Downloads lua5.4.4.zip 406,06 kB – 212 Downloads
  • MinGW: Build - Versionsnummer wird nicht gesetzt?

    • BugFix
    • 19. Mai 2022 um 15:57

    Ich habe mir mit MinGW Lua aus den Binaries erstellt.

    Muss ich einen besonderen Parameter verwenden, damit in der exe die Versionsnummer enthalten ist? Wenn ich diese jetzt abfrage erhalte ich nur "0.0.0.0".

    In der Source ist natürlich die Version enthalten.

    Code: lua.h
    #define LUA_VERSION_MAJOR    "5"
    #define LUA_VERSION_MINOR    "4"
    #define LUA_VERSION_RELEASE  "4"

    EDIT:

    Meine build.cmd

    Spoiler anzeigen
    Code
    @echo off
     :: ========================
     :: file build.cmd
     :: ========================
     setlocal
     :: you may change the following variable’s value
     :: to suit the downloaded version
     set work_dir=%~dp0
     :: Removes trailing backslash
     :: to enhance readability in the following steps
     set work_dir=%work_dir:~0,-1%
     set lua_install_dir=%work_dir%\lua
     set compiler_bin_dir=C:\MinGW\bin
     set lua_build_dir=%work_dir%
     set path=%compiler_bin_dir%;%path%
     cd /D %work_dir%
     mingw32-make PLAT=mingw
     echo.
     echo **** COMPILATION TERMINATED ****
     echo.
     echo **** BUILDING BINARY DISTRIBUTION ****
     echo.
     :: create a clean “binary” installation
     mkdir %lua_install_dir%
     mkdir %lua_install_dir%\doc
     mkdir %lua_install_dir%\bin
     mkdir %lua_install_dir%\include
     copy %lua_build_dir%\doc\*.* %lua_install_dir%\doc\*.*
     copy %lua_build_dir%\src\*.exe %lua_install_dir%\bin\*.*
     copy %lua_build_dir%\src\*.dll %lua_install_dir%\bin\*.*
     copy %lua_build_dir%\src\luaconf.h %lua_install_dir%\include\*.*
     copy %lua_build_dir%\src\lua.h %lua_install_dir%\include\*.*
     copy %lua_build_dir%\src\lualib.h %lua_install_dir%\include\*.*
     copy %lua_build_dir%\src\lauxlib.h %lua_install_dir%\include\*.*
     copy %lua_build_dir%\src\lua.hpp %lua_install_dir%\include\*.*
     echo.
     echo **** BINARY DISTRIBUTION BUILT ****
     echo.
     %lua_install_dir%\bin\lua.exe -e”print([[Hello!]],[[Simple Lua test successful!!!]])”
     echo.
     pause
    Alles anzeigen
  • GUI flackert

    • BugFix
    • 18. Mai 2022 um 19:25
    Zitat von Tweaky

    Startet das Skript und haltet dann die linke Maustaste gedrückt.

    Dann zieht ihr ein Fenster auf und bewegt die Maus etwas schneller.

    Nun flackert die rote Fläche teilweise.

    Ich habe nicht die neue Version installiert.

    Aber probiere mal, ob das auch mit dem Color-Picker aus meinem Farbmixer passiert. Da wird nur die Maus bewegt, ohne gedrückt halten. - Könnte ein Problem sein.

    Beitrag

    Colormixer

    Colormixer gibt es sehr viele. Aber meist fehlt irgendetwas, worauf man Wert legt. Ich hatte ja mal eine Farbtabelle, die auch einen Colormixer enthielt. Darauf aufbauend entstand dieses Skript.
    Funktionalität:
    - Programm kann mit einer Start-Farbe als Parameter aufgerufen werden
    - Wenn Kommandozeilenaufruf erfolgte, wird die gemixte Farbe auch in die Konsole zurückgegeben
    - Wahlweise Vollkreis-Gradient oder 3-Sektor-Gradient um aus diversen Farbverläufen auszuwählen (Mauszeiger über Gradient…
    BugFix
    26. Dezember 2015 um 13:40
  • Color - Output (ANSI Escape Sequenzen): Ursache gefunden - leider keine Lösung

    • BugFix
    • 18. Mai 2022 um 11:56

    Ich habe mir jetzt nochmal die aktuelle SciTE4AutoIt

    Code
    32-bit
    Version 4.4.6
    Mar 16 2021 13:51:55
    by Neil Hodgson.
    Updated by Jos

    als portable geladen. Das Lua Skript zeigt darin die Farben tadellos, mit AutoIt tut sich nix.

    Dann habe ich keine au3*.properties geladen, nur die Global (die ja auch bei Lua-Skripten wirksam ist) und die User.properties, die ja ebenfalls bei den Lua-Skripten geladen werden. Global und User haben somit keinen Einfluß auf die Unterdrückung der Farbausgabe.

    Ursache ist das verwendete Subsystem innerhalb von SciTE:

    - AutoIt-Skripte verwenden 0 - windows

    - Lua-Skripte verwenden 3 - lua / director

    Und da Windows von Haus aus diese Esc-Sequenzen nicht erkennt (außer in der Terminal-Umgebung), werden diese als reiner Text behandelt. :rolleyes:

  • Color - Output (ANSI Escape Sequenzen): Ursache gefunden - leider keine Lösung

    • BugFix
    • 17. Mai 2022 um 14:39
    Zitat von Musashi

    Zusätzlich erhalte ich noch den Fehler :

    Oops, Fehler bei mir (eigentlich wollte ich eure Aufmerksamkeit testen :P )

    Zitat von autoBert

    Mein Fazit: AutoIt ist im Sinne des nicht mehr manipulierbaren (zumindes für mich) Status angekommen. Kassensysteme, Bankomaten usw. können mit OG Einschränkung nicht gehackt werden. DieExpertenmeinung von VT-Total wurde eingeholt.


    Der Mich schützende MS-Defender hat keine Bedenken, ich bis auf die OG genannten Einschrängungen auch nicht, deshalb Bitte an BugFix , Oscar , Gun-Food, etc .... nach PU only verschieben. Ein Ausschluss der BedenkenTragenden TopFour, kann (zumindest ich) nicht erzwingen.

    Ich verstehe nicht, was das mit meinem Post zu tun hat - bist du im falschen Thread gelandet?

  • Color - Output (ANSI Escape Sequenzen): Ursache gefunden - leider keine Lösung

    • BugFix
    • 17. Mai 2022 um 07:29
    Zitat von UEZ

    und das Skript test_color_out.au3 laufen lassen

    OK, hatte ich befürchtet - die Properties in SciTE4AutoIt blockieren das an irgendeiner Stelle. Oder in dieser SciTE Variante ist es nicht enthalten. :(

  • Color - Output (ANSI Escape Sequenzen): Ursache gefunden - leider keine Lösung

    • BugFix
    • 16. Mai 2022 um 17:27

    In Terminals (seit Windows 10 auch bei M$) war es schon immer möglich Text mit Escape-Sequenzen zu formatieren.

    In stark begrenztem Umfang ist das auch im SciTE-Output möglich. Es lassen sich 7 Textfarben (standard oder fett) auf einer etwas gewöhnungsbedürftigen Hintergrundfarbe setzen. Background ist nicht änderbar.

    Voraussetzung: In der SciTEUser.properties der Eintrag lexer.errorlist.escape.sequences=1

    Aber eigene Settings (k.A. welche) können den Erfolg verhindern. Ich habe es nur in einer nackten Installation von SciTE hinbekommen. Deshalb testet bitte mal in eurem SciTE.

    EDIT: Fehler im AutoIt-Skript korrigiert.

    AutoIt: test_color_out.au3
    Global Const $RED        = '\27[31m'
    Global Const $REDBOLD    = '\27[31;1m'
    Global Const $GREEN      = '\27[32m'
    Global Const $GREENBOLD  = '\27[32;1m'
    Global Const $YELLOW     = '\27[33m'
    Global Const $YELLOWBOLD = '\27[33;1m'
    Global Const $BLUE       = '\27[34m'
    Global Const $BLUEBOLD   = '\27[34;1m'
    Global Const $PINK       = '\27[35m'
    Global Const $PINKBOLD   = '\27[35;1m'
    Global Const $CYAN       = '\27[36m'
    Global Const $CYANBOLD   = '\27[36;1m'
    Global Const $WHITE      = '\27[37m'
    Global Const $WHITEBOLD  = '\27[37;1m'
    Global Const $DEF        = '\27[0m'
    
    ConsoleWrite($RED & 'List ' & $CYAN & 'of ' & $BLUEBOLD & 'colors' & $PINKBOLD & '!' & $DEF & @CRLF)
    
    Global $aColor[][2] = [[$RED,'RED'],[$REDBOLD,'REDBOLD'],[$GREEN,'GREEN'],[$GREENBOLD,'GREENBOLD'],[$YELLOW,'YELLOW'],[$YELLOWBOLD,'YELLOWBOLD'], _
    [$BLUE,'BLUE'],[$BLUEBOLD,'BLUEBOLD'],[$PINK,'PINK'],[$PINKBOLD,'PINKBOLD'],[$CYAN,'CYAN'],[$CYANBOLD,'CYANBOLD'],[$WHITE,'WHITE'],[$WHITEBOLD,'WHITEBOLD']]
    
    For $i = 0 To Ubound($aColor) -1
        ConsoleWrite($aColor[$i][0] & $aColor[$i][1] & $DEF & @CRLF)
    Next
    Alles anzeigen
    Lua
    fg = {
    red='\27[31m',
    redbold='\27[31;1m',
    green='\27[32m',
    greenbold='\27[32;1m',
    yellow='\27[33m',
    yellowbold='\27[33;1m',
    blue='\27[34m',
    bluebold='\27[34;1m',
    pink='\27[35m',
    pinkbold='\27[35;1m',
    cyan='\27[36m',
    cyanbold='\27[36;1m',
    white='\27[37m',
    whitebold='\27[37;1m',
    def='\27[0m'}
    
    
    print('\n'..fg.red..' List '..fg.cyan..'of '..fg.bluebold..'colors'..fg.pinkbold..'!\n'..fg.def)
    
    
    fg_idx = {}
    for color, seq in pairs (fg) do
        table.insert(fg_idx, {color, seq})
    end
    
    
    table.sort(fg_idx, function(a,b) return a[2] < b[2] end)
    for i=1, #fg_idx do
        if tostring(fg_idx[i][1]) ~= 'def' then print(' '..fg_idx[i][2]..tostring(fg_idx[i][1]):upper()..fg.def) end
    end
    Alles anzeigen

    Wenn es klappt, sieht es so aus:


    EDIT:

    Ursache ist das verwendete Subsystem innerhalb von SciTE:

    - AutoIt-Skripte verwenden 0 - windows

    - Lua-Skripte verwenden 3 - lua / director

    Und da Windows von Haus aus diese Esc-Sequenzen nicht erkennt (außer in der Terminal-Umgebung), werden diese als reiner Text behandelt.

  • Guis Buggen in einander

    • BugFix
    • 15. Mai 2022 um 08:53
    Zitat von autoBert

    das Beispiel aufzuHübschen

    ;) Was stellst du dir darunter vor?

    Es ist ein Bsp. zu einer konkreten Konstellation, somit nicht direkt für eine allgemeingültige UDF nutzbar.

    Aber was am Inhalt verbessert werden kann:

    - Array-Funktionen sind nicht nötig. Die Anzahl der Elemente sind bekannt, das Array kann somit mit erforderlicher Zahl deklariert und per Indexierung belegt werden.

    - Speichern der Ctrl-Namen ist nicht erforderlich, kann bei Bedarf über die ID abgefragt werden (s. hier: GuiCtrlInfo.au3)

    - Ich würde z.B. ein gemeinsames 2D-Array für hWnd und ID führen: [[hWnd_1,ID_1], [hWnd_1,ID_2],..,[hWnd_1,ID_n],[hWnd_2,ID_1], [hWnd_2,ID_2],..,[hWnd_2,ID_n]] , aber das ist Geschmackssache

  • Robocopy

    • BugFix
    • 14. Mai 2022 um 14:03
    Zitat von Schnuffel

    Die Datenbank kannst du sicher mit DB-eigenen Mitteld "dumpen". Das sollte auch im laufenden Betrieb gehen, da diese ja "nur" gelesen wird.
    Beispiel-Ansätze:

    nbackup: https://www.firebirdsql.org/file/documenta…nbackup-backups

    gbak: https://firebirdsql.org/file/documenta…ebird-gbak.html

    Robocopy /MON läuft als Loop-Schleife in der Konsole.

    Wenn User weg, dann auch Konsole weg.

    Wenn du den /MON nutzen willst, dann als Aufgabe mit User "System" und ohne Useranmeldung.

    Alles anzeigen

    Danke, da werde ich mal probieren. :thumbup:

  • au3-2-exe

    • BugFix
    • 11. Mai 2022 um 13:18
    Zitat von Alina

    ! ! Es ist kein AutoIt auf dem PC wo die Exe erstellt werden soll. ! !

    Warum dann die EXE? Kompiliere dir irgendeine funktionslose Alibi-AutoIt.exe. Dann kannst du als Parameter jede *.au3 ausführen, sofern diese keine zusätzlichen Includes braucht.

    Zitat von AutoIt Hilfe
    Code
    Run a script using another compiled script:
    
    Compiled.exe [/ErrorStdOut] /AutoIt3ExecuteScript file [params ...]
                    Execute another AutoIt script file from a compiled AutoIt3 executable. 
    
    Compiled.exe [/ErrorStdOut] /AutoIt3ExecuteLine "command line"
                    Execute one line of code as with AutoIt3.exe above. 
    
    This means that there is no need to have a copy of AutoIt3.exe in addition to the compiled file - the interpreter stub of the compiled file will replace it.  So as long as there is at least one compiled script available, other AutoIt scripts can be run without the need to have AutoIt3.exe on the machine., either pre-installed or added via FileInstall.

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™