Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Laufwerksbuchstaben auslesen und Seriennummer prüf

Laufwerksbuchstaben auslesen und Seriennummer prüf
01.06.2007 22:40:17
Dieter.K
Hallo Forum,
ist es möglich per VBA in einem Rutsch alle Laufwerke mit Seriennummer auszulesen?
Laufwerksbuchstaben kriege ich (mit Hilfe der Recherche) hin. Die Seriennummer eines Laufwerkes auch.
Ich möchte folgendes erreichen:
VBA soll prüfen ob ein USB-Stick mit einer bestimmten Seriennummer vorhanden ist. Wenn ja, dann soll die Arbeitsmappe geöffnet werden können, wenn nicht, wird der Zugriff auf diese Mappe verhindert.
(Soll als Koperschutz dienen. Da ich z.Zt. die zu bestückenden Rechner alle bei mir habe, könnte ich es auch mit der Seriennummer von Laufwerk "C" lösen / klappt auch schon). Ich möchte meine Arbeitsmappe aber nach Möglichkeit an einen von mir zur Verfügung gestellten USB-Stick knüpfen, da ja die Hardware auch mal ausfallen kann). "Wer den USB-Stick hat kann mit der Arbeitsmappe arbeiten, sonst ist die Mappe gesperrt".
(Ja, ich weiß. Jeder Schutz läßt sich umgehen, aber das wäre für mich mal einen Versuch wert.
Bin für jeden Tipp dankbar.
Gruß
Dieter.K

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufwerksbuchstaben auslesen und Seriennummer prüf
01.06.2007 23:01:00
Horst
Hi,
was hindert den interessierten User, die Datei zu kopieren, VBA-Passwort knacken und gut?
Da kannst du dir den Umweg über den Stick ersparen.
Ansonsten kannst du die Seriennummer mit FSO genauso auslesen, wie die der Festplatte
oder des Motherboards.
mfg Horst

AW: Laufwerksbuchstaben auslesen und Seriennummer
01.06.2007 23:54:00
Dieter.K
Hallo Horst,
Du hast natürlich recht, "alles läßt sich knacken".
Da ich die VBA-Projekteigenschaften jedoch unter Excel-XP setze, ist das "knacken" jedoch schon nicht mehr so einfach wie unter Excel 8.0.
Es geht mir auch nur darum, eine kleine Sperre einzubauen. Wenn ich die Seriennummer der Festplatte nutze, kommt ja erst einmal niemand auf die Idee, daß die Datei damit einen Kopierschutz hat (wie gesagt: die zu benutzenden Rechner stehen im Augenblick bei mir. Wenn jedoch einer dieser Rechner ausgetauscht wird, habe ich keinen Zugriff mehr.) In der Datei (Kalkulationen und statische Berechnungen aus dem Stahlbau) könnte ich sicher noch weitere Funktionen einbauen (z.B. wenn das VBA Passwort geknackt wird und man feststellt, daß eine Seriennummer ausgelesen wird, könnte man diese Nummer ändern. Wenn aber in einer weiteren Zelle die Nummer ein weiteres mal abgeglichen wird, wäre es möglich in diesem Fall nur wenige vorhandene Formeln zu löschen oder zu verändern. Damit wird zumindest der Aufwand noch schwieriger an die Daten zu kommen.)
Hast Du eine Idee, wie ich einen USB Laufwerksbuchstaben ermitteln kann? Ich habe 2 Sticks. Beide werden (wenn einzelnd gesteckt) mit unterschiedlichen Buchstaben erkannt. Einer mit i und der andere mit j, egal welche USB-Buchse ich nutze.
Gruß
Dieter.K

Anzeige
AW: Laufwerksbuchstaben auslesen und Seriennummer
02.06.2007 00:00:40
Horst
Hi,
der LW- Buchstabe ist irrrelevant, die Seriennummer dürfte eindeutig sein.
Wenn dir das nicht sicher genug erscheint, kannst du ja den Drivetype abfragen.
mfg Horst

AW: Laufwerksbuchstaben auslesen und Seriennummer
02.06.2007 00:45:00
Dieter.K
Hallo Horst,
noch mal ich. Klar, ich muß mich auf die Seriennummer beziehen. Jedoch haben nicht bei allen Rechnern die USB-Schnittstellen die selben Laufwerksbuchstaben (sollte ja eigentlich im Normalfall der erste freie Buchstabe sein). Wie jedoch kann ich ermitteln, welcher Laufwerksbuchstabe "meinem" USB-Stick zugeordnet ist? (Damit die Arbeitsmappe mit genau diesem USB-Stick auf "jedem Rechner" geöffnet werden kann?
Kannst Du mir helfen?
Gruß
Dieter.K

Anzeige
AW: Laufwerksbuchstaben auslesen und Seriennummer
02.06.2007 08:00:23
ransi
Hallo Dieter
Teste mal:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
Dim fs
Dim Laufwerk
Set fs = CreateObject("Scripting.filesystemobject")
On Error Resume Next
For Each Laufwerk In fs.drives
    If Laufwerk.serialnumber = DeineSeriennummer Then Exit Sub
Next
ThisWorkbook.Close False
End Sub

ransi

Anzeige
AW: Laufwerksbuchstaben auslesen und Seriennummer
02.06.2007 12:27:00
Dieter.K
Hallo Ransi,
schon mal Danke für Deine Hilfe.
Testmappe wird immer geöffnet, ob die Seriennummer stimmt oder nicht. Werde mal selbst ein wenig mit Deinem Tipp experimentieren.
Gruß
Dieter.K

AW: Laufwerksbuchstaben auslesen und Seriennummer
02.06.2007 13:46:00
ransi
HAllo Dieter
Geöffnet schon, aber auch sofort wieder geschlossen wenn die Seriennummer nicht stimmt.
ransi

AW: Laufwerksbuchstaben auslesen und Seriennummer
02.06.2007 15:42:10
Dieter.K
Hallo Ransi,
funzt zumindest bei mir nicht. Egal welche Seriennummer abgefragt wird, die Datei bleibt geöffnet.
Liegt vielleicht daran, das zunächst das Diskettenlaufwerk geprüft wird (höre ich immer rappeln) und die Seriennummer hier 0 ist. Die S-Nummer vom USB-Stick wird erst garnicht abgefragt. Habe mal versucht die Seriennummer des Sticks in einer Msg-Box auszugeben (kriege ich aber nur hin wenn ich auch den Laufwerksbuchstaben hierfür explizit angebe).
Gruß
Dieter.K

Anzeige
AW: Laufwerksbuchstaben auslesen und Seriennummer
02.06.2007 16:36:07
Dieter.K
Hallo Ransi,
mit folgendem Code funktioniert es.
Option Explicit

Private Sub Workbook_Open()
Dim fs
Dim Laufwerk
Set fs = CreateObject("Scripting.filesystemobject")
On Error Resume Next
For Each Laufwerk In fs.drives
Worksheets("Tabelle1").Range("A2").Value = Laufwerk.SerialNumber
Next
If Worksheets("Tabelle1").Range("A2").Value = Worksheets("Tabelle1").Range("A3").Value Then
Exit Sub
Else
ThisWorkbook.Close False
End If
End Sub


Warum auch immer es so funzt......
dann geh ich eben diesen Umweg.
Gruß
Dieter.K

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige