VBA-Code übersetzen

  • Hallo!

    Ich teste mal wieder ein wenig in AutoIt. Abeer alles aus VBA kann ich nicht übersetzen. Z.B. finde ich keinen Ersatz für "For Each" und/oder verstehe ich nicht. Auch API-Ersatz und Kommandzeilen-Anweisungen habe ich noch nicht gefunden. Wie könnte man das nach AutoIt übersetzen, und wo finde ich darüber Lesestoff? Danke!

    Gruß, René

  • ich hab aus Neugier mal deinen Code mal in chatgpt3.5 eingeben
    und gefragt ob er es mir in autoit umwandeln kann

    Ich weiß nicht ob dir das hilft der Code macht bei mir nichts, da er nur Funktionen erstellt hat.

  • ja da zeigt sich die hallos von chatgpt habe auch grad gemerkt das es eigne Funktionen Gar nicht gibt.

    Was genau soll den der Code von Anfang bis ende tun?

    evtl. können dann mehr Leute sich was darunter vorstellen und bessere bespiele als ich bringen ^^.

  • Was genau soll den der Code von Anfang bis ende tun?

    Einen Lizenzcode berechnen. Das Problem mit den Variablen habe ich gelöst (war ein Denkfehler). Jetzt bekomme ich immer die Meldung "Unbekannter Funktionsname" wenn ich die Funktion nutzen möchte. Aufgerufen wird sie mit $stringFP = Crypt($stringFP, "sha1"). Bei der Funktion "exchangeDigitA" bekomme ich die Fehlermeldung "Falsche Anzahl an Parametern" beim Aufruf mit $codeBlockA = exchangeDigitA($strCode2), was aber nicht sein kann weil die Funktion nur einen Parameter hat. In VBA alles kein Problem. ;)

  • sry eig. bin ich jetzt schon raus ^^

    aber ich hab nochmal den Chad^^ gefragt, das könntest du aber auch selber ^^.
    ich habe keine Ahnung ob das funktioniert, es kann sein das du ein paar Parameter anpassen musst.


    BinaryMid($b, $Ding - 1, 1, BinaryMid($b, $myDic.Item($Ding) - 1, 1))


    BinaryMid($b, $myDic.Item($Ding) - 1, 1, $Tmp)

    quelle autoit hilfe :


    Function BinaryMid

    BinaryMid

    Extracts a number of bytes from a binary variant.

    BinaryMid ( binary, start [, count] )

    Parameters

    binaryThe binary data to evaluate.
    startThe byte position to start. (1 = first byte)
    count[optional] The number of bytes to extract. By default the entire remainder of the binary data.
  • Die Funktion (auch wen sie vom Namen nicht 100% passt) könnte von der Crypt.au3 stammen (im Anhang).

    AutoIt3/Include/Crypt.au3 at master · dbkaynor/AutoIt3
    Various AutoIt3 programs. Contribute to dbkaynor/AutoIt3 development by creating an account on GitHub.
    github.com

    Hier ein kleines Minisample:

  • Danke! Das probiere ich aus. Allerdings brauche ich nur den String verschlüsselt (sha1), ohne "Userkey". Entschlüsseln brauche ich auch nicht. Besser gesagt, ich brauche nur den Hashwert eines Strings.

    Einmal editiert, zuletzt von mumpel (14. Juni 2023 um 09:04)

  • So richtig blicke ich da nicht durch.

    Wenn ich das in Excel laufen lasse, kommt 3D1C2C18AF82B255B91D7B137BFDD42C16086A16 raus. Irgendwie gelingt mir das in AutoIt nicht.

  • Dann schau Dir mal die (im AutoIt standardmäßig enthaltene) Funktion _Crypt_HashData an.

  • Mein Problem ist, dass ich immernoch die Meldung "Falsche Anzahl an Parametern" bekomme. Ich finde aber den Fehler nicht.

    Aufruf über: $strCodeStart = exchangeDigit($strCodeStart)

  • SciTe gibt doch genau die fehlerhafte Zeile an :/

  • Danke! Jetzt hat er es, ich habe zwei Zeilen übersehen. Es wird aber "falsch gerechnet". VBA gibt 433959-746058-874167 aus, aber AutoIt 328959-280246-193864. Das ist zwar kein Weltuntergang, aber verstehen kann ich es (noch) nicht.

  • mumpel 14. Juni 2023 um 19:27

    Hat das Label [ gelöst ] hinzugefügt.