• Diese QRCode UDF ermöglicht es, QRCodes zu generieren und als Bild oder Ausgabe in der Konsole darzustellen.
    Sie bietet Funktionen um ein 2D-Boolean-Array des QRCodes zu erhalten, dieses als Bitmap (_GDIPlus) zu erhalten, oder direkt auf eine GraphicsContext (_GDIPlus) zu zeichnen.
    Dabei wird eine von mir mit Rust erstellte .dll genutzt, welche die "QR Code generator library (Rust)" von Project Nayuki (https://www.nayuki.io/page/qr-code-generator-library) verwendet.

    Aktuell sind folgende Funktionen in der UDF erhalten:

    Hier ist ein Beispiel, wie die UDF verwendet werden kann:


    Und ein weiteres Beispiel findet sich in der QRCodeGenerator-CLI: QRCode generator cli
    Das ist eine Konsolenanwendung mit umfangreichen Einstellungsmöglichkeiten zum generieren von QRCodes.

    Ich habe während der Entwicklung in Rust erst eine .exe statt der .dll erstellt. Die war aber langsamer (String parsing in AutoIt,...), deshalb hab ich das verworfen.
    Die in Rust entstandene .exe findet ihr aber bei den Dateien als Rust-Executable (QRCode-Wrapper-Console-Rust-Exe.zip).
    Sie kann in der Konsole mit einem Text aufgerufen werden und gibt den QRCode als 0 (weiß), 1 (schwarz), 2(neue zeile) aus.
    Mit --human wird der QRCode Menschenlesbar ausgegeben und mit --errorlvl low/medium/quartile/high kann das "error correction level" angegeben werden.
    Aber diese Anwendung hat weniger Möglichkeiten, als die vorher erwähnte QRCodeGenerator-cli und ist nur zur Vollständigkeit hier.

    Dateien:
    Die UDF mit allen benötigten Dateien: qrcode.zip
    Der Rust-Quellcode der .dll und .exe: QRCode-Dll-Exe-Rust-Src.zip
    Die Rust-Executable: QRCode-Wrapper-Console-Rust.zip

  • Hi :)
    Das war nur ein Beispiel, um die Geschwindigkeit der UDF (oft <100ms) zu zeigen.

    Für deine Frage:
    In Zeile 112: Local $sText = "Current date and time: "&@YEAR&"/"&@MON&"/"&@MDAY&" "&@HOUR&":"&@MIN&":"&@SEC&":"&@MSEC das @MSEC am Ende entfernen
    Und Zeile 133-139 Zeichnen das Viereck mit dem Sekundenzeiger
    Es gibt aber einige Variablen, die dort verwendet werden und woanders deklariert/definiert werden,...
    Sollte halt nur als Beispiel dienen, was alles möglich ist.

    Steht übrigens auch alles als Kommentar im Code: (; ==> Bottom QRCode / ; draw the white rectangle in the middle of the qrcode / ; draw the line in the rectangle / ...)

    MfG Kanashius