Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

einbinden von DLL´s und testen ob DLL eingebunden ist

einbinden von DLL´s und testen ob DLL eingebunden ist
14.02.2024 14:02:07
Marc Franz
Hallo,

ich hab mal zwei kleinere Fragen.

Ich habe ein VBA Projekt, in dem sich der Benutzer einloggt (Benutzernamen und Passwort)...
Mit den Daten meldet sich dann das Projekt an einer Datenbank an.

Dabei wird das Passwort durch


Public Function toMD5(ByVal s As String) As String
ThisWorkbook.Activate
Dim enc As Object
Dim bytes() As Byte
Dim pos As Long
Dim outstr As String

Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")

bytes = StrConv(s, vbFromUnicode)
bytes = enc.ComputeHash_2(bytes)

'Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
For pos = LBound(bytes) To UBound(bytes)
outstr = outstr & LCase(Right("0" & Hex(bytes(pos)), 2))
Next pos
toMD5 = outstr
Set enc = Nothing


mit MD5 verschlüsselt..

Nun habe ich aber festgestellt das nicht jeder Rechner im Netzwerk die entsprechende DLL System.Security.Cryptography auf dem Rechner hat.
Dadurch kann auf manchen Rechnern entsprechend nicht die Funktion ausgeführt werden, womit auch die Anmeldung dann fehlschlägt.

Nun meine Frage, kann ich eine Version der DLL (die soll dann auf einem Netzlaufwerk liegen) einbinden, damit ich diese einbinden kann (und wie ich einbinde)

und die zweite Frage, ist es möglich zu testen, ob eine DLL eingebunden bzw. vorhanden ist, ?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Frage
14.02.2024 14:27:10
Fennek
Hallo,

der Code ist "elegant" kurz und für "Test" wird errechnet: 0cbc6611f5540bd0809a388dc95a615b

Die Gegenprobe mit WSL ist aber unterschiedlich:

echo Test | md5sum
2205e48de5f93c784733ffcca841d2b5 -

Was ist denn jetzt richtig?

mfg
AW: Frage
14.02.2024 14:35:06
Marc Franz
Gegenfrage,
was meinst du mit WSL ?
Steh da grad auf dem Schlauch, was du da meinst.

Wenn ich jetzt in PHP 'Test' umwandeln lasse, bekomme ich auch

"0cbc6611f5540bd0809a388dc95a615b"
AW: Frage
14.02.2024 14:48:57
Fennek
Hallo,

WSL steht für "Windows Subsystem Linux".

In der Zwieschenzeit habe ich es mit Powershell versucht, das ergab das selbe Ergebnis.

Zu Deiner Frage: Reicht es nicht


Set enc = CreateObject("System.Security.Cryptography.MD5CryptoServiceProvider")
if enc is nothing then msgbox "nicht verfügbar"

mfg
Anzeige
AW: Frage
14.02.2024 15:25:23
Marc Franz
Also den Ansatz werde ich testen, das wäre zumindest ne Lösung um zu testen, ob die DLL eingelesen werden konnte..
Danke für den Tipp

Die zweite Frage die DLL aus einem Netzlaufwerk ein zu binden, muss ich noch gucken wie das geht, oder ob jemand Tipps hat.


P.S. WSL hätte ich selber drauf kommen müssen..
danke
AW: Frage
14.02.2024 16:53:41
Oberschlumpf
Hi Marc

mach dich nicht so schlecht! Auch ich wusste bis zur "Übersetzung" nicht, was wsl bedeutet - und ich hätte trotzdem weiter gut schlafen können! ;-)

ne Idee zu deiner 2. Frage:

erstmal:
Wenn der Versuch Set enc = ... zu enc = Nothing führt, dann weißt du schon mal, die gewünschte DLL ist nicht auf dem Zielcomputer vorhanden.

Nun müsstest du erst mal die DLL-Datei vom bekannten Ordner im Netzwerk lokal auf dem Computer speichern; vielleicht im selben Verzeichnis, in dem auch die Excel-Datei gespeichert ist.

Im nächsten Schritt müsstest du - per VBA - die DLL in Excel einbinden.

Probiert hab ich den folgenden Lösungsweg zwar noch nicht, aber allein wegen des Durchlesens glaube ich, dass dies hier ein guter Weg ist:
https://hermann-baum.de/excel/hbSort/de/dll_in_vba.php

Du musst nicht alles lesen. Ich glaub, dass was dich interessiert, wird in den Punkten 1.2 und 2.0 beschrieben.
Viel Erfolg!

Konnte ich helfen?
(oder ich liege jetzt komplett daneben, weil ich etwas total falsch verstanden habe :-) )

Ciao
Thorsten
Anzeige
AW: Frage
14.02.2024 18:05:31
Marc Franz
Hallo Torsten,

danke für den Input, das hilft mir tatsächlich weiter. und die Website schaue ich mir nachher mal durch.
Das Klingt nach einem guten Plan.

Ich wart tatsächlich nur am überlegen, ob ich die DLL nicht einfach aus einem Netzwerklaufwerk (z.B. wo die Datenbank sich befindet) einlesen, ohne sie lokal zu speichern.
Aber das teste ich aus.

Aber so sind glaub 99% aller Unsicherheiten schon gelöst.

Danke dir
und danke Euch

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige